Skip to content

Commit b18b726

Browse files
committed
put back the sql properly
1 parent 70e7b66 commit b18b726

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

nexus/db-queries/src/db/queries/network_interface.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1209,6 +1209,15 @@ impl QueryFragment<Pg> for InsertQuery {
12091209
out.push_sql(", ");
12101210

12111211
select_from_cte(out.reborrow(), dsl::is_primary::NAME)?;
1212+
out.push_sql(" AS ");
1213+
out.push_identifier(dsl::is_primary::NAME)?;
1214+
out.push_sql(", ");
1215+
1216+
out.push_bind_param::<sql_types::Array<sql_types::Inet>, Vec<IpNetwork>>(
1217+
&self.interface.transit_ips,
1218+
)?;
1219+
out.push_sql(" AS ");
1220+
out.push_identifier(dsl::transit_ips::NAME)?;
12121221

12131222
Ok(())
12141223
}
@@ -1263,6 +1272,8 @@ impl QueryFragment<Pg> for InsertQueryValues {
12631272
out.push_identifier(dsl::slot::NAME)?;
12641273
out.push_sql(", ");
12651274
out.push_identifier(dsl::is_primary::NAME)?;
1275+
out.push_sql(", ");
1276+
out.push_identifier(dsl::transit_ips::NAME)?;
12661277
out.push_sql(") ");
12671278
self.0.walk_ast(out)
12681279
}

nexus/tests/integration_tests/instances.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2670,7 +2670,7 @@ async fn test_instance_create_delete_network_interface(
26702670
vpc_name: "default".parse().unwrap(),
26712671
subnet_name: "default".parse().unwrap(),
26722672
ip: Some("172.30.0.10".parse().unwrap()),
2673-
transit_ips: vec![],
2673+
transit_ips: vec!["10.0.0.0/24".parse().unwrap(), "10.1.0.0/24".parse().unwrap()],
26742674
},
26752675
params::InstanceNetworkInterfaceCreate {
26762676
identity: IdentityMetadataCreateParams {
@@ -2680,7 +2680,7 @@ async fn test_instance_create_delete_network_interface(
26802680
vpc_name: "default".parse().unwrap(),
26812681
subnet_name: secondary_subnet.identity.name.clone(),
26822682
ip: Some("172.31.0.11".parse().unwrap()),
2683-
transit_ips: vec![],
2683+
transit_ips: vec!["192.168.1.0/24".parse().unwrap()],
26842684
},
26852685
];
26862686

@@ -2734,6 +2734,11 @@ async fn test_instance_create_delete_network_interface(
27342734
i == 0,
27352735
"Only the first interface should be primary"
27362736
);
2737+
// Verify transit_ips are persisted correctly
2738+
assert_eq!(iface.transit_ips.len(), params.transit_ips.len());
2739+
for (actual, expected) in iface.transit_ips.iter().zip(params.transit_ips.iter()) {
2740+
assert_eq!(actual, expected);
2741+
}
27372742
interfaces.push(iface);
27382743
}
27392744

@@ -2754,6 +2759,7 @@ async fn test_instance_create_delete_network_interface(
27542759
assert_eq!(iface0.subnet_id, iface1.subnet_id);
27552760
assert_eq!(iface0.ip, iface1.ip);
27562761
assert_eq!(iface0.primary, iface1.primary);
2762+
assert_eq!(iface0.transit_ips, iface1.transit_ips);
27572763
}
27582764

27592765
// Verify we cannot delete either interface while the instance is running

0 commit comments

Comments
 (0)