|
7471 | 7471 | } |
7472 | 7472 | } |
7473 | 7473 | }, |
7474 | | - "/v1/system/hardware/racks/{rack_id}/sleds": { |
| 7474 | + "/v1/system/hardware/racks/{rack_id}/membership": { |
7475 | 7475 | "get": { |
7476 | 7476 | "tags": [ |
7477 | 7477 | "experimental" |
7478 | 7478 | ], |
7479 | | - "summary": "Retrieve the latest rack cluster membership change", |
7480 | | - "operationId": "rack_membership_config_latest", |
| 7479 | + "summary": "Retrieve the rack cluster membership change for the given version or the", |
| 7480 | + "description": "latest version if no version is given", |
| 7481 | + "operationId": "rack_membership_status", |
7481 | 7482 | "parameters": [ |
7482 | 7483 | { |
7483 | 7484 | "in": "path", |
7484 | 7485 | "name": "rack_id", |
7485 | | - "description": "ID of the rack", |
7486 | 7486 | "required": true, |
7487 | 7487 | "schema": { |
7488 | 7488 | "type": "string", |
7489 | 7489 | "format": "uuid" |
7490 | 7490 | } |
| 7491 | + }, |
| 7492 | + { |
| 7493 | + "in": "query", |
| 7494 | + "name": "version", |
| 7495 | + "schema": { |
| 7496 | + "$ref": "#/components/schemas/RackMembershipVersion" |
| 7497 | + } |
7491 | 7498 | } |
7492 | 7499 | ], |
7493 | 7500 | "responses": { |
|
7496 | 7503 | "content": { |
7497 | 7504 | "application/json": { |
7498 | 7505 | "schema": { |
7499 | | - "$ref": "#/components/schemas/RackMembershipChange" |
| 7506 | + "$ref": "#/components/schemas/RackMembershipStatus" |
7500 | 7507 | } |
7501 | 7508 | } |
7502 | 7509 | } |
|
7508 | 7515 | "$ref": "#/components/responses/Error" |
7509 | 7516 | } |
7510 | 7517 | } |
7511 | | - }, |
| 7518 | + } |
| 7519 | + }, |
| 7520 | + "/v1/system/hardware/racks/{rack_id}/membership/add": { |
7512 | 7521 | "post": { |
7513 | 7522 | "tags": [ |
7514 | 7523 | "experimental" |
7515 | 7524 | ], |
7516 | | - "summary": "Add new sleds to rack cluster", |
| 7525 | + "summary": "Add new sleds to rack membership", |
7517 | 7526 | "operationId": "rack_membership_add_sleds", |
7518 | 7527 | "parameters": [ |
7519 | 7528 | { |
|
7543 | 7552 | "content": { |
7544 | 7553 | "application/json": { |
7545 | 7554 | "schema": { |
7546 | | - "title": "uint64", |
7547 | | - "type": "integer", |
7548 | | - "format": "uint64", |
7549 | | - "minimum": 0 |
7550 | | - } |
7551 | | - } |
7552 | | - } |
7553 | | - }, |
7554 | | - "4XX": { |
7555 | | - "$ref": "#/components/responses/Error" |
7556 | | - }, |
7557 | | - "5XX": { |
7558 | | - "$ref": "#/components/responses/Error" |
7559 | | - } |
7560 | | - } |
7561 | | - } |
7562 | | - }, |
7563 | | - "/v1/system/hardware/racks/{rack_id}/sleds/{epoch}": { |
7564 | | - "get": { |
7565 | | - "tags": [ |
7566 | | - "experimental" |
7567 | | - ], |
7568 | | - "summary": "Retrieve the rack cluster membership change for the given epoch", |
7569 | | - "operationId": "rack_membership_config", |
7570 | | - "parameters": [ |
7571 | | - { |
7572 | | - "in": "path", |
7573 | | - "name": "epoch", |
7574 | | - "required": true, |
7575 | | - "schema": { |
7576 | | - "type": "integer", |
7577 | | - "format": "uint64", |
7578 | | - "minimum": 0 |
7579 | | - } |
7580 | | - }, |
7581 | | - { |
7582 | | - "in": "path", |
7583 | | - "name": "rack_id", |
7584 | | - "required": true, |
7585 | | - "schema": { |
7586 | | - "type": "string", |
7587 | | - "format": "uuid" |
7588 | | - } |
7589 | | - } |
7590 | | - ], |
7591 | | - "responses": { |
7592 | | - "200": { |
7593 | | - "description": "successful operation", |
7594 | | - "content": { |
7595 | | - "application/json": { |
7596 | | - "schema": { |
7597 | | - "$ref": "#/components/schemas/RackMembershipChange" |
| 7555 | + "$ref": "#/components/schemas/RackMembershipStatus" |
7598 | 7556 | } |
7599 | 7557 | } |
7600 | 7558 | } |
|
14154 | 14112 | "sled_ids": { |
14155 | 14113 | "type": "array", |
14156 | 14114 | "items": { |
14157 | | - "$ref": "#/components/schemas/UninitializedSledId" |
| 14115 | + "$ref": "#/components/schemas/BaseboardId" |
14158 | 14116 | }, |
14159 | 14117 | "uniqueItems": true |
14160 | 14118 | } |
@@ -24647,18 +24605,20 @@ |
24647 | 24605 | "time_modified" |
24648 | 24606 | ] |
24649 | 24607 | }, |
24650 | | - "RackMembershipChange": { |
24651 | | - "description": "Status of last membership change from adding or removinig sleds", |
| 24608 | + "RackMembershipChangeState": { |
| 24609 | + "type": "string", |
| 24610 | + "enum": [ |
| 24611 | + "in_progress", |
| 24612 | + "committed", |
| 24613 | + "aborted" |
| 24614 | + ] |
| 24615 | + }, |
| 24616 | + "RackMembershipStatus": { |
| 24617 | + "description": "Status of the rack membership uniquely identified by the (rack_id, version) pair", |
24652 | 24618 | "type": "object", |
24653 | 24619 | "properties": { |
24654 | | - "epoch": { |
24655 | | - "description": "The generation / version of the configuration", |
24656 | | - "type": "integer", |
24657 | | - "format": "uint64", |
24658 | | - "minimum": 0 |
24659 | | - }, |
24660 | 24620 | "members": { |
24661 | | - "description": "All members of the rack cluster for this epoch", |
| 24621 | + "description": "All members of the rack for this epoch", |
24662 | 24622 | "type": "array", |
24663 | 24623 | "items": { |
24664 | 24624 | "$ref": "#/components/schemas/BaseboardId" |
@@ -24687,30 +24647,31 @@ |
24687 | 24647 | "format": "date-time" |
24688 | 24648 | }, |
24689 | 24649 | "unacknowledged_members": { |
24690 | | - "description": "All members which have not committed to the membership change", |
| 24650 | + "description": "All members that have not yet responded to learning about this membership version", |
24691 | 24651 | "type": "array", |
24692 | 24652 | "items": { |
24693 | 24653 | "$ref": "#/components/schemas/BaseboardId" |
24694 | 24654 | }, |
24695 | 24655 | "uniqueItems": true |
| 24656 | + }, |
| 24657 | + "version": { |
| 24658 | + "$ref": "#/components/schemas/RackMembershipVersion" |
24696 | 24659 | } |
24697 | 24660 | }, |
24698 | 24661 | "required": [ |
24699 | | - "epoch", |
24700 | 24662 | "members", |
24701 | 24663 | "rack_id", |
24702 | 24664 | "state", |
24703 | 24665 | "time_created", |
24704 | | - "unacknowledged_members" |
| 24666 | + "unacknowledged_members", |
| 24667 | + "version" |
24705 | 24668 | ] |
24706 | 24669 | }, |
24707 | | - "RackMembershipChangeState": { |
24708 | | - "type": "string", |
24709 | | - "enum": [ |
24710 | | - "in_progress", |
24711 | | - "committed", |
24712 | | - "aborted" |
24713 | | - ] |
| 24670 | + "RackMembershipVersion": { |
| 24671 | + "description": "A unique, monotonically increasing number representing the set of active sleds in a rack at a given point in time.", |
| 24672 | + "type": "integer", |
| 24673 | + "format": "uint64", |
| 24674 | + "minimum": 0 |
24714 | 24675 | }, |
24715 | 24676 | "RackResultsPage": { |
24716 | 24677 | "description": "A single page of results", |
|
0 commit comments