mirror of
https://git.deuxfleurs.fr/Deuxfleurs/garage.git
synced 2024-11-25 01:21:01 +00:00
port GetLayout and AddLayout
This commit is contained in:
parent
9b24d7c402
commit
e3cd6ed530
1 changed files with 54 additions and 11 deletions
|
@ -167,25 +167,26 @@ paths:
|
||||||
Note that setting the capacity to `null` will configure the node as a gateway.
|
Note that setting the capacity to `null` will configure the node as a gateway.
|
||||||
requestBody:
|
requestBody:
|
||||||
description: |
|
description: |
|
||||||
To add a new node to the layout or to change the configuration of an existing node, simply set the values you want.
|
To add a new node to the layout or to change the configuration of an existing node, simply set the values you want (`zone`, `capacity`, and `tags`).
|
||||||
To remove a node, set it to `null` instead of passing a configuration object.
|
To remove a node, simply pass the `remove: true` field.
|
||||||
|
This logic is represented in OpenAPI with a "One Of" object.
|
||||||
|
|
||||||
Contrary to the CLI that may update only a subset of the fields capacity, zone and tags, when calling this API all of these values must be specified.
|
Contrary to the CLI that may update only a subset of the fields capacity, zone and tags, when calling this API all of these values must be specified.
|
||||||
required: true
|
required: true
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
type: object
|
type: array
|
||||||
example:
|
example:
|
||||||
"e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b":
|
- id: "e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b"
|
||||||
zone: "geneva"
|
zone: "geneva"
|
||||||
capacity: 4
|
capacity: 8
|
||||||
tags:
|
tags:
|
||||||
- gateway
|
- gateway
|
||||||
"4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff":
|
- id: "4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff"
|
||||||
|
remove: true
|
||||||
additionalProperties:
|
items:
|
||||||
$ref: '#/components/schemas/NodeClusterInfo'
|
$ref: '#/components/schemas/NodeRoleChange'
|
||||||
responses:
|
responses:
|
||||||
'500':
|
'500':
|
||||||
description: "The server can not handle your request. Check your connectivity with the rest of the cluster."
|
description: "The server can not handle your request. Check your connectivity with the rest of the cluster."
|
||||||
|
@ -193,6 +194,10 @@ paths:
|
||||||
description: "Invalid syntax or requested change"
|
description: "Invalid syntax or requested change"
|
||||||
'200':
|
'200':
|
||||||
description: "The layout modification has been correctly staged"
|
description: "The layout modification has been correctly staged"
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/ClusterLayout'
|
||||||
|
|
||||||
/layout/apply:
|
/layout/apply:
|
||||||
post:
|
post:
|
||||||
|
@ -1065,6 +1070,42 @@ components:
|
||||||
- fast
|
- fast
|
||||||
items:
|
items:
|
||||||
type: string
|
type: string
|
||||||
|
NodeRoleChange:
|
||||||
|
oneOf:
|
||||||
|
- $ref: '#/components/schemas/NodeRoleRemove'
|
||||||
|
- $ref: '#/components/schemas/NodeRoleUpdate'
|
||||||
|
NodeRoleRemove:
|
||||||
|
type: object
|
||||||
|
required: [ remove ]
|
||||||
|
properties:
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
example: "6a8e08af2aab1083ebab9b22165ea8b5b9d333b60a39ecd504e85cc1f432c36f"
|
||||||
|
remove:
|
||||||
|
type: bool
|
||||||
|
example: true
|
||||||
|
NodeRoleUpdate:
|
||||||
|
type: object
|
||||||
|
required: [ zone, capacity, tags ]
|
||||||
|
properties:
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
example: "6a8e08af2aab1083ebab9b22165ea8b5b9d333b60a39ecd504e85cc1f432c36f"
|
||||||
|
zone:
|
||||||
|
type: string
|
||||||
|
example: "dc1"
|
||||||
|
capacity:
|
||||||
|
type: integer
|
||||||
|
nullable: true
|
||||||
|
example: 150
|
||||||
|
tags:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
example:
|
||||||
|
- gateway
|
||||||
|
- fast
|
||||||
|
|
||||||
ClusterLayout:
|
ClusterLayout:
|
||||||
type: object
|
type: object
|
||||||
required: [ version, roles, stagedRoleChanges ]
|
required: [ version, roles, stagedRoleChanges ]
|
||||||
|
@ -1093,11 +1134,13 @@ components:
|
||||||
example:
|
example:
|
||||||
- id: "e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b"
|
- id: "e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b"
|
||||||
zone: "geneva"
|
zone: "geneva"
|
||||||
capacity: 4
|
capacity: 8
|
||||||
tags:
|
tags:
|
||||||
- gateway
|
- gateway
|
||||||
|
- id: "4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff"
|
||||||
|
remove: true
|
||||||
items:
|
items:
|
||||||
$ref: '#/components/schemas/NodeClusterInfo'
|
$ref: '#/components/schemas/NodeRoleChange'
|
||||||
LayoutVersion:
|
LayoutVersion:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
|
|
Loading…
Reference in a new issue