diff --git a/nexus/db-queries/src/db/datastore/bgp.rs b/nexus/db-queries/src/db/datastore/bgp.rs index 94aa18da8d4..c06f69263f8 100644 --- a/nexus/db-queries/src/db/datastore/bgp.rs +++ b/nexus/db-queries/src/db/datastore/bgp.rs @@ -187,8 +187,6 @@ impl DataStore { } type TxnError = TransactionError; - //TODO this is probably best done as a query with a join instaed of a - //transaction. let pool = self.pool_connection_authorized(opctx).await?; pool.transaction_async(|conn| async move { let name_or_id = sel.name_or_id.clone(); diff --git a/nexus/db-queries/src/db/datastore/switch_port.rs b/nexus/db-queries/src/db/datastore/switch_port.rs index 0a86e2d254e..795a8c749b3 100644 --- a/nexus/db-queries/src/db/datastore/switch_port.rs +++ b/nexus/db-queries/src/db/datastore/switch_port.rs @@ -1157,9 +1157,10 @@ impl DataStore { .eq(route_config_dsl::port_settings_id.nullable())), ) .select(SwitchPort::as_select()) - // TODO: #3592 Correctness In single rack deployments there are only - // 64 ports. We'll need pagination in the future, or maybe a way to - // constrain the query to a rack? + // TODO: #3592 Correctness + // In single rack deployments there are only 64 ports. We'll need + // pagination in the future, or maybe a way to constrain the query to + // a rack? .limit(64) .load_async::( &*self.pool_connection_authorized(opctx).await?, diff --git a/nexus/src/app/bgp.rs b/nexus/src/app/bgp.rs index ef6acb27ddc..e800d72bdd0 100644 --- a/nexus/src/app/bgp.rs +++ b/nexus/src/app/bgp.rs @@ -87,8 +87,11 @@ impl super::Nexus { for (switch, client) in &self.mg_clients { let router_info = match client.inner.get_routers().await { Ok(result) => result.into_inner(), - Err(_e) => { - //TODO log + Err(e) => { + error!( + self.log, + "failed to get routers from {switch}: {e}" + ); continue; } }; @@ -143,8 +146,11 @@ impl super::Nexus { id: x.id, }) .collect(), - Err(_e) => { - //TODO log + Err(e) => { + error!( + self.log, + "failed to get BGP imported from {switch}: {e}" + ); continue; } }; diff --git a/nexus/src/app/mod.rs b/nexus/src/app/mod.rs index 1144bad94cf..ee13a7deae1 100644 --- a/nexus/src/app/mod.rs +++ b/nexus/src/app/mod.rs @@ -157,8 +157,6 @@ pub struct Nexus { /// Map switch location to maghemite admin clients. mg_clients: HashMap>, - // /// Map switch location to scrimlet sled agent clients. - // XXX? scrimlet_clients: HashMap>, /// Background tasks background_tasks: background::BackgroundTasks, @@ -218,14 +216,6 @@ impl Nexus { Arc, > = HashMap::new(); - //XXX? - /* - let scrimlet_clients: HashMap< - SwitchLocation, - Arc, - > = HashMap::new(); - */ - // Currently static dpd configuration mappings are still required for // testing for (location, config) in &config.pkg.dendrite { @@ -387,7 +377,6 @@ impl Nexus { external_resolver, dpd_clients, mg_clients, - //XXX? scrimlet_clients, background_tasks, default_region_allocation_strategy: config .pkg diff --git a/nexus/src/app/switch_port.rs b/nexus/src/app/switch_port.rs index fdd507708f2..2f3e3fe564f 100644 --- a/nexus/src/app/switch_port.rs +++ b/nexus/src/app/switch_port.rs @@ -28,7 +28,9 @@ impl super::Nexus { ) -> CreateResult { opctx.authorize(authz::Action::Modify, &authz::FLEET).await?; - //TODO race conditions on exists check versus update/create. + //TODO(ry) race conditions on exists check versus update/create. + // Normally I would use a DB lock here, but not sure what + // the Omicron way of doing things here is. match self .db_datastore @@ -95,6 +97,9 @@ impl super::Nexus { .await?; } + // TODO update bootstore goes here + // Need a sled-agent API to update early network config + Ok(result) } diff --git a/nexus/types/src/external_api/params.rs b/nexus/types/src/external_api/params.rs index a6f5c3d8703..633bb8d5c69 100644 --- a/nexus/types/src/external_api/params.rs +++ b/nexus/types/src/external_api/params.rs @@ -1406,25 +1406,6 @@ pub struct Route { pub vid: Option, } -/* -/// A BGP configuration. -#[derive(Clone, Debug, Deserialize, Serialize, JsonSchema)] -pub struct BgpConfig { - /// Name of the BGP config. - pub name: Name, - - /// BGP config description. - pub description: String, - - /// The autonomous system number of this BGP configuration. - pub asn: u32, - - /// Optional virtual routing and forwarding identifier for this BGP - /// configuration. For future use. Currently ignored. - pub vrf: Option, -} -*/ - /// Select a BGP config by a name or id. #[derive(Clone, Debug, Deserialize, Serialize, JsonSchema, PartialEq)] pub struct BgpConfigSelector { diff --git a/package-manifest.toml b/package-manifest.toml index bf9107e8b4d..febff4aa0c3 100644 --- a/package-manifest.toml +++ b/package-manifest.toml @@ -473,8 +473,8 @@ only_for_targets.image = "standard" # 2. Copy dendrite.tar.gz from dendrite/out to omicron/out source.type = "prebuilt" source.repo = "dendrite" -source.commit = "5e344ff540f8b067596eb63c730215e7360fa913" -source.sha256 = "3115e756ebe11b1a10355d819c1e160f2e0242c4adcbe44bb76a0dd030a67c87" +source.commit = "c0cbc39b55fac54b95468304c497e00f3d3cf686" +source.sha256 = "3706e0e8230b7f76407ec0acea9020b9efc7d6c78b74c304102fd8e62cac6760" output.type = "zone" output.intermediate_only = true @@ -498,8 +498,8 @@ only_for_targets.image = "standard" # 2. Copy the output zone image from dendrite/out to omicron/out source.type = "prebuilt" source.repo = "dendrite" -source.commit = "5e344ff540f8b067596eb63c730215e7360fa913" -source.sha256 = "62885443d70abecf29aad1aba33046449661fd5dc7ee149e2328164b95e98545" +source.commit = "c0cbc39b55fac54b95468304c497e00f3d3cf686" +source.sha256 = "f0847927f7d7197d9a5c4267a0bd0af609d18fd8d6d9b80755c370872c5297fa" output.type = "zone" output.intermediate_only = true @@ -516,8 +516,8 @@ only_for_targets.image = "standard" # 2. Copy dendrite.tar.gz from dendrite/out to omicron/out/dendrite-softnpu.tar.gz source.type = "prebuilt" source.repo = "dendrite" -source.commit = "5e344ff540f8b067596eb63c730215e7360fa913" -source.sha256 = "2af60c4760d77ef43f80b633cc73f7c0684aa0f1cab6ff2e26b4a6bd1fcc7b8f" +source.commit = "c0cbc39b55fac54b95468304c497e00f3d3cf686" +source.sha256 = "33b5897db1fe7b57d282531724ecd7bf74f5156f9aa23f10c6f0d9b54c38a987" output.type = "zone" output.intermediate_only = true diff --git a/sled-agent/src/rack_setup/service.rs b/sled-agent/src/rack_setup/service.rs index 805c8892951..9b9f9130c15 100644 --- a/sled-agent/src/rack_setup/service.rs +++ b/sled-agent/src/rack_setup/service.rs @@ -877,6 +877,8 @@ impl ServiceInner { rack_network_config: config.rack_network_config.clone(), }; info!(self.log, "Writing Rack Network Configuration to bootstore"); + //NOTE(ry) this is where the early network config gets saved. + //NOTE(ry) generation number must be bumped. Nexus owns generation number. bootstore.update_network_config(early_network_config.into()).await?; // Forward the sled initialization requests to our sled-agent. diff --git a/tools/dendrite_openapi_version b/tools/dendrite_openapi_version index 393b541b84f..9a2ea85ac0e 100644 --- a/tools/dendrite_openapi_version +++ b/tools/dendrite_openapi_version @@ -1,2 +1,2 @@ -COMMIT="5e344ff540f8b067596eb63c730215e7360fa913" +COMMIT="c0cbc39b55fac54b95468304c497e00f3d3cf686" SHA2="cb3f0cfbe6216d2441d34e0470252e0fb142332e47b33b65c24ef7368a694b6d" diff --git a/tools/dendrite_stub_checksums b/tools/dendrite_stub_checksums index 61afff8381a..fe52c593815 100644 --- a/tools/dendrite_stub_checksums +++ b/tools/dendrite_stub_checksums @@ -1,3 +1,3 @@ -CIDL_SHA256_ILLUMOS="3115e756ebe11b1a10355d819c1e160f2e0242c4adcbe44bb76a0dd030a67c87" -CIDL_SHA256_LINUX_DPD="a999b953bb92cfdab681699661b0510d9702e6cf6d3517bc81a3fea731208bb7" -CIDL_SHA256_LINUX_SWADM="cf1d4e91992133a51223dcb9bb17b07edea40fcd32690a44a8b36b1ba0a4636e" +CIDL_SHA256_ILLUMOS="3706e0e8230b7f76407ec0acea9020b9efc7d6c78b74c304102fd8e62cac6760" +CIDL_SHA256_LINUX_DPD="b275a1c688eae1024b9ce1cbb766a66e37072e84b4a6cbc18746c903739ccf51" +CIDL_SHA256_LINUX_SWADM="7e604cc4b67c1a711a63ece2a8d0e2e7c8ef2b9ac6bb433b3c2e02f5f66018ba" diff --git a/wicket/src/rack_setup/config_template.toml b/wicket/src/rack_setup/config_template.toml index 4b193a0c298..4cb204b6942 100644 --- a/wicket/src/rack_setup/config_template.toml +++ b/wicket/src/rack_setup/config_template.toml @@ -1,5 +1,8 @@ # TODO Explanatory block comment +# NOTE(ry) this file needs to be updated with BGP config. Put it in here and +# add a comment that it's optional. + # Delegated external DNS zone name # # The rack provides separate external API and console endpoints for each Silo.