Skip to content

Commit 900085e

Browse files
ilianadavid-crespo
andauthored
move update APIs out of experimental (#8871)
Co-authored-by: David Crespo <[email protected]>
1 parent 33d4f82 commit 900085e

File tree

3 files changed

+41
-25
lines changed

3 files changed

+41
-25
lines changed

nexus/external-api/output/nexus_tags.txt

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -63,14 +63,6 @@ support_bundle_index GET /experimental/v1/system/suppor
6363
support_bundle_list GET /experimental/v1/system/support-bundles
6464
support_bundle_update PUT /experimental/v1/system/support-bundles/{bundle_id}
6565
support_bundle_view GET /experimental/v1/system/support-bundles/{bundle_id}
66-
system_update_get_repository GET /v1/system/update/repository/{system_version}
67-
system_update_put_repository PUT /v1/system/update/repository
68-
system_update_trust_root_create POST /v1/system/update/trust-roots
69-
system_update_trust_root_delete DELETE /v1/system/update/trust-roots/{trust_root_id}
70-
system_update_trust_root_list GET /v1/system/update/trust-roots
71-
system_update_trust_root_view GET /v1/system/update/trust-roots/{trust_root_id}
72-
target_release_update PUT /v1/system/update/target-release
73-
target_release_view GET /v1/system/update/target-release
7466
timeseries_query POST /v1/timeseries/query
7567

7668
API operations found with tag "floating-ips"
@@ -302,6 +294,17 @@ API operations found with tag "system/status"
302294
OPERATION ID METHOD URL PATH
303295
ping GET /v1/ping
304296

297+
API operations found with tag "system/update"
298+
OPERATION ID METHOD URL PATH
299+
system_update_get_repository GET /v1/system/update/repository/{system_version}
300+
system_update_put_repository PUT /v1/system/update/repository
301+
system_update_trust_root_create POST /v1/system/update/trust-roots
302+
system_update_trust_root_delete DELETE /v1/system/update/trust-roots/{trust_root_id}
303+
system_update_trust_root_list GET /v1/system/update/trust-roots
304+
system_update_trust_root_view GET /v1/system/update/trust-roots/{trust_root_id}
305+
target_release_update PUT /v1/system/update/target-release
306+
target_release_view GET /v1/system/update/target-release
307+
305308
API operations found with tag "tokens"
306309
OPERATION ID METHOD URL PATH
307310
current_user_access_token_delete DELETE /v1/me/access-tokens/{token_id}

nexus/external-api/src/lib.rs

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,13 @@ const PUT_UPDATE_REPOSITORY_MAX_BYTES: usize = 4 * GIB;
227227
external_docs = {
228228
url = "http://docs.oxide.computer/api/system-silos"
229229
}
230-
}
230+
},
231+
"system/update" = {
232+
description = "Upload and manage system updates",
233+
external_docs = {
234+
url = "http://docs.oxide.computer/api/system-update"
235+
}
236+
},
231237
}
232238
}
233239
}]
@@ -2958,7 +2964,7 @@ pub trait NexusExternalApi {
29582964
#[endpoint {
29592965
method = PUT,
29602966
path = "/v1/system/update/repository",
2961-
tags = ["experimental"], // ["system/update"],
2967+
tags = ["system/update"],
29622968
request_body_max_bytes = PUT_UPDATE_REPOSITORY_MAX_BYTES,
29632969
}]
29642970
async fn system_update_put_repository(
@@ -2971,7 +2977,7 @@ pub trait NexusExternalApi {
29712977
#[endpoint {
29722978
method = GET,
29732979
path = "/v1/system/update/repository/{system_version}",
2974-
tags = ["experimental"], // ["system/update"],
2980+
tags = ["system/update"],
29752981
}]
29762982
async fn system_update_get_repository(
29772983
rqctx: RequestContext<Self::Context>,
@@ -2987,7 +2993,7 @@ pub trait NexusExternalApi {
29872993
#[endpoint {
29882994
method = GET,
29892995
path = "/v1/system/update/trust-roots",
2990-
tags = ["experimental"], // ["system/update"],
2996+
tags = ["system/update"],
29912997
}]
29922998
async fn system_update_trust_root_list(
29932999
rqctx: RequestContext<Self::Context>,
@@ -2998,7 +3004,7 @@ pub trait NexusExternalApi {
29983004
#[endpoint {
29993005
method = POST,
30003006
path = "/v1/system/update/trust-roots",
3001-
tags = ["experimental"], // ["system/update"],
3007+
tags = ["system/update"],
30023008
}]
30033009
async fn system_update_trust_root_create(
30043010
rqctx: RequestContext<Self::Context>,
@@ -3009,7 +3015,7 @@ pub trait NexusExternalApi {
30093015
#[endpoint {
30103016
method = GET,
30113017
path = "/v1/system/update/trust-roots/{trust_root_id}",
3012-
tags = ["experimental"], // ["system/update"],
3018+
tags = ["system/update"],
30133019
}]
30143020
async fn system_update_trust_root_view(
30153021
rqctx: RequestContext<Self::Context>,
@@ -3024,7 +3030,7 @@ pub trait NexusExternalApi {
30243030
#[endpoint {
30253031
method = DELETE,
30263032
path = "/v1/system/update/trust-roots/{trust_root_id}",
3027-
tags = ["experimental"], // ["system/update"],
3033+
tags = ["system/update"],
30283034
}]
30293035
async fn system_update_trust_root_delete(
30303036
rqctx: RequestContext<Self::Context>,
@@ -3041,7 +3047,7 @@ pub trait NexusExternalApi {
30413047
#[endpoint {
30423048
method = GET,
30433049
path = "/v1/system/update/target-release",
3044-
tags = ["experimental"], // "system/update"
3050+
tags = ["system/update"],
30453051
}]
30463052
async fn target_release_view(
30473053
rqctx: RequestContext<Self::Context>,
@@ -3055,7 +3061,7 @@ pub trait NexusExternalApi {
30553061
#[endpoint {
30563062
method = PUT,
30573063
path = "/v1/system/update/target-release",
3058-
tags = ["experimental"], // "system/update"
3064+
tags = ["system/update"],
30593065
}]
30603066
async fn target_release_update(
30613067
rqctx: RequestContext<Self::Context>,

openapi/nexus.json

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10906,7 +10906,7 @@
1090610906
"/v1/system/update/repository": {
1090710907
"put": {
1090810908
"tags": [
10909-
"experimental"
10909+
"system/update"
1091010910
],
1091110911
"summary": "Upload system release repository",
1091210912
"description": "System release repositories are verified by the updates trust store.",
@@ -10956,7 +10956,7 @@
1095610956
"/v1/system/update/repository/{system_version}": {
1095710957
"get": {
1095810958
"tags": [
10959-
"experimental"
10959+
"system/update"
1096010960
],
1096110961
"summary": "Fetch system release repository description by version",
1096210962
"operationId": "system_update_get_repository",
@@ -10995,7 +10995,7 @@
1099510995
"/v1/system/update/target-release": {
1099610996
"get": {
1099710997
"tags": [
10998-
"experimental"
10998+
"system/update"
1099910999
],
1100011000
"summary": "Get the current target release of the rack's system software",
1100111001
"description": "This may not correspond to the actual software running on the rack at the time of request; it is instead the release that the rack reconfigurator should be moving towards as a goal state. After some number of planning and execution phases, the software running on the rack should eventually correspond to the release described here.",
@@ -11021,7 +11021,7 @@
1102111021
},
1102211022
"put": {
1102311023
"tags": [
11024-
"experimental"
11024+
"system/update"
1102511025
],
1102611026
"summary": "Set the current target release of the rack's system software",
1102711027
"description": "The rack reconfigurator will treat the software specified here as a goal state for the rack's software, and attempt to asynchronously update to that release.",
@@ -11059,7 +11059,7 @@
1105911059
"/v1/system/update/trust-roots": {
1106011060
"get": {
1106111061
"tags": [
11062-
"experimental"
11062+
"system/update"
1106311063
],
1106411064
"summary": "List root roles in the updates trust store",
1106511065
"description": "A root role is a JSON document describing the cryptographic keys that are trusted to sign system release repositories, as described by The Update Framework. Uploading a repository requires its metadata to be signed by keys trusted by the trust store.",
@@ -11117,7 +11117,7 @@
1111711117
},
1111811118
"post": {
1111911119
"tags": [
11120-
"experimental"
11120+
"system/update"
1112111121
],
1112211122
"summary": "Add trusted root role to updates trust store",
1112311123
"operationId": "system_update_trust_root_create",
@@ -11152,7 +11152,7 @@
1115211152
"/v1/system/update/trust-roots/{trust_root_id}": {
1115311153
"get": {
1115411154
"tags": [
11155-
"experimental"
11155+
"system/update"
1115611156
],
1115711157
"summary": "Fetch trusted root role",
1115811158
"operationId": "system_update_trust_root_view",
@@ -11189,7 +11189,7 @@
1118911189
},
1119011190
"delete": {
1119111191
"tags": [
11192-
"experimental"
11192+
"system/update"
1119311193
],
1119411194
"summary": "Delete trusted root role",
1119511195
"description": "Note that this method does not currently check for any uploaded system release repositories that would become untrusted after deleting the root role.",
@@ -28055,6 +28055,13 @@
2805528055
"url": "http://docs.oxide.computer/api/system-status"
2805628056
}
2805728057
},
28058+
{
28059+
"name": "system/update",
28060+
"description": "Upload and manage system updates",
28061+
"externalDocs": {
28062+
"url": "http://docs.oxide.computer/api/system-update"
28063+
}
28064+
},
2805828065
{
2805928066
"name": "tokens",
2806028067
"description": "API clients use device access tokens for authentication.",

0 commit comments

Comments
 (0)