@@ -2246,13 +2246,25 @@ func Test_defaultSubnetsResolver_ResolveViaNameOrIDSlice(t *testing.T) {
22462246 AvailabilityZoneId : awssdk .String ("usw2-az1" ),
22472247 AvailableIpAddressCount : awssdk .Int32 (8 ),
22482248 VpcId : awssdk .String ("vpc-dummy" ),
2249+ Tags : []ec2types.Tag {
2250+ {
2251+ Key : awssdk .String ("Name" ),
2252+ Value : awssdk .String ("name-1" ),
2253+ },
2254+ },
22492255 },
22502256 {
22512257 SubnetId : awssdk .String ("subnet-2" ),
22522258 AvailabilityZone : awssdk .String ("us-west-2b" ),
22532259 AvailabilityZoneId : awssdk .String ("usw2-az2" ),
22542260 AvailableIpAddressCount : awssdk .Int32 (8 ),
22552261 VpcId : awssdk .String ("vpc-dummy" ),
2262+ Tags : []ec2types.Tag {
2263+ {
2264+ Key : awssdk .String ("Name" ),
2265+ Value : awssdk .String ("name-2" ),
2266+ },
2267+ },
22562268 },
22572269 },
22582270 },
@@ -2292,13 +2304,25 @@ func Test_defaultSubnetsResolver_ResolveViaNameOrIDSlice(t *testing.T) {
22922304 AvailabilityZoneId : awssdk .String ("usw2-az1" ),
22932305 AvailableIpAddressCount : awssdk .Int32 (8 ),
22942306 VpcId : awssdk .String ("vpc-dummy" ),
2307+ Tags : []ec2types.Tag {
2308+ {
2309+ Key : awssdk .String ("Name" ),
2310+ Value : awssdk .String ("name-1" ),
2311+ },
2312+ },
22952313 },
22962314 {
22972315 SubnetId : awssdk .String ("subnet-2" ),
22982316 AvailabilityZone : awssdk .String ("us-west-2b" ),
22992317 AvailabilityZoneId : awssdk .String ("usw2-az2" ),
23002318 AvailableIpAddressCount : awssdk .Int32 (8 ),
23012319 VpcId : awssdk .String ("vpc-dummy" ),
2320+ Tags : []ec2types.Tag {
2321+ {
2322+ Key : awssdk .String ("Name" ),
2323+ Value : awssdk .String ("name-2" ),
2324+ },
2325+ },
23022326 },
23032327 },
23042328 },
@@ -2343,6 +2367,12 @@ func Test_defaultSubnetsResolver_ResolveViaNameOrIDSlice(t *testing.T) {
23432367 AvailabilityZoneId : awssdk .String ("usw2-az2" ),
23442368 AvailableIpAddressCount : awssdk .Int32 (8 ),
23452369 VpcId : awssdk .String ("vpc-dummy" ),
2370+ Tags : []ec2types.Tag {
2371+ {
2372+ Key : awssdk .String ("Name" ),
2373+ Value : awssdk .String ("name-2" ),
2374+ },
2375+ },
23462376 },
23472377 },
23482378 },
@@ -2376,6 +2406,111 @@ func Test_defaultSubnetsResolver_ResolveViaNameOrIDSlice(t *testing.T) {
23762406 },
23772407 },
23782408 want : []ec2types.Subnet {
2409+ {
2410+ SubnetId : awssdk .String ("subnet-1" ),
2411+ AvailabilityZone : awssdk .String ("us-west-2a" ),
2412+ AvailabilityZoneId : awssdk .String ("usw2-az1" ),
2413+ AvailableIpAddressCount : awssdk .Int32 (8 ),
2414+ VpcId : awssdk .String ("vpc-dummy" ),
2415+ },
2416+ {
2417+ SubnetId : awssdk .String ("subnet-2" ),
2418+ AvailabilityZone : awssdk .String ("us-west-2b" ),
2419+ AvailabilityZoneId : awssdk .String ("usw2-az2" ),
2420+ AvailableIpAddressCount : awssdk .Int32 (8 ),
2421+ VpcId : awssdk .String ("vpc-dummy" ),
2422+ Tags : []ec2types.Tag {
2423+ {
2424+ Key : awssdk .String ("Name" ),
2425+ Value : awssdk .String ("name-2" ),
2426+ },
2427+ },
2428+ },
2429+ },
2430+ },
2431+ {
2432+ name : "order is preserved when AWS returns subnets in different order" ,
2433+ fields : fields {
2434+ clusterTagCheckEnabled : true ,
2435+ albSingleSubnetEnabled : false ,
2436+ discoveryByReachabilityEnabled : true ,
2437+ describeSubnetsAsListCalls : []describeSubnetsAsListCall {
2438+ {
2439+ input : & ec2sdk.DescribeSubnetsInput {
2440+ SubnetIds : []string {"subnet-3" , "subnet-1" , "subnet-2" },
2441+ },
2442+ // AWS returns in different order than requested
2443+ output : []ec2types.Subnet {
2444+ {
2445+ SubnetId : awssdk .String ("subnet-1" ),
2446+ AvailabilityZone : awssdk .String ("us-west-2a" ),
2447+ AvailabilityZoneId : awssdk .String ("usw2-az1" ),
2448+ AvailableIpAddressCount : awssdk .Int32 (8 ),
2449+ VpcId : awssdk .String ("vpc-dummy" ),
2450+ },
2451+ {
2452+ SubnetId : awssdk .String ("subnet-2" ),
2453+ AvailabilityZone : awssdk .String ("us-west-2b" ),
2454+ AvailabilityZoneId : awssdk .String ("usw2-az2" ),
2455+ AvailableIpAddressCount : awssdk .Int32 (8 ),
2456+ VpcId : awssdk .String ("vpc-dummy" ),
2457+ },
2458+ {
2459+ SubnetId : awssdk .String ("subnet-3" ),
2460+ AvailabilityZone : awssdk .String ("us-west-2c" ),
2461+ AvailabilityZoneId : awssdk .String ("usw2-az3" ),
2462+ AvailableIpAddressCount : awssdk .Int32 (8 ),
2463+ VpcId : awssdk .String ("vpc-dummy" ),
2464+ },
2465+ },
2466+ },
2467+ },
2468+ fetchAZInfosCalls : []fetchAZInfosCall {
2469+ {
2470+ availabilityZoneIDs : []string {"usw2-az3" },
2471+ azInfoByAZID : map [string ]ec2types.AvailabilityZone {
2472+ "usw2-az3" : {
2473+ ZoneId : awssdk .String ("usw2-az3" ),
2474+ ZoneType : awssdk .String ("availability-zone" ),
2475+ },
2476+ },
2477+ },
2478+ {
2479+ availabilityZoneIDs : []string {"usw2-az1" },
2480+ azInfoByAZID : map [string ]ec2types.AvailabilityZone {
2481+ "usw2-az1" : {
2482+ ZoneId : awssdk .String ("usw2-az1" ),
2483+ ZoneType : awssdk .String ("availability-zone" ),
2484+ },
2485+ },
2486+ },
2487+ {
2488+ availabilityZoneIDs : []string {"usw2-az2" },
2489+ azInfoByAZID : map [string ]ec2types.AvailabilityZone {
2490+ "usw2-az2" : {
2491+ ZoneId : awssdk .String ("usw2-az2" ),
2492+ ZoneType : awssdk .String ("availability-zone" ),
2493+ },
2494+ },
2495+ },
2496+ },
2497+ },
2498+ args : args {
2499+ nameOrIDs : []string {"subnet-3" , "subnet-1" , "subnet-2" },
2500+ opts : []SubnetsResolveOption {
2501+ WithSubnetsResolveLBType (elbv2model .LoadBalancerTypeApplication ),
2502+ WithSubnetsResolveLBScheme (elbv2model .LoadBalancerSchemeInternetFacing ),
2503+ },
2504+ },
2505+ // Expected result must be in the requested order, not AWS's order
2506+ want : []ec2types.Subnet {
2507+ {
2508+ SubnetId : awssdk .String ("subnet-3" ),
2509+ AvailabilityZone : awssdk .String ("us-west-2c" ),
2510+ AvailabilityZoneId : awssdk .String ("usw2-az3" ),
2511+ AvailableIpAddressCount : awssdk .Int32 (8 ),
2512+ VpcId : awssdk .String ("vpc-dummy" ),
2513+ },
23792514 {
23802515 SubnetId : awssdk .String ("subnet-1" ),
23812516 AvailabilityZone : awssdk .String ("us-west-2a" ),
0 commit comments