|
7827 | 7827 | } |
7828 | 7828 | } |
7829 | 7829 | }, |
7830 | | - "/v1/system/hardware/racks/{rack_id}/sleds": { |
| 7830 | + "/v1/system/hardware/racks/{rack_id}/membership": { |
7831 | 7831 | "get": { |
7832 | 7832 | "tags": [ |
7833 | 7833 | "experimental" |
7834 | 7834 | ], |
7835 | | - "summary": "Retrieve the latest rack cluster membership change", |
7836 | | - "operationId": "rack_membership_config_latest", |
| 7835 | + "summary": "Retrieve the rack cluster membership change for the given version or the", |
| 7836 | + "description": "latest version if no version is given", |
| 7837 | + "operationId": "rack_membership_status", |
7837 | 7838 | "parameters": [ |
7838 | 7839 | { |
7839 | 7840 | "in": "path", |
7840 | 7841 | "name": "rack_id", |
7841 | | - "description": "ID of the rack", |
7842 | 7842 | "required": true, |
7843 | 7843 | "schema": { |
7844 | 7844 | "type": "string", |
7845 | 7845 | "format": "uuid" |
7846 | 7846 | } |
| 7847 | + }, |
| 7848 | + { |
| 7849 | + "in": "query", |
| 7850 | + "name": "version", |
| 7851 | + "schema": { |
| 7852 | + "$ref": "#/components/schemas/RackMembershipVersion" |
| 7853 | + } |
7847 | 7854 | } |
7848 | 7855 | ], |
7849 | 7856 | "responses": { |
|
7852 | 7859 | "content": { |
7853 | 7860 | "application/json": { |
7854 | 7861 | "schema": { |
7855 | | - "$ref": "#/components/schemas/RackMembershipChange" |
| 7862 | + "$ref": "#/components/schemas/RackMembershipStatus" |
7856 | 7863 | } |
7857 | 7864 | } |
7858 | 7865 | } |
|
7864 | 7871 | "$ref": "#/components/responses/Error" |
7865 | 7872 | } |
7866 | 7873 | } |
7867 | | - }, |
| 7874 | + } |
| 7875 | + }, |
| 7876 | + "/v1/system/hardware/racks/{rack_id}/membership/add": { |
7868 | 7877 | "post": { |
7869 | 7878 | "tags": [ |
7870 | 7879 | "experimental" |
7871 | 7880 | ], |
7872 | | - "summary": "Add new sleds to rack cluster", |
| 7881 | + "summary": "Add new sleds to rack membership", |
7873 | 7882 | "operationId": "rack_membership_add_sleds", |
7874 | 7883 | "parameters": [ |
7875 | 7884 | { |
|
7899 | 7908 | "content": { |
7900 | 7909 | "application/json": { |
7901 | 7910 | "schema": { |
7902 | | - "title": "uint64", |
7903 | | - "type": "integer", |
7904 | | - "format": "uint64", |
7905 | | - "minimum": 0 |
7906 | | - } |
7907 | | - } |
7908 | | - } |
7909 | | - }, |
7910 | | - "4XX": { |
7911 | | - "$ref": "#/components/responses/Error" |
7912 | | - }, |
7913 | | - "5XX": { |
7914 | | - "$ref": "#/components/responses/Error" |
7915 | | - } |
7916 | | - } |
7917 | | - } |
7918 | | - }, |
7919 | | - "/v1/system/hardware/racks/{rack_id}/sleds/{epoch}": { |
7920 | | - "get": { |
7921 | | - "tags": [ |
7922 | | - "experimental" |
7923 | | - ], |
7924 | | - "summary": "Retrieve the rack cluster membership change for the given epoch", |
7925 | | - "operationId": "rack_membership_config", |
7926 | | - "parameters": [ |
7927 | | - { |
7928 | | - "in": "path", |
7929 | | - "name": "epoch", |
7930 | | - "required": true, |
7931 | | - "schema": { |
7932 | | - "type": "integer", |
7933 | | - "format": "uint64", |
7934 | | - "minimum": 0 |
7935 | | - } |
7936 | | - }, |
7937 | | - { |
7938 | | - "in": "path", |
7939 | | - "name": "rack_id", |
7940 | | - "required": true, |
7941 | | - "schema": { |
7942 | | - "type": "string", |
7943 | | - "format": "uuid" |
7944 | | - } |
7945 | | - } |
7946 | | - ], |
7947 | | - "responses": { |
7948 | | - "200": { |
7949 | | - "description": "successful operation", |
7950 | | - "content": { |
7951 | | - "application/json": { |
7952 | | - "schema": { |
7953 | | - "$ref": "#/components/schemas/RackMembershipChange" |
| 7911 | + "$ref": "#/components/schemas/RackMembershipStatus" |
7954 | 7912 | } |
7955 | 7913 | } |
7956 | 7914 | } |
|
15121 | 15079 | "sled_ids": { |
15122 | 15080 | "type": "array", |
15123 | 15081 | "items": { |
15124 | | - "$ref": "#/components/schemas/UninitializedSledId" |
| 15082 | + "$ref": "#/components/schemas/BaseboardId" |
15125 | 15083 | }, |
15126 | 15084 | "uniqueItems": true |
15127 | 15085 | } |
@@ -25876,18 +25834,20 @@ |
25876 | 25834 | "time_modified" |
25877 | 25835 | ] |
25878 | 25836 | }, |
25879 | | - "RackMembershipChange": { |
25880 | | - "description": "Status of last membership change from adding or removinig sleds", |
| 25837 | + "RackMembershipChangeState": { |
| 25838 | + "type": "string", |
| 25839 | + "enum": [ |
| 25840 | + "in_progress", |
| 25841 | + "committed", |
| 25842 | + "aborted" |
| 25843 | + ] |
| 25844 | + }, |
| 25845 | + "RackMembershipStatus": { |
| 25846 | + "description": "Status of the rack membership uniquely identified by the (rack_id, version) pair", |
25881 | 25847 | "type": "object", |
25882 | 25848 | "properties": { |
25883 | | - "epoch": { |
25884 | | - "description": "The generation / version of the configuration", |
25885 | | - "type": "integer", |
25886 | | - "format": "uint64", |
25887 | | - "minimum": 0 |
25888 | | - }, |
25889 | 25849 | "members": { |
25890 | | - "description": "All members of the rack cluster for this epoch", |
| 25850 | + "description": "All members of the rack for this epoch", |
25891 | 25851 | "type": "array", |
25892 | 25852 | "items": { |
25893 | 25853 | "$ref": "#/components/schemas/BaseboardId" |
@@ -25916,30 +25876,31 @@ |
25916 | 25876 | "format": "date-time" |
25917 | 25877 | }, |
25918 | 25878 | "unacknowledged_members": { |
25919 | | - "description": "All members which have not committed to the membership change", |
| 25879 | + "description": "All members that have not yet responded to learning about this membership version", |
25920 | 25880 | "type": "array", |
25921 | 25881 | "items": { |
25922 | 25882 | "$ref": "#/components/schemas/BaseboardId" |
25923 | 25883 | }, |
25924 | 25884 | "uniqueItems": true |
| 25885 | + }, |
| 25886 | + "version": { |
| 25887 | + "$ref": "#/components/schemas/RackMembershipVersion" |
25925 | 25888 | } |
25926 | 25889 | }, |
25927 | 25890 | "required": [ |
25928 | | - "epoch", |
25929 | 25891 | "members", |
25930 | 25892 | "rack_id", |
25931 | 25893 | "state", |
25932 | 25894 | "time_created", |
25933 | | - "unacknowledged_members" |
| 25895 | + "unacknowledged_members", |
| 25896 | + "version" |
25934 | 25897 | ] |
25935 | 25898 | }, |
25936 | | - "RackMembershipChangeState": { |
25937 | | - "type": "string", |
25938 | | - "enum": [ |
25939 | | - "in_progress", |
25940 | | - "committed", |
25941 | | - "aborted" |
25942 | | - ] |
| 25899 | + "RackMembershipVersion": { |
| 25900 | + "description": "A unique, monotonically increasing number representing the set of active sleds in a rack at a given point in time.", |
| 25901 | + "type": "integer", |
| 25902 | + "format": "uint64", |
| 25903 | + "minimum": 0 |
25943 | 25904 | }, |
25944 | 25905 | "RackResultsPage": { |
25945 | 25906 | "description": "A single page of results", |
|
0 commit comments