@@ -19,29 +19,33 @@ use std::str::FromStr;
1919
2020use mac_address:: MacAddress ;
2121use model:: address_selection_strategy:: AddressSelectionStrategy ;
22+ use model:: dns:: { Domain , NewDomain } ;
2223use model:: network_prefix:: NewNetworkPrefix ;
2324use model:: network_segment:: {
2425 AllocationStrategy , NetworkSegmentControllerState , NetworkSegmentType , NewNetworkSegment ,
2526} ;
2627
27- use crate :: tests:: common:: api_fixtures:: {
28- TestEnvOverrides , create_test_env, create_test_env_with_overrides,
29- } ;
28+ use crate as db;
29+ use crate :: test_support:: network_segment:: admin_segment;
30+
31+ async fn init_dwrt1_domain ( txn : & mut sqlx:: PgTransaction < ' _ > ) -> db:: DatabaseResult < Domain > {
32+ db:: dns:: domain:: persist ( NewDomain :: new ( "dwrt1.com" ) , txn. as_mut ( ) ) . await
33+ }
3034
3135/// Test that machine_interface::create allocates the correct IPv4 address
3236/// from the admin segment (192.0.2.0/24 with num_reserved=3, gateway=.1).
3337#[ crate :: sqlx_test]
3438async fn test_machine_interface_create_with_ipv4_prefix (
3539 pool : sqlx:: PgPool ,
3640) -> Result < ( ) , Box < dyn std:: error:: Error > > {
37- let env = create_test_env ( pool) . await ;
38- let mut txn = env . pool . begin ( ) . await ? ;
39-
40- let network_segment = db :: network_segment :: admin ( & mut txn )
41- . await ?
42- . into_iter ( )
43- . next ( )
44- . unwrap ( ) ;
41+ let mut txn = pool. begin ( ) . await ? ;
42+
43+ let network_segment = db :: network_segment :: persist (
44+ admin_segment ( "ADMIN_TEST" , "192.0.2.0/24" , "192.0.2.1" , 3 ) ,
45+ & mut txn ,
46+ NetworkSegmentControllerState :: Ready ,
47+ )
48+ . await ? ;
4549 let network_prefix = network_segment
4650 . prefixes
4751 . first ( )
@@ -111,36 +115,17 @@ async fn test_machine_interface_create_with_ipv4_prefix(
111115async fn test_machine_interface_create_falls_through_admin_segments (
112116 pool : sqlx:: PgPool ,
113117) -> Result < ( ) , Box < dyn std:: error:: Error > > {
114- let env = create_test_env_with_overrides ( pool, TestEnvOverrides :: no_network_segments ( ) ) . await ;
115- let mut txn = env. pool . begin ( ) . await ?;
116-
117- let admin_segment = |name : & str , prefix : & str , gateway : & str | NewNetworkSegment {
118- name : name. to_string ( ) ,
119- subdomain_id : None ,
120- vpc_id : None ,
121- mtu : 1500 ,
122- prefixes : vec ! [ NewNetworkPrefix {
123- prefix: prefix. parse( ) . unwrap( ) ,
124- gateway: Some ( gateway. parse( ) . unwrap( ) ) ,
125- num_reserved: 2 ,
126- } ] ,
127- vlan_id : None ,
128- vni : None ,
129- segment_type : NetworkSegmentType :: Admin ,
130- id : uuid:: Uuid :: new_v4 ( ) . into ( ) ,
131- can_stretch : None ,
132- allocation_strategy : AllocationStrategy :: Dynamic ,
133- } ;
118+ let mut txn = pool. begin ( ) . await ?;
134119
135120 // Create two tiny admin segments with one allocatable address each.
136121 let first_segment = db:: network_segment:: persist (
137- admin_segment ( "ADMIN_TINY_1" , "192.0.20.0/30" , "192.0.20.1" ) ,
122+ admin_segment ( "ADMIN_TINY_1" , "192.0.20.0/30" , "192.0.20.1" , 2 ) ,
138123 & mut txn,
139124 NetworkSegmentControllerState :: Ready ,
140125 )
141126 . await ?;
142127 let second_segment = db:: network_segment:: persist (
143- admin_segment ( "ADMIN_TINY_2" , "192.0.21.0/30" , "192.0.21.1" ) ,
128+ admin_segment ( "ADMIN_TINY_2" , "192.0.21.0/30" , "192.0.21.1" , 2 ) ,
144129 & mut txn,
145130 NetworkSegmentControllerState :: Ready ,
146131 )
@@ -178,7 +163,7 @@ async fn test_machine_interface_create_falls_through_admin_segments(
178163 txn. commit ( ) . await ?;
179164
180165 // Re-read the second interface to verify the persisted segment and address.
181- let mut txn = env . pool . begin ( ) . await ?;
166+ let mut txn = pool. begin ( ) . await ?;
182167 let persisted_interface =
183168 db:: machine_interface:: find_one ( txn. as_mut ( ) , second_interface_id) . await ?;
184169 assert_eq ! ( persisted_interface. segment_id, second_segment. id) ;
@@ -195,14 +180,8 @@ async fn test_machine_interface_create_falls_through_admin_segments(
195180async fn test_machine_interface_create_with_ipv6_prefix (
196181 pool : sqlx:: PgPool ,
197182) -> Result < ( ) , Box < dyn std:: error:: Error > > {
198- let env = create_test_env ( pool) . await ;
199- let mut txn = env. pool . begin ( ) . await ?;
200-
201- let domain = db:: dns:: domain:: find_by_name ( txn. as_mut ( ) , "dwrt1.com" )
202- . await ?
203- . into_iter ( )
204- . next ( )
205- . unwrap ( ) ;
183+ let mut txn = pool. begin ( ) . await ?;
184+ let domain = init_dwrt1_domain ( & mut txn) . await ?;
206185
207186 // Create an underlay segment with only an IPv6 prefix
208187 let new_ns = NewNetworkSegment {
@@ -278,14 +257,8 @@ async fn test_machine_interface_create_with_ipv6_prefix(
278257async fn test_machine_interface_create_dual_stack (
279258 pool : sqlx:: PgPool ,
280259) -> Result < ( ) , Box < dyn std:: error:: Error > > {
281- let env = create_test_env ( pool) . await ;
282- let mut txn = env. pool . begin ( ) . await ?;
283-
284- let domain = db:: dns:: domain:: find_by_name ( txn. as_mut ( ) , "dwrt1.com" )
285- . await ?
286- . into_iter ( )
287- . next ( )
288- . unwrap ( ) ;
260+ let mut txn = pool. begin ( ) . await ?;
261+ let domain = init_dwrt1_domain ( & mut txn) . await ?;
289262
290263 let new_ns = NewNetworkSegment {
291264 name : "DUAL-STACK-TEST" . to_string ( ) ,
0 commit comments