@@ -1138,6 +1138,13 @@ impl QueryFragment<Pg> for InsertQuery {
1138
1138
out. push_identifier ( dsl:: parent_id:: NAME ) ?;
1139
1139
out. push_sql ( ", " ) ;
1140
1140
1141
+ out. push_bind_param :: < sql_types:: Array < sql_types:: Inet > , Vec < IpNetwork > > (
1142
+ & self . interface . transit_ips ,
1143
+ ) ?;
1144
+ out. push_sql ( " AS " ) ;
1145
+ out. push_identifier ( dsl:: transit_ips:: NAME ) ?;
1146
+ out. push_sql ( ", " ) ;
1147
+
1141
1148
// Helper function to push a subquery selecting something from the CTE.
1142
1149
fn select_from_cte (
1143
1150
mut out : AstPass < Pg > ,
@@ -1231,6 +1238,8 @@ impl QueryFragment<Pg> for InsertQueryValues {
1231
1238
out. push_sql ( ", " ) ;
1232
1239
out. push_identifier ( dsl:: parent_id:: NAME ) ?;
1233
1240
out. push_sql ( ", " ) ;
1241
+ out. push_identifier ( dsl:: transit_ips:: NAME ) ?;
1242
+ out. push_sql ( ", " ) ;
1234
1243
out. push_identifier ( dsl:: vpc_id:: NAME ) ?;
1235
1244
out. push_sql ( ", " ) ;
1236
1245
out. push_identifier ( dsl:: subnet_id:: NAME ) ?;
@@ -2144,6 +2153,7 @@ mod tests {
2144
2153
name : "interface-a" . parse ( ) . unwrap ( ) ,
2145
2154
description : String :: from ( "description" ) ,
2146
2155
} ,
2156
+ vec ! [ ] ,
2147
2157
Some ( requested_ip) ,
2148
2158
)
2149
2159
. unwrap ( ) ;
@@ -2173,6 +2183,7 @@ mod tests {
2173
2183
name : "interface-a" . parse ( ) . unwrap ( ) ,
2174
2184
description : String :: from ( "description" ) ,
2175
2185
} ,
2186
+ vec ! [ ] ,
2176
2187
Some ( requested_ip) ,
2177
2188
)
2178
2189
. unwrap ( ) ;
@@ -2186,10 +2197,10 @@ mod tests {
2186
2197
. expect ( "Failed to insert interface with known-good IP address" ) ;
2187
2198
assert_interfaces_eq ( & interface, & inserted_interface. clone ( ) . into ( ) ) ;
2188
2199
assert_eq ! (
2189
- inserted_interface. ip. ip( ) ,
2190
- requested_ip,
2191
- "The requested IP address should be available when no interfaces exist in the table"
2192
- ) ;
2200
+ inserted_interface. ip. ip( ) ,
2201
+ requested_ip,
2202
+ "The requested IP address should be available when no interfaces exist in the table"
2203
+ ) ;
2193
2204
context. success ( ) . await ;
2194
2205
}
2195
2206
@@ -2205,6 +2216,7 @@ mod tests {
2205
2216
name : "interface-b" . parse ( ) . unwrap ( ) ,
2206
2217
description : String :: from ( "description" ) ,
2207
2218
} ,
2219
+ vec ! [ ] ,
2208
2220
None ,
2209
2221
)
2210
2222
. unwrap ( ) ;
@@ -2243,6 +2255,7 @@ mod tests {
2243
2255
name : format ! ( "interface-{}" , i) . parse ( ) . unwrap ( ) ,
2244
2256
description : String :: from ( "description" ) ,
2245
2257
} ,
2258
+ vec ! [ ] ,
2246
2259
None ,
2247
2260
)
2248
2261
. unwrap ( ) ;
@@ -2287,6 +2300,7 @@ mod tests {
2287
2300
name : "interface-c" . parse ( ) . unwrap ( ) ,
2288
2301
description : String :: from ( "description" ) ,
2289
2302
} ,
2303
+ vec ! [ ] ,
2290
2304
None ,
2291
2305
)
2292
2306
. unwrap ( ) ;
@@ -2306,6 +2320,7 @@ mod tests {
2306
2320
name : "interface-c" . parse ( ) . unwrap ( ) ,
2307
2321
description : String :: from ( "description" ) ,
2308
2322
} ,
2323
+ vec ! [ ] ,
2309
2324
Some ( inserted_interface. ip . ip ( ) ) ,
2310
2325
)
2311
2326
. unwrap ( ) ;
@@ -2545,6 +2560,7 @@ mod tests {
2545
2560
name : "interface-c" . parse ( ) . unwrap ( ) ,
2546
2561
description : String :: from ( "description" ) ,
2547
2562
} ,
2563
+ vec ! [ ] ,
2548
2564
None ,
2549
2565
)
2550
2566
. unwrap ( ) ;
@@ -2564,6 +2580,7 @@ mod tests {
2564
2580
name : "interface-c" . parse ( ) . unwrap ( ) ,
2565
2581
description : String :: from ( "description" ) ,
2566
2582
} ,
2583
+ vec ! [ ] ,
2567
2584
None ,
2568
2585
)
2569
2586
. unwrap ( ) ;
@@ -2595,6 +2612,7 @@ mod tests {
2595
2612
name : "interface-c" . parse ( ) . unwrap ( ) ,
2596
2613
description : String :: from ( "description" ) ,
2597
2614
} ,
2615
+ vec ! [ ] ,
2598
2616
None ,
2599
2617
)
2600
2618
. unwrap ( ) ;
@@ -2611,6 +2629,7 @@ mod tests {
2611
2629
name : "interface-d" . parse ( ) . unwrap ( ) ,
2612
2630
description : String :: from ( "description" ) ,
2613
2631
} ,
2632
+ vec ! [ ] ,
2614
2633
None ,
2615
2634
)
2616
2635
. unwrap ( ) ;
@@ -2639,6 +2658,7 @@ mod tests {
2639
2658
name : "interface-c" . parse ( ) . unwrap ( ) ,
2640
2659
description : String :: from ( "description" ) ,
2641
2660
} ,
2661
+ vec ! [ ] ,
2642
2662
None ,
2643
2663
)
2644
2664
. unwrap ( ) ;
@@ -2681,6 +2701,7 @@ mod tests {
2681
2701
name : "interface-c" . parse ( ) . unwrap ( ) ,
2682
2702
description : String :: from ( "description" ) ,
2683
2703
} ,
2704
+ vec ! [ ] ,
2684
2705
None ,
2685
2706
)
2686
2707
. unwrap ( ) ;
@@ -2699,6 +2720,7 @@ mod tests {
2699
2720
name : "interface-a" . parse ( ) . unwrap ( ) ,
2700
2721
description : String :: from ( "description" ) ,
2701
2722
} ,
2723
+ vec ! [ ] ,
2702
2724
addr,
2703
2725
)
2704
2726
. unwrap ( ) ;
@@ -2735,6 +2757,7 @@ mod tests {
2735
2757
name : "interface-c" . parse ( ) . unwrap ( ) ,
2736
2758
description : String :: from ( "description" ) ,
2737
2759
} ,
2760
+ vec ! [ ] ,
2738
2761
None ,
2739
2762
)
2740
2763
. unwrap ( ) ;
@@ -2764,6 +2787,7 @@ mod tests {
2764
2787
name : "interface-d" . parse ( ) . unwrap ( ) ,
2765
2788
description : String :: from ( "description" ) ,
2766
2789
} ,
2790
+ vec ! [ ] ,
2767
2791
None ,
2768
2792
)
2769
2793
. unwrap ( ) ;
@@ -2797,6 +2821,7 @@ mod tests {
2797
2821
name : format ! ( "if{}" , i) . parse ( ) . unwrap ( ) ,
2798
2822
description : String :: from ( "description" ) ,
2799
2823
} ,
2824
+ vec ! [ ] ,
2800
2825
None ,
2801
2826
)
2802
2827
. unwrap ( ) ;
@@ -2865,6 +2890,7 @@ mod tests {
2865
2890
name : format ! ( "interface-{}" , slot) . parse ( ) . unwrap ( ) ,
2866
2891
description : String :: from ( "description" ) ,
2867
2892
} ,
2893
+ vec ! [ ] ,
2868
2894
None ,
2869
2895
)
2870
2896
. unwrap ( ) ;
@@ -2900,6 +2926,7 @@ mod tests {
2900
2926
name : "interface-8" . parse ( ) . unwrap ( ) ,
2901
2927
description : String :: from ( "description" ) ,
2902
2928
} ,
2929
+ vec ! [ ] ,
2903
2930
None ,
2904
2931
)
2905
2932
. unwrap ( ) ;
0 commit comments