@@ -88,9 +88,15 @@ func Test_defaultSecurityGroupResolver_ResolveViaNameOrID(t *testing.T) {
8888 resp : []* ec2sdk.SecurityGroup {
8989 {
9090 GroupId : awssdk .String ("sg-0912f63b" ),
91+ Tags : []* ec2sdk.Tag {
92+ {Key : awssdk .String ("Name" ), Value : awssdk .String ("sg group one" )},
93+ },
9194 },
9295 {
9396 GroupId : awssdk .String ("sg-08982de7" ),
97+ Tags : []* ec2sdk.Tag {
98+ {Key : awssdk .String ("Name" ), Value : awssdk .String ("sg group two" )},
99+ },
94100 },
95101 },
96102 },
@@ -101,6 +107,50 @@ func Test_defaultSecurityGroupResolver_ResolveViaNameOrID(t *testing.T) {
101107 "sg-0912f63b" ,
102108 },
103109 },
110+ {
111+ name : "single name multiple ids" ,
112+ args : args {
113+ nameOrIDs : []string {
114+ "sg group one" ,
115+ },
116+ describeSGCalls : []describeSecurityGroupsAsListCall {
117+ {
118+ req : & ec2sdk.DescribeSecurityGroupsInput {
119+ Filters : []* ec2sdk.Filter {
120+ {
121+ Name : awssdk .String ("tag:Name" ),
122+ Values : awssdk .StringSlice ([]string {
123+ "sg group one" ,
124+ }),
125+ },
126+ {
127+ Name : awssdk .String ("vpc-id" ),
128+ Values : awssdk .StringSlice ([]string {defaultVPCID }),
129+ },
130+ },
131+ },
132+ resp : []* ec2sdk.SecurityGroup {
133+ {
134+ GroupId : awssdk .String ("sg-id1" ),
135+ Tags : []* ec2sdk.Tag {
136+ {Key : awssdk .String ("Name" ), Value : awssdk .String ("sg group one" )},
137+ },
138+ },
139+ {
140+ GroupId : awssdk .String ("sg-id2" ),
141+ Tags : []* ec2sdk.Tag {
142+ {Key : awssdk .String ("Name" ), Value : awssdk .String ("sg group one" )},
143+ },
144+ },
145+ },
146+ },
147+ },
148+ },
149+ want : []string {
150+ "sg-id1" ,
151+ "sg-id2" ,
152+ },
153+ },
104154 {
105155 name : "mixed group name and id" ,
106156 args : args {
@@ -127,6 +177,9 @@ func Test_defaultSecurityGroupResolver_ResolveViaNameOrID(t *testing.T) {
127177 resp : []* ec2sdk.SecurityGroup {
128178 {
129179 GroupId : awssdk .String ("sg-0912f63b" ),
180+ Tags : []* ec2sdk.Tag {
181+ {Key : awssdk .String ("Name" ), Value : awssdk .String ("sg group one" )},
182+ },
130183 },
131184 },
132185 },
@@ -151,7 +204,6 @@ func Test_defaultSecurityGroupResolver_ResolveViaNameOrID(t *testing.T) {
151204 name : "describe by id returns error" ,
152205 args : args {
153206 nameOrIDs : []string {
154- "sg group name" ,
155207 "sg-id" ,
156208 },
157209 describeSGCalls : []describeSecurityGroupsAsListCall {
@@ -163,24 +215,21 @@ func Test_defaultSecurityGroupResolver_ResolveViaNameOrID(t *testing.T) {
163215 },
164216 },
165217 },
166- wantErr : errors .New ("Describe.Error: unable to describe security groups" ),
218+ wantErr : errors .New ("couldn't find all security groups: Describe.Error: unable to describe security groups" ),
167219 },
168220 {
169221 name : "describe by name returns error" ,
170222 args : args {
171223 nameOrIDs : []string {
172224 "sg group name" ,
173- "sg-id" ,
174225 },
175226 describeSGCalls : []describeSecurityGroupsAsListCall {
176227 {
177228 req : & ec2sdk.DescribeSecurityGroupsInput {
178229 Filters : []* ec2sdk.Filter {
179230 {
180- Name : awssdk .String ("tag:Name" ),
181- Values : awssdk .StringSlice ([]string {
182- "sg group name" ,
183- }),
231+ Name : awssdk .String ("tag:Name" ),
232+ Values : awssdk .StringSlice ([]string {"sg group name" }),
184233 },
185234 {
186235 Name : awssdk .String ("vpc-id" ),
@@ -190,27 +239,38 @@ func Test_defaultSecurityGroupResolver_ResolveViaNameOrID(t *testing.T) {
190239 },
191240 err : awserr .New ("Describe.Error" , "unable to describe security groups" , nil ),
192241 },
242+ },
243+ },
244+ wantErr : errors .New ("couldn't find all security groups: Describe.Error: unable to describe security groups" ),
245+ },
246+ {
247+ name : "unable to resolve security groups by id" ,
248+ args : args {
249+ nameOrIDs : []string {
250+ "sg-id1" ,
251+ "sg-id404" ,
252+ },
253+ describeSGCalls : []describeSecurityGroupsAsListCall {
193254 {
194255 req : & ec2sdk.DescribeSecurityGroupsInput {
195- GroupIds : awssdk .StringSlice ([]string {"sg-id " }),
256+ GroupIds : awssdk .StringSlice ([]string {"sg-id1" , "sg-id404 " }),
196257 },
197258 resp : []* ec2sdk.SecurityGroup {
198259 {
199- GroupId : awssdk .String ("sg-id " ),
260+ GroupId : awssdk .String ("sg-id1 " ),
200261 },
201262 },
202263 },
203264 },
204265 },
205- wantErr : errors .New ("Describe.Error: unable to describe security groups" ),
266+ wantErr : errors .New ("couldn't find all security groups: requested ids [sg-id1, sg-id404] but found [sg-id1] " ),
206267 },
207268 {
208- name : "unable to resolve all security groups" ,
269+ name : "unable to resolve security groups by name " ,
209270 args : args {
210271 nameOrIDs : []string {
211272 "sg group one" ,
212- "sg-id1" ,
213- "sg-id404" ,
273+ "sg group two" ,
214274 },
215275 describeSGCalls : []describeSecurityGroupsAsListCall {
216276 {
@@ -220,6 +280,7 @@ func Test_defaultSecurityGroupResolver_ResolveViaNameOrID(t *testing.T) {
220280 Name : awssdk .String ("tag:Name" ),
221281 Values : awssdk .StringSlice ([]string {
222282 "sg group one" ,
283+ "sg group two" ,
223284 }),
224285 },
225286 {
@@ -231,22 +292,48 @@ func Test_defaultSecurityGroupResolver_ResolveViaNameOrID(t *testing.T) {
231292 resp : []* ec2sdk.SecurityGroup {
232293 {
233294 GroupId : awssdk .String ("sg-0912f63b" ),
295+ Tags : []* ec2sdk.Tag {
296+ {Key : awssdk .String ("Name" ), Value : awssdk .String ("sg group one" )},
297+ },
234298 },
235299 },
236300 },
301+ },
302+ },
303+ wantErr : errors .New ("couldn't find all security groups: requested names [sg group one, sg group two] but found [sg group one]" ),
304+ },
305+ {
306+ name : "unable to resolve all security groups by ids and names" ,
307+ args : args {
308+ nameOrIDs : []string {
309+ "sg-08982de7" ,
310+ "sg group one" ,
311+ },
312+ describeSGCalls : []describeSecurityGroupsAsListCall {
237313 {
238314 req : & ec2sdk.DescribeSecurityGroupsInput {
239- GroupIds : awssdk .StringSlice ([]string {"sg-id1" , "sg-id404 " }),
315+ GroupIds : awssdk .StringSlice ([]string {"sg-08982de7 " }),
240316 },
241- resp : []* ec2sdk.SecurityGroup {
242- {
243- GroupId : awssdk .String ("sg-id1" ),
317+ resp : []* ec2sdk.SecurityGroup {},
318+ },
319+ {
320+ req : & ec2sdk.DescribeSecurityGroupsInput {
321+ Filters : []* ec2sdk.Filter {
322+ {
323+ Name : awssdk .String ("tag:Name" ),
324+ Values : awssdk .StringSlice ([]string {"sg group one" }),
325+ },
326+ {
327+ Name : awssdk .String ("vpc-id" ),
328+ Values : awssdk .StringSlice ([]string {defaultVPCID }),
329+ },
244330 },
245331 },
332+ resp : []* ec2sdk.SecurityGroup {},
246333 },
247334 },
248335 },
249- wantErr : errors .New ("couldn't find all securityGroups, nameOrIDs: [sg group one sg-id1 sg-id404 ], found: [sg-id1 sg-0912f63b ]" ),
336+ wantErr : errors .New ("couldn't find all security groups: requested ids [ sg-08982de7] but found [ ], requested names [sg group one] but found [ ]" ),
250337 },
251338 }
252339
0 commit comments