diff --git a/nexus/db-model/src/schema.rs b/nexus/db-model/src/schema.rs index 5633950320f..f80b5b1c6a9 100644 --- a/nexus/db-model/src/schema.rs +++ b/nexus/db-model/src/schema.rs @@ -8,7 +8,6 @@ use omicron_common::api::external::SemverVersion; -<<<<<<< HEAD /// The version of the database schema this particular version of Nexus was /// built against. /// @@ -16,16 +15,6 @@ use omicron_common::api::external::SemverVersion; /// refer to: schema/crdb/README.adoc pub const SCHEMA_VERSION: SemverVersion = SemverVersion::new(22, 0, 1); -||||||| 7c3cd6abe -======= -/// The version of the database schema this particular version of Nexus was -/// built against. -/// -/// This should be updated whenever the schema is changed. For more details, -/// refer to: schema/crdb/README.adoc -pub const SCHEMA_VERSION: SemverVersion = SemverVersion::new(21, 0, 0); - ->>>>>>> main table! { disk (id) { id -> Uuid, diff --git a/nexus/db-queries/src/db/datastore/external_ip.rs b/nexus/db-queries/src/db/datastore/external_ip.rs index 220ea6dcb21..02ce9501188 100644 --- a/nexus/db-queries/src/db/datastore/external_ip.rs +++ b/nexus/db-queries/src/db/datastore/external_ip.rs @@ -143,7 +143,6 @@ impl DataStore { ) -> CreateResult { let ip_id = Uuid::new_v4(); -<<<<<<< HEAD // TODO: NameOrId resolution should happen a level higher, in the nexus function let (.., authz_pool, pool) = match params.pool { Some(NameOrId::Name(name)) => { @@ -151,41 +150,7 @@ impl DataStore { .ip_pool_name(&Name(name)) .fetch_for(authz::Action::Read) .await? -||||||| 7c3cd6abe - let pool_id = match params.pool { - Some(NameOrId::Name(name)) => { - LookupPath::new(opctx, self) - .ip_pool_name(&Name(name)) - .fetch_for(authz::Action::Read) - .await? - .1 -======= - // See `allocate_instance_ephemeral_ip`: we're replicating - // its strucutre to prevent cross-silo pool access. - let pool_id = if let Some(name_or_id) = params.pool { - let (.., authz_pool, pool) = match name_or_id { - NameOrId::Name(name) => { - LookupPath::new(opctx, self) - .ip_pool_name(&Name(name)) - .fetch_for(authz::Action::CreateChild) - .await? - } - NameOrId::Id(id) => { - LookupPath::new(opctx, self) - .ip_pool_id(id) - .fetch_for(authz::Action::CreateChild) - .await? - } - }; - - let authz_silo_id = opctx.authn.silo_required()?.id(); - if let Some(pool_silo_id) = pool.silo_id { - if pool_silo_id != authz_silo_id { - return Err(authz_pool.not_found()); - } ->>>>>>> main } -<<<<<<< HEAD Some(NameOrId::Id(id)) => { LookupPath::new(opctx, self) .ip_pool_id(id) @@ -200,21 +165,6 @@ impl DataStore { // If this pool is not linked to the current silo, 404 if self.ip_pool_fetch_link(opctx, pool_id).await.is_err() { return Err(authz_pool.not_found()); -||||||| 7c3cd6abe - Some(NameOrId::Id(id)) => { - LookupPath::new(opctx, self) - .ip_pool_id(id) - .fetch_for(authz::Action::Read) - .await? - .1 - } - None => self.ip_pools_fetch_default(opctx).await?, -======= - - pool - } else { - self.ip_pools_fetch_default(opctx).await? ->>>>>>> main } let data = if let Some(ip) = params.address { diff --git a/nexus/src/app/sagas/disk_create.rs b/nexus/src/app/sagas/disk_create.rs index 9f5781bf966..9d52ec15011 100644 --- a/nexus/src/app/sagas/disk_create.rs +++ b/nexus/src/app/sagas/disk_create.rs @@ -851,22 +851,6 @@ pub(crate) mod test { const DISK_NAME: &str = "my-disk"; const PROJECT_NAME: &str = "springfield-squidport"; -<<<<<<< HEAD -||||||| 7c3cd6abe - async fn create_org_and_project(client: &ClientTestContext) -> Uuid { - create_ip_pool(&client, "p0", None).await; - let project = create_project(client, PROJECT_NAME).await; - project.identity.id - } - -======= - async fn create_org_and_project(client: &ClientTestContext) -> Uuid { - create_ip_pool(&client, "p0", None, None).await; - let project = create_project(client, PROJECT_NAME).await; - project.identity.id - } - ->>>>>>> main pub fn new_disk_create_params() -> params::DiskCreate { params::DiskCreate { identity: IdentityMetadataCreateParams { diff --git a/nexus/src/app/sagas/disk_delete.rs b/nexus/src/app/sagas/disk_delete.rs index a5f78d6a555..333e6c16725 100644 --- a/nexus/src/app/sagas/disk_delete.rs +++ b/nexus/src/app/sagas/disk_delete.rs @@ -198,22 +198,6 @@ pub(crate) mod test { const PROJECT_NAME: &str = "springfield-squidport"; -<<<<<<< HEAD -||||||| 7c3cd6abe - async fn create_org_and_project(client: &ClientTestContext) -> Uuid { - create_ip_pool(&client, "p0", None).await; - let project = create_project(client, PROJECT_NAME).await; - project.identity.id - } - -======= - async fn create_org_and_project(client: &ClientTestContext) -> Uuid { - create_ip_pool(&client, "p0", None, None).await; - let project = create_project(client, PROJECT_NAME).await; - project.identity.id - } - ->>>>>>> main pub fn test_opctx(cptestctx: &ControlPlaneTestContext) -> OpContext { OpContext::for_tests( cptestctx.logctx.log.new(o!()), diff --git a/nexus/src/app/sagas/snapshot_create.rs b/nexus/src/app/sagas/snapshot_create.rs index fb52a456527..ed8c8ccebf0 100644 --- a/nexus/src/app/sagas/snapshot_create.rs +++ b/nexus/src/app/sagas/snapshot_create.rs @@ -1782,18 +1782,10 @@ mod test { const DISK_NAME: &str = "disky-mcdiskface"; const INSTANCE_NAME: &str = "base-instance"; -<<<<<<< HEAD async fn create_project_and_disk_and_pool( client: &ClientTestContext, ) -> Uuid { create_default_ip_pool(&client).await; -||||||| 7c3cd6abe - async fn create_org_project_and_disk(client: &ClientTestContext) -> Uuid { - create_ip_pool(&client, "p0", None).await; -======= - async fn create_org_project_and_disk(client: &ClientTestContext) -> Uuid { - create_ip_pool(&client, "p0", None, None).await; ->>>>>>> main create_project(client, PROJECT_NAME).await; create_disk(client, PROJECT_NAME, DISK_NAME).await.identity.id } diff --git a/nexus/src/external_api/http_entrypoints.rs b/nexus/src/external_api/http_entrypoints.rs index 10e90eec873..21acb45ed3e 100644 --- a/nexus/src/external_api/http_entrypoints.rs +++ b/nexus/src/external_api/http_entrypoints.rs @@ -6,13 +6,10 @@ use super::{ console_api, device_auth, params, - params::{ProjectSelector, UninitializedSledId}, - shared::UninitializedSled, views::{ self, Certificate, Group, IdentityProvider, Image, IpPool, IpPoolRange, - PhysicalDisk, Project, Rack, Role, Silo, SiloQuotas, SiloUtilization, - Sled, SledInstance, Snapshot, SshKey, Switch, User, UserBuiltin, Vpc, - VpcRouter, VpcSubnet, + PhysicalDisk, Project, Rack, Role, Silo, SiloUtilization, Sled, + Snapshot, SshKey, User, UserBuiltin, Vpc, VpcRouter, VpcSubnet, }, }; use crate::external_api::shared; @@ -40,32 +37,13 @@ use dropshot::{ use ipnetwork::IpNetwork; use nexus_db_queries::authz; use nexus_db_queries::db; -use nexus_db_queries::db::identity::AssetIdentityMetadata; use nexus_db_queries::db::identity::Resource; use nexus_db_queries::db::lookup::ImageLookup; use nexus_db_queries::db::lookup::ImageParentLookup; use nexus_db_queries::db::model::Name; -<<<<<<< HEAD use nexus_types::external_api::views::SiloQuotas; -use nexus_types::{ - external_api::views::{SledInstance, Switch}, - identity::AssetIdentityMetadata, -}; -||||||| 7c3cd6abe -use nexus_db_queries::{ - authz::ApiResource, db::fixed_data::silo::INTERNAL_SILO_ID, -}; -use nexus_types::external_api::{params::ProjectSelector, views::SiloQuotas}; -use nexus_types::{ - external_api::views::{SledInstance, Switch}, - identity::AssetIdentityMetadata, -}; -======= -use nexus_db_queries::{ - authz::ApiResource, db::fixed_data::silo::INTERNAL_SILO_ID, -}; use nexus_types::external_api::views::Utilization; ->>>>>>> main +use nexus_types::identity::AssetIdentityMetadata; use omicron_common::api::external::http_pagination::data_page_params_for; use omicron_common::api::external::http_pagination::marker_for_name; use omicron_common::api::external::http_pagination::marker_for_name_or_id; @@ -1315,13 +1293,7 @@ async fn project_policy_update( // IP Pools -<<<<<<< HEAD /// List all IP pools -||||||| 7c3cd6abe -/// List all IP Pools that can be used by a given project. -======= -/// List all IP pools that can be used by a given project ->>>>>>> main #[endpoint { method = GET, path = "/v1/ip-pools", @@ -4788,7 +4760,7 @@ async fn rack_view( async fn sled_list_uninitialized( rqctx: RequestContext>, query: Query>, -) -> Result>, HttpError> { +) -> Result>, HttpError> { let apictx = rqctx.context(); // We don't actually support real pagination let pag_params = query.into_inner(); @@ -4819,7 +4791,7 @@ async fn sled_list_uninitialized( }] async fn sled_add( rqctx: RequestContext>, - sled: TypedBody, + sled: TypedBody, ) -> Result { let apictx = rqctx.context(); let nexus = &apictx.nexus; @@ -4933,7 +4905,7 @@ async fn sled_instance_list( rqctx: RequestContext>, path_params: Path, query_params: Query, -) -> Result>, HttpError> { +) -> Result>, HttpError> { let apictx = rqctx.context(); let handler = async { let nexus = &apictx.nexus; @@ -4954,7 +4926,7 @@ async fn sled_instance_list( Ok(HttpResponseOk(ScanById::results_page( &query, sled_instances, - &|_, sled_instance: &SledInstance| sled_instance.identity.id, + &|_, sled_instance: &views::SledInstance| sled_instance.identity.id, )?)) }; apictx.external_latencies.instrument_dropshot_handler(&rqctx, handler).await @@ -5003,7 +4975,7 @@ async fn physical_disk_list( async fn switch_list( rqctx: RequestContext>, query_params: Query, -) -> Result>, HttpError> { +) -> Result>, HttpError> { let apictx = rqctx.context(); let handler = async { let nexus = &apictx.nexus; @@ -5018,7 +4990,7 @@ async fn switch_list( Ok(HttpResponseOk(ScanById::results_page( &query, switches, - &|_, switch: &Switch| switch.identity.id, + &|_, switch: &views::Switch| switch.identity.id, )?)) }; apictx.external_latencies.instrument_dropshot_handler(&rqctx, handler).await @@ -5033,7 +5005,7 @@ async fn switch_list( async fn switch_view( rqctx: RequestContext>, path_params: Path, -) -> Result, HttpError> { +) -> Result, HttpError> { let apictx = rqctx.context(); let handler = async { let nexus = &apictx.nexus; diff --git a/nexus/test-utils/src/resource_helpers.rs b/nexus/test-utils/src/resource_helpers.rs index 12f5ab5c1b4..c2516a1509e 100644 --- a/nexus/test-utils/src/resource_helpers.rs +++ b/nexus/test-utils/src/resource_helpers.rs @@ -213,7 +213,6 @@ pub async fn create_ip_pool( client: &ClientTestContext, pool_name: &str, ip_range: Option, - silo: Option, ) -> (IpPool, IpPoolRange) { let pool = object_create( client, @@ -223,14 +222,6 @@ pub async fn create_ip_pool( name: pool_name.parse().unwrap(), description: String::from("an ip pool"), }, -<<<<<<< HEAD -||||||| 7c3cd6abe - silo: None, - is_default: false, -======= - silo: silo.map(|id| NameOrId::Id(id)), - is_default: false, ->>>>>>> main }, ) .await; diff --git a/nexus/tests/integration_tests/disks.rs b/nexus/tests/integration_tests/disks.rs index db5e7a0fcb2..2d206db53a4 100644 --- a/nexus/tests/integration_tests/disks.rs +++ b/nexus/tests/integration_tests/disks.rs @@ -1392,7 +1392,8 @@ async fn test_phantom_disk_rename(cptestctx: &ControlPlaneTestContext) { let _disk_test = DiskTest::new(&cptestctx).await; - populate_ip_pool(&client, "default", None).await; + // TODO + // populate_ip_pool(&client, "default", None).await; let _project_id1 = create_project(client, PROJECT_NAME).await.identity.id; // Create a 1 GB disk diff --git a/nexus/tests/integration_tests/endpoints.rs b/nexus/tests/integration_tests/endpoints.rs index 931fdd74d05..693b11afd14 100644 --- a/nexus/tests/integration_tests/endpoints.rs +++ b/nexus/tests/integration_tests/endpoints.rs @@ -579,87 +579,53 @@ pub static DEMO_PROJECT_PROMOTE_IMAGE_URL: Lazy = Lazy::new(|| { ) }); -<<<<<<< HEAD - // IP Pools - pub static ref DEMO_IP_POOLS_PROJ_URL: String = "/v1/ip-pools".to_string(); - pub static ref DEMO_IP_POOLS_URL: &'static str = "/v1/system/ip-pools"; - pub static ref DEMO_IP_POOL_NAME: Name = "default".parse().unwrap(); - pub static ref DEMO_IP_POOL_CREATE: params::IpPoolCreate = - params::IpPoolCreate { - identity: IdentityMetadataCreateParams { - name: DEMO_IP_POOL_NAME.clone(), - description: String::from("an IP pool"), - }, - }; - pub static ref DEMO_IP_POOL_PROJ_URL: String = format!("/v1/ip-pools/{}", *DEMO_IP_POOL_NAME); - pub static ref DEMO_IP_POOL_URL: String = format!("/v1/system/ip-pools/{}", *DEMO_IP_POOL_NAME); - pub static ref DEMO_IP_POOL_UPDATE: params::IpPoolUpdate = - params::IpPoolUpdate { - identity: IdentityMetadataUpdateParams { - name: None, - description: Some(String::from("a new IP pool")), - }, - }; - pub static ref DEMO_IP_POOL_SILOS_URL: String = format!("{}/silos", *DEMO_IP_POOL_URL); - pub static ref DEMO_IP_POOL_SILOS_BODY: params::IpPoolSiloLink = - params::IpPoolSiloLink { - silo: NameOrId::Id(DEFAULT_SILO.identity().id), - is_default: true, // necessary for demo instance create to go through - }; - - pub static ref DEMO_IP_POOL_SILO_URL: String = format!("{}/silos/{}", *DEMO_IP_POOL_URL, *DEMO_SILO_NAME); - pub static ref DEMO_IP_POOL_SILO_UPDATE_BODY: params::IpPoolSiloUpdate = - params::IpPoolSiloUpdate { - is_default: false, - }; - - pub static ref DEMO_IP_POOL_RANGE: IpRange = IpRange::V4(Ipv4Range::new( - std::net::Ipv4Addr::new(10, 0, 0, 0), - std::net::Ipv4Addr::new(10, 0, 0, 255), - ).unwrap()); - pub static ref DEMO_IP_POOL_RANGES_URL: String = format!("{}/ranges", *DEMO_IP_POOL_URL); - pub static ref DEMO_IP_POOL_RANGES_ADD_URL: String = format!("{}/add", *DEMO_IP_POOL_RANGES_URL); - pub static ref DEMO_IP_POOL_RANGES_DEL_URL: String = format!("{}/remove", *DEMO_IP_POOL_RANGES_URL); -||||||| 7c3cd6abe - // IP Pools - pub static ref DEMO_IP_POOLS_PROJ_URL: String = - format!("/v1/ip-pools?project={}", *DEMO_PROJECT_NAME); - pub static ref DEMO_IP_POOLS_URL: &'static str = "/v1/system/ip-pools"; - pub static ref DEMO_IP_POOL_NAME: Name = "default".parse().unwrap(); - pub static ref DEMO_IP_POOL_CREATE: params::IpPoolCreate = - params::IpPoolCreate { - identity: IdentityMetadataCreateParams { - name: DEMO_IP_POOL_NAME.clone(), - description: String::from("an IP pool"), - }, - silo: None, - is_default: true, - }; - pub static ref DEMO_IP_POOL_PROJ_URL: String = - format!("/v1/ip-pools/{}?project={}", *DEMO_IP_POOL_NAME, *DEMO_PROJECT_NAME); - pub static ref DEMO_IP_POOL_URL: String = format!("/v1/system/ip-pools/{}", *DEMO_IP_POOL_NAME); - pub static ref DEMO_IP_POOL_UPDATE: params::IpPoolUpdate = - params::IpPoolUpdate { - identity: IdentityMetadataUpdateParams { - name: None, - description: Some(String::from("a new IP pool")), - }, - }; - pub static ref DEMO_IP_POOL_RANGE: IpRange = IpRange::V4(Ipv4Range::new( - std::net::Ipv4Addr::new(10, 0, 0, 0), - std::net::Ipv4Addr::new(10, 0, 0, 255), - ).unwrap()); - pub static ref DEMO_IP_POOL_RANGES_URL: String = format!("{}/ranges", *DEMO_IP_POOL_URL); - pub static ref DEMO_IP_POOL_RANGES_ADD_URL: String = format!("{}/add", *DEMO_IP_POOL_RANGES_URL); - pub static ref DEMO_IP_POOL_RANGES_DEL_URL: String = format!("{}/remove", *DEMO_IP_POOL_RANGES_URL); -======= +// // IP Pools +// pub static ref DEMO_IP_POOLS_PROJ_URL: String = "/v1/ip-pools".to_string(); +// pub static ref DEMO_IP_POOLS_URL: &'static str = "/v1/system/ip-pools"; +// pub static ref DEMO_IP_POOL_NAME: Name = "default".parse().unwrap(); +// pub static ref DEMO_IP_POOL_CREATE: params::IpPoolCreate = +// params::IpPoolCreate { +// identity: IdentityMetadataCreateParams { +// name: DEMO_IP_POOL_NAME.clone(), +// description: String::from("an IP pool"), +// }, +// }; +// pub static ref DEMO_IP_POOL_PROJ_URL: String = format!("/v1/ip-pools/{}", *DEMO_IP_POOL_NAME); +// pub static ref DEMO_IP_POOL_URL: String = format!("/v1/system/ip-pools/{}", *DEMO_IP_POOL_NAME); +// pub static ref DEMO_IP_POOL_UPDATE: params::IpPoolUpdate = +// params::IpPoolUpdate { +// identity: IdentityMetadataUpdateParams { +// name: None, +// description: Some(String::from("a new IP pool")), +// }, +// }; +// pub static ref DEMO_IP_POOL_SILOS_URL: String = format!("{}/silos", *DEMO_IP_POOL_URL); +// pub static ref DEMO_IP_POOL_SILOS_BODY: params::IpPoolSiloLink = +// params::IpPoolSiloLink { +// silo: NameOrId::Id(DEFAULT_SILO.identity().id), +// is_default: true, // necessary for demo instance create to go through +// }; + +// pub static ref DEMO_IP_POOL_SILO_URL: String = format!("{}/silos/{}", *DEMO_IP_POOL_URL, *DEMO_SILO_NAME); +// pub static ref DEMO_IP_POOL_SILO_UPDATE_BODY: params::IpPoolSiloUpdate = +// params::IpPoolSiloUpdate { +// is_default: false, +// }; + +// pub static ref DEMO_IP_POOL_RANGE: IpRange = IpRange::V4(Ipv4Range::new( +// std::net::Ipv4Addr::new(10, 0, 0, 0), +// std::net::Ipv4Addr::new(10, 0, 0, 255), +// ).unwrap()); +// pub static ref DEMO_IP_POOL_RANGES_URL: String = format!("{}/ranges", *DEMO_IP_POOL_URL); +// pub static ref DEMO_IP_POOL_RANGES_ADD_URL: String = format!("{}/add", *DEMO_IP_POOL_RANGES_URL); +// pub static ref DEMO_IP_POOL_RANGES_DEL_URL: String = format!("{}/remove", *DEMO_IP_POOL_RANGES_URL); + pub static DEMO_SILO_DEMOTE_IMAGE_URL: Lazy = Lazy::new(|| { format!( "/v1/images/{}/demote?project={}", *DEMO_IMAGE_NAME, *DEMO_PROJECT_NAME ) }); ->>>>>>> main pub static DEMO_IMAGE_CREATE: Lazy = Lazy::new(|| params::ImageCreate { @@ -674,7 +640,7 @@ pub static DEMO_IMAGE_CREATE: Lazy = // IP Pools pub static DEMO_IP_POOLS_PROJ_URL: Lazy = - Lazy::new(|| format!("/v1/ip-pools?project={}", *DEMO_PROJECT_NAME)); + Lazy::new(|| "/v1/ip-pools".to_string()); pub const DEMO_IP_POOLS_URL: &'static str = "/v1/system/ip-pools"; pub static DEMO_IP_POOL_NAME: Lazy = Lazy::new(|| "default".parse().unwrap()); @@ -684,8 +650,6 @@ pub static DEMO_IP_POOL_CREATE: Lazy = name: DEMO_IP_POOL_NAME.clone(), description: String::from("an IP pool"), }, - silo: None, - is_default: true, }); pub static DEMO_IP_POOL_PROJ_URL: Lazy = Lazy::new(|| { format!( @@ -702,6 +666,19 @@ pub static DEMO_IP_POOL_UPDATE: Lazy = description: Some(String::from("a new IP pool")), }, }); +pub static DEMO_IP_POOL_SILOS_URL: Lazy = + Lazy::new(|| format!("{}/silos", *DEMO_IP_POOL_URL)); +pub static DEMO_IP_POOL_SILOS_BODY: Lazy = + Lazy::new(|| params::IpPoolSiloLink { + silo: NameOrId::Id(DEFAULT_SILO.identity().id), + is_default: true, // necessary for demo instance create to go through + }); + +pub static DEMO_IP_POOL_SILO_URL: Lazy = + Lazy::new(|| format!("{}/silos/{}", *DEMO_IP_POOL_URL, *DEMO_SILO_NAME)); +pub static DEMO_IP_POOL_SILO_UPDATE_BODY: Lazy = + Lazy::new(|| params::IpPoolSiloUpdate { is_default: false }); + pub static DEMO_IP_POOL_RANGE: Lazy = Lazy::new(|| { IpRange::V4( Ipv4Range::new( diff --git a/nexus/tests/integration_tests/external_ips.rs b/nexus/tests/integration_tests/external_ips.rs index fb5aaa8992e..3e6fee0a529 100644 --- a/nexus/tests/integration_tests/external_ips.rs +++ b/nexus/tests/integration_tests/external_ips.rs @@ -21,18 +21,12 @@ use nexus_test_utils::resource_helpers::create_floating_ip; use nexus_test_utils::resource_helpers::create_instance_with; use nexus_test_utils::resource_helpers::create_ip_pool; use nexus_test_utils::resource_helpers::create_project; -<<<<<<< HEAD +use nexus_test_utils::resource_helpers::create_silo; use nexus_test_utils::resource_helpers::link_ip_pool; use nexus_test_utils::resource_helpers::object_create; use nexus_test_utils::resource_helpers::object_create_error; use nexus_test_utils::resource_helpers::object_delete; use nexus_test_utils::resource_helpers::object_delete_error; -||||||| 7c3cd6abe -use nexus_test_utils::resource_helpers::populate_ip_pool; -======= -use nexus_test_utils::resource_helpers::create_silo; -use nexus_test_utils::resource_helpers::populate_ip_pool; ->>>>>>> main use nexus_test_utils_macros::nexus_test; use nexus_types::external_api::params; use nexus_types::external_api::shared; @@ -126,14 +120,8 @@ async fn test_floating_ip_create(cptestctx: &ControlPlaneTestContext) { Ipv4Range::new(Ipv4Addr::new(10, 1, 0, 1), Ipv4Addr::new(10, 1, 0, 5)) .unwrap(), ); -<<<<<<< HEAD // not automatically linked to currently silo. see below create_ip_pool(&client, "other-pool", Some(other_pool_range)).await; -||||||| 7c3cd6abe - create_ip_pool(&client, "other-pool", Some(other_pool_range)).await; -======= - create_ip_pool(&client, "other-pool", Some(other_pool_range), None).await; ->>>>>>> main let project = create_project(client, PROJECT_NAME).await; @@ -168,13 +156,7 @@ async fn test_floating_ip_create(cptestctx: &ControlPlaneTestContext) { assert_eq!(fip.instance_id, None); assert_eq!(fip.ip, ip_addr); -<<<<<<< HEAD // Creating with other-pool fails with 404 until it is linked to the current silo -||||||| 7c3cd6abe - // Create with no chosen IP from named pool. -======= - // Create with no chosen IP from fleet-scoped named pool. ->>>>>>> main let fip_name = FIP_NAMES[2]; let params = params::FloatingIpCreate { identity: IdentityMetadataCreateParams { @@ -223,12 +205,13 @@ async fn test_floating_ip_create_fails_in_other_silo_pool( ) { let client = &cptestctx.external_client; - populate_ip_pool(&client, "default", None).await; + // TODO + // populate_ip_pool(&client, "default", None).await; let project = create_project(client, PROJECT_NAME).await; // Create other silo and pool linked to that silo - let other_silo = create_silo( + let _other_silo = create_silo( &client, "not-my-silo", true, @@ -243,7 +226,8 @@ async fn test_floating_ip_create_fails_in_other_silo_pool( &client, "external-silo-pool", Some(other_pool_range), - Some(other_silo.identity.id), + // TODO + // Some(other_silo.identity.id), ) .await; diff --git a/nexus/tests/integration_tests/instances.rs b/nexus/tests/integration_tests/instances.rs index 0ba60b5058e..99ef1651882 100644 --- a/nexus/tests/integration_tests/instances.rs +++ b/nexus/tests/integration_tests/instances.rs @@ -882,7 +882,7 @@ async fn test_instance_failed_after_sled_agent_error( let instance_name = "losing-is-fun"; // Create and start the test instance. - create_org_and_project(&client).await; + create_project_and_pool(&client).await; let instance_url = get_instance_url(instance_name); let instance = create_instance(client, PROJECT_NAME, instance_name).await; instance_simulate(nexus, &instance.identity.id).await; @@ -3643,7 +3643,6 @@ async fn test_instance_ephemeral_ip_from_correct_pool( ) .unwrap(), ); -<<<<<<< HEAD // make first pool the default for the priv user's silo create_ip_pool(&client, "pool1", Some(range1)).await; @@ -3652,13 +3651,6 @@ async fn test_instance_ephemeral_ip_from_correct_pool( // second pool is associated with the silo but not default create_ip_pool(&client, "pool2", Some(range2)).await; link_ip_pool(&client, "pool2", &DEFAULT_SILO.id(), /*default*/ false).await; -||||||| 7c3cd6abe - populate_ip_pool(&client, "default", Some(default_pool_range)).await; - create_ip_pool(&client, "other-pool", Some(other_pool_range)).await; -======= - populate_ip_pool(&client, "default", Some(default_pool_range)).await; - create_ip_pool(&client, "other-pool", Some(other_pool_range), None).await; ->>>>>>> main // Create an instance with pool name blank, expect IP from default pool create_instance_with_pool(client, "pool1-inst", None).await; diff --git a/nexus/tests/integration_tests/unauthorized.rs b/nexus/tests/integration_tests/unauthorized.rs index c5e543279e6..36715648665 100644 --- a/nexus/tests/integration_tests/unauthorized.rs +++ b/nexus/tests/integration_tests/unauthorized.rs @@ -201,23 +201,12 @@ static SETUP_REQUESTS: Lazy> = Lazy::new(|| { &*DEMO_SILO_USER_ID_SET_PASSWORD_URL, ], }, -<<<<<<< HEAD // Create the default IP pool SetupReq::Post { url: &DEMO_IP_POOLS_URL, body: serde_json::to_value(&*DEMO_IP_POOL_CREATE).unwrap(), id_routes: vec!["/v1/ip-pools/{id}"], }, -||||||| 7c3cd6abe - // Get the default IP pool - SetupReq::Get { - url: &DEMO_IP_POOL_URL, - id_routes: vec![], - }, -======= - // Get the default IP pool - SetupReq::Get { url: &DEMO_IP_POOL_URL, id_routes: vec![] }, ->>>>>>> main // Create an IP pool range SetupReq::Post { url: &DEMO_IP_POOL_RANGES_ADD_URL, diff --git a/nexus/tests/integration_tests/utilization.rs b/nexus/tests/integration_tests/utilization.rs index 5ebf56f35aa..e09e71a9e3c 100644 --- a/nexus/tests/integration_tests/utilization.rs +++ b/nexus/tests/integration_tests/utilization.rs @@ -3,10 +3,10 @@ use http::StatusCode; use nexus_test_utils::http_testing::AuthnMode; use nexus_test_utils::http_testing::NexusRequest; use nexus_test_utils::http_testing::RequestBuilder; +use nexus_test_utils::resource_helpers::create_default_ip_pool; use nexus_test_utils::resource_helpers::create_instance; use nexus_test_utils::resource_helpers::create_project; use nexus_test_utils::resource_helpers::objects_list_page_authz; -use nexus_test_utils::resource_helpers::populate_ip_pool; use nexus_test_utils::resource_helpers::DiskTest; use nexus_test_utils_macros::nexus_test; use nexus_types::external_api::params; @@ -27,7 +27,7 @@ type ControlPlaneTestContext = async fn test_utilization(cptestctx: &ControlPlaneTestContext) { let client = &cptestctx.external_client; - populate_ip_pool(&client, "default", None).await; + create_default_ip_pool(&client).await; let current_util = objects_list_page_authz::( client, diff --git a/openapi/nexus.json b/openapi/nexus.json index bb4b653327c..a4ba6cbb863 100644 --- a/openapi/nexus.json +++ b/openapi/nexus.json @@ -2154,13 +2154,7 @@ "tags": [ "projects" ], -<<<<<<< HEAD "summary": "List all IP pools", -||||||| 7c3cd6abe - "summary": "List all IP Pools that can be used by a given project.", -======= - "summary": "List all IP pools that can be used by a given project", ->>>>>>> main "operationId": "project_ip_pool_list", "parameters": [ { diff --git a/schema/crdb/dbinit.sql b/schema/crdb/dbinit.sql index 48a3800d553..a2c901cb258 100644 --- a/schema/crdb/dbinit.sql +++ b/schema/crdb/dbinit.sql @@ -3103,13 +3103,7 @@ INSERT INTO omicron.public.db_metadata ( version, target_version ) VALUES -<<<<<<< HEAD ( TRUE, NOW(), NOW(), '22.0.1', NULL) -||||||| 7c3cd6abe - ( TRUE, NOW(), NOW(), '20.0.0', NULL) -======= - ( TRUE, NOW(), NOW(), '21.0.0', NULL) ->>>>>>> main ON CONFLICT DO NOTHING; COMMIT;