diff --git a/Cargo.lock b/Cargo.lock index a330d2d99a5..6c349564c7f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2077,7 +2077,7 @@ dependencies = [ [[package]] name = "dropshot" version = "0.10.2-dev" -source = "git+https://github.com/oxidecomputer/dropshot?branch=main#7b594d01f47ca783c5d4a25ca2b256602580fe92" +source = "git+https://github.com/oxidecomputer/dropshot?branch=main#0c0bae3cb56e05daa055d7b75217d7b0f7ed29ea" dependencies = [ "async-stream", "async-trait", @@ -2123,7 +2123,7 @@ dependencies = [ [[package]] name = "dropshot_endpoint" version = "0.10.2-dev" -source = "git+https://github.com/oxidecomputer/dropshot?branch=main#7b594d01f47ca783c5d4a25ca2b256602580fe92" +source = "git+https://github.com/oxidecomputer/dropshot?branch=main#0c0bae3cb56e05daa055d7b75217d7b0f7ed29ea" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -3347,7 +3347,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.5.7", + "socket2 0.4.10", "tokio", "tower-service", "tracing", @@ -6094,6 +6094,7 @@ dependencies = [ "postgres-types", "predicates", "proc-macro2", + "rand_core 0.5.1", "regex", "regex-automata 0.4.6", "regex-syntax 0.8.3", @@ -6109,6 +6110,7 @@ dependencies = [ "similar", "slog", "smallvec 1.13.2", + "socket2 0.5.7", "spin 0.9.8", "string_cache", "subtle", @@ -7718,7 +7720,7 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf2890aaef0aa82719a50e808de264f9484b74b442e1a3a0e5ee38243ac40bdb" dependencies = [ - "rand_core 0.6.4", + "rand_core 0.5.1", ] [[package]] diff --git a/openapi/gateway.json b/openapi/gateway.json index d61c5d17663..763a1b8ae95 100644 --- a/openapi/gateway.json +++ b/openapi/gateway.json @@ -87,7 +87,7 @@ "/ignition/{type}/{slot}/{command}": { "post": { "summary": "Send an ignition command targeting a specific SP.", - "description": "This endpoint can be used to transition a target between A2 and A3 (via power-on / power-off) or reset it.\nThe management network traffic caused by requests to this endpoint is between this MGS instance and its local ignition controller, _not_ the SP targeted by the command.", + "description": "This endpoint can be used to transition a target between A2 and A3 (via power-on / power-off) or reset it.\n\nThe management network traffic caused by requests to this endpoint is between this MGS instance and its local ignition controller, _not_ the SP targeted by the command.", "operationId": "ignition_command", "parameters": [ { @@ -134,7 +134,7 @@ "/local/all-sp-ids": { "get": { "summary": "Get the complete list of SP identifiers this MGS instance is configured to", - "description": "find and communicate with.\nNote that unlike most MGS endpoints, this endpoint does not send any communication on the management network.", + "description": "find and communicate with.\n\nNote that unlike most MGS endpoints, this endpoint does not send any communication on the management network.", "operationId": "sp_all_ids", "responses": { "200": { @@ -188,7 +188,7 @@ "/recovery/host-phase2": { "post": { "summary": "Upload a host phase2 image that can be served to recovering hosts via the", - "description": "host/SP control uart.\nMGS caches this image in memory and is limited to a small, fixed number of images (potentially 1). Uploading a new image may evict the least-recently-requested image if our cache is already full.", + "description": "host/SP control uart.\n\nMGS caches this image in memory and is limited to a small, fixed number of images (potentially 1). Uploading a new image may evict the least-recently-requested image if our cache is already full.", "operationId": "recovery_host_phase2_upload", "requestBody": { "content": { @@ -923,7 +923,7 @@ "/sp/{type}/{slot}/component/{component}/update": { "post": { "summary": "Update an SP component", - "description": "Update a component of an SP according to its specific update mechanism. This interface is generic for all component types, but resolves to a mechanism specific to the given component type. This may fail for a variety of reasons including the update bundle being invalid or improperly specified or due to an error originating from the SP itself.\nNote that not all components may be updated; components without known update mechanisms will return an error without any inspection of the update bundle.\nUpdating the SP itself is done via the component name `sp`.", + "description": "Update a component of an SP according to its specific update mechanism. This interface is generic for all component types, but resolves to a mechanism specific to the given component type. This may fail for a variety of reasons including the update bundle being invalid or improperly specified or due to an error originating from the SP itself.\n\nNote that not all components may be updated; components without known update mechanisms will return an error without any inspection of the update bundle.\n\nUpdating the SP itself is done via the component name `sp`.", "operationId": "sp_component_update", "parameters": [ { @@ -1002,7 +1002,7 @@ "/sp/{type}/{slot}/component/{component}/update-abort": { "post": { "summary": "Abort any in-progress update an SP component", - "description": "Aborting an update to the SP itself is done via the component name `sp`.\nOn a successful return, the update corresponding to the given UUID will no longer be in progress (either aborted or applied).", + "description": "Aborting an update to the SP itself is done via the component name `sp`.\n\nOn a successful return, the update corresponding to the given UUID will no longer be in progress (either aborted or applied).", "operationId": "sp_component_update_abort", "parameters": [ { diff --git a/openapi/nexus-internal.json b/openapi/nexus-internal.json index 4e1a11aff1b..912ccbcf00b 100644 --- a/openapi/nexus-internal.json +++ b/openapi/nexus-internal.json @@ -912,7 +912,7 @@ "/physical-disk/expunge": { "post": { "summary": "Mark a physical disk as expunged", - "description": "This is an irreversible process! It should only be called after sufficient warning to the operator.\nThis is idempotent.", + "description": "This is an irreversible process! It should only be called after sufficient warning to the operator.\n\nThis is idempotent.", "operationId": "physical_disk_expunge", "requestBody": { "content": { @@ -1273,7 +1273,7 @@ "/sleds/expunge": { "post": { "summary": "Mark a sled as expunged", - "description": "This is an irreversible process! It should only be called after sufficient warning to the operator.\nThis is idempotent, and it returns the old policy of the sled.", + "description": "This is an irreversible process! It should only be called after sufficient warning to the operator.\n\nThis is idempotent, and it returns the old policy of the sled.", "operationId": "sled_expunge", "requestBody": { "content": { diff --git a/openapi/nexus.json b/openapi/nexus.json index d6bfb6ea12a..ae5eaeae642 100644 --- a/openapi/nexus.json +++ b/openapi/nexus.json @@ -8297,7 +8297,7 @@ "vpcs" ], "summary": "Replace firewall rules", - "description": "The maximum number of rules per VPC is 1024.\nTargets are used to specify the set of instances to which a firewall rule applies. You can target instances directly by name, or specify a VPC, VPC subnet, IP, or IP subnet, which will apply the rule to traffic going to all matching instances. Targets are additive: the rule applies to instances matching ANY target. The maximum number of targets is 256.\nFilters reduce the scope of a firewall rule. Without filters, the rule applies to all packets to the targets (or from the targets, if it's an outbound rule). With multiple filters, the rule applies only to packets matching ALL filters. The maximum number of each type of filter is 256.", + "description": "The maximum number of rules per VPC is 1024.\n\nTargets are used to specify the set of instances to which a firewall rule applies. You can target instances directly by name, or specify a VPC, VPC subnet, IP, or IP subnet, which will apply the rule to traffic going to all matching instances. Targets are additive: the rule applies to instances matching ANY target. The maximum number of targets is 256.\n\nFilters reduce the scope of a firewall rule. Without filters, the rule applies to all packets to the targets (or from the targets, if it's an outbound rule). With multiple filters, the rule applies only to packets matching ALL filters. The maximum number of each type of filter is 256.", "operationId": "vpc_firewall_rules_update", "parameters": [ { diff --git a/openapi/wicketd.json b/openapi/wicketd.json index 48e5d290a3a..757383897bf 100644 --- a/openapi/wicketd.json +++ b/openapi/wicketd.json @@ -215,7 +215,7 @@ "/inventory": { "get": { "summary": "A status endpoint used to report high level information known to", - "description": "wicketd.\nThis endpoint can be polled to see if there have been state changes in the system that are useful to report to wicket.\nWicket, and possibly other callers, will retrieve the changed information, with follow up calls.", + "description": "wicketd.\n\nThis endpoint can be polled to see if there have been state changes in the system that are useful to report to wicket.\n\nWicket, and possibly other callers, will retrieve the changed information, with follow up calls.", "operationId": "get_inventory", "requestBody": { "content": { @@ -460,7 +460,7 @@ "/rack-setup/config/bgp/auth-key": { "get": { "summary": "Return information about BGP authentication keys, including checking", - "description": "validity of keys.\nProduces an error if the rack setup config wasn't set, or if any of the requested key IDs weren't found.", + "description": "validity of keys.\n\nProduces an error if the rack setup config wasn't set, or if any of the requested key IDs weren't found.", "operationId": "get_bgp_auth_key_info", "requestBody": { "content": { diff --git a/workspace-hack/Cargo.toml b/workspace-hack/Cargo.toml index dbb4a51c43f..75e6432c025 100644 --- a/workspace-hack/Cargo.toml +++ b/workspace-hack/Cargo.toml @@ -85,6 +85,7 @@ petgraph = { version = "0.6.5", features = ["serde-1"] } postgres-types = { version = "0.2.6", default-features = false, features = ["with-chrono-0_4", "with-serde_json-1", "with-uuid-1"] } predicates = { version = "3.1.0" } proc-macro2 = { version = "1.0.86" } +rand_core = { version = "0.5.1", default-features = false, features = ["std"] } regex = { version = "1.10.5" } regex-automata = { version = "0.4.6", default-features = false, features = ["dfa", "hybrid", "meta", "nfa", "perf", "unicode"] } regex-syntax = { version = "0.8.3" } @@ -99,6 +100,7 @@ sha2 = { version = "0.10.8", features = ["oid"] } similar = { version = "2.5.0", features = ["bytes", "inline", "unicode"] } slog = { version = "2.7.0", features = ["dynamic-keys", "max_level_trace", "release_max_level_debug", "release_max_level_trace"] } smallvec = { version = "1.13.2", default-features = false, features = ["const_new"] } +socket2 = { version = "0.5.7", default-features = false, features = ["all"] } spin = { version = "0.9.8" } string_cache = { version = "0.8.7" } subtle = { version = "2.5.0" } @@ -190,6 +192,7 @@ petgraph = { version = "0.6.5", features = ["serde-1"] } postgres-types = { version = "0.2.6", default-features = false, features = ["with-chrono-0_4", "with-serde_json-1", "with-uuid-1"] } predicates = { version = "3.1.0" } proc-macro2 = { version = "1.0.86" } +rand_core = { version = "0.5.1", default-features = false, features = ["std"] } regex = { version = "1.10.5" } regex-automata = { version = "0.4.6", default-features = false, features = ["dfa", "hybrid", "meta", "nfa", "perf", "unicode"] } regex-syntax = { version = "0.8.3" } @@ -204,6 +207,7 @@ sha2 = { version = "0.10.8", features = ["oid"] } similar = { version = "2.5.0", features = ["bytes", "inline", "unicode"] } slog = { version = "2.7.0", features = ["dynamic-keys", "max_level_trace", "release_max_level_debug", "release_max_level_trace"] } smallvec = { version = "1.13.2", default-features = false, features = ["const_new"] } +socket2 = { version = "0.5.7", default-features = false, features = ["all"] } spin = { version = "0.9.8" } string_cache = { version = "0.8.7" } subtle = { version = "2.5.0" }