knife-ec2 0.19.15 → 0.19.16

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 74a8b585b43db054a608b356a570a92b864916262f6cdcf3175b81feb5bd81ab
4
- data.tar.gz: 4a4692bb06e29c551d1393c54f9907315a4fb94d97e322dd7c9f032ca53b0b42
3
+ metadata.gz: eca2c2f560a3a801db6f64bad73bbf766e5884164a1bc56d23afebf29911417e
4
+ data.tar.gz: 34897bd6689958ff49c4627ec08ae819364ba0a578b8deef0c92cb7219606a05
5
5
  SHA512:
6
- metadata.gz: 31133e142838ddc0f88333d7d5f5cc17920eb01efe0eb12b5303918a85259de8513330142724d49465162f6c7e960a131529fae205c9c4dafa9bd6240a768272
7
- data.tar.gz: ccba1ef7b0c41beaf8612543cbdd504298dab9d3c7967d1c1c37f0969998c206b7307c96d3d51dfda5d15428b1ca4eeae317f79e1bc50676139975ce9941d462
6
+ metadata.gz: 71989dcdb4ac810b423ce75684563a685dd04fed81cca49630fe01cd36bc2cc697df3b81ac262f97263fbdfb909c97a95bcdc66be25b6729373476e2e6e3df4f
7
+ data.tar.gz: 10c20723124e241d81ed631cda7f7e9eb324acc428cb8c4bb3252c317a993ce6195d29ade245e1ff25145a817eb4d84ac3927dfffe2573305d76eb170c4e7955
@@ -1,6 +1,6 @@
1
1
  module Knife
2
2
  module Ec2
3
- VERSION = "0.19.15".freeze
3
+ VERSION = "0.19.16".freeze
4
4
  MAJOR, MINOR, TINY = VERSION.split(".")
5
5
  end
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knife-ec2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.19.15
4
+ version: 0.19.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Jacob
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-12-03 00:00:00.000000000 Z
12
+ date: 2018-12-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fog-aws
@@ -62,14 +62,6 @@ files:
62
62
  - lib/chef/knife/ec2_server_list.rb
63
63
  - lib/chef/knife/s3_source.rb
64
64
  - lib/knife-ec2/version.rb
65
- - spec/spec_helper.rb
66
- - spec/unit/ec2_ami_list_spec.rb
67
- - spec/unit/ec2_flavor_list_spec.rb
68
- - spec/unit/ec2_server_create_spec.rb
69
- - spec/unit/ec2_server_delete_spec.rb
70
- - spec/unit/ec2_server_list_spec.rb
71
- - spec/unit/s3_source_deps_spec.rb
72
- - spec/unit/s3_source_spec.rb
73
65
  homepage: https://github.com/chef/knife-ec2
74
66
  licenses:
75
67
  - Apache-2.0
@@ -94,12 +86,4 @@ rubygems_version: 2.7.6
94
86
  signing_key:
95
87
  specification_version: 4
96
88
  summary: Amazon EC2 Support for Chef's Knife Command
97
- test_files:
98
- - spec/spec_helper.rb
99
- - spec/unit/ec2_ami_list_spec.rb
100
- - spec/unit/ec2_flavor_list_spec.rb
101
- - spec/unit/ec2_server_create_spec.rb
102
- - spec/unit/ec2_server_delete_spec.rb
103
- - spec/unit/ec2_server_list_spec.rb
104
- - spec/unit/s3_source_deps_spec.rb
105
- - spec/unit/s3_source_spec.rb
89
+ test_files: []
@@ -1,19 +0,0 @@
1
- $:.unshift File.expand_path("../../lib", __FILE__)
2
- require "chef"
3
- require "chef/knife/winrm_base"
4
- require "chef/knife/ec2_server_create"
5
- require "chef/knife/ec2_server_delete"
6
- require "chef/knife/ec2_server_list"
7
- require "chef/knife/ec2_ami_list"
8
- require "chef/knife/ec2_flavor_list"
9
-
10
- # Clear config between each example
11
- # to avoid dependencies between examples
12
- RSpec.configure do |c|
13
- c.raise_errors_for_deprecations!
14
- c.filter_run_excluding exclude: true
15
- c.before(:each) do
16
- Chef::Config.reset
17
- Chef::Config[:knife] = {}
18
- end
19
- end
@@ -1,357 +0,0 @@
1
- # License:: Apache License, Version 2.0
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
- #
15
-
16
- require File.expand_path("../../spec_helper", __FILE__)
17
- require "fog/aws"
18
-
19
- describe Chef::Knife::Ec2AmiList do
20
-
21
- describe "#run" do
22
- let(:knife_ec2_ami_list) { Chef::Knife::Ec2AmiList.new }
23
- let(:ec2_connection) { double(Fog::Compute::AWS) }
24
- before (:each) do
25
- allow(knife_ec2_ami_list).to receive(:connection).and_return(ec2_connection)
26
- @describe_images_format = double("describe_image_output", body: {
27
- "imagesSet" => [{
28
- "architecture" => "x86_64",
29
- "blockDeviceMapping" => [{ "deviceName" => "/dev/sda1",
30
- "snapshotId" => "snap-f7e645f4",
31
- "volumeSize" => 30,
32
- "deleteOnTermination" => "true",
33
- "volumeType" => "standard",
34
- "encrypted" => "false" }],
35
- "description" => "window winrm",
36
- "hypervisor" => "xen",
37
- "imageId" => "ami-4ace6d23",
38
- "imageLocation" => "microsoft/Windows_Server-2008-R2-SP1-English-64Bit-WebMatrix_Hosting-2012.06.12",
39
- "imageOwnerAlias" => "microsoft",
40
- "name" => "Windows_Server-2008-R2-SP1-English-64Bit-Windows_Media_Services_4.1-2012.06.12",
41
- "imageOwnerId" => "461346954234",
42
- "imageState" => "available",
43
- "imageType" => "machine",
44
- "isPublic" => true,
45
- "platform" => "windows",
46
- "productCodes" => [],
47
- "rootDeviceName" => "/dev/sda1",
48
- "rootDeviceType" => "ebs",
49
- "stateReason" => {},
50
- "tagSet" => {},
51
- "virtualizationType" => "hvm",
52
- }, {
53
- "architecture" => "i386",
54
- "blockDeviceMapping" => [{ "deviceName" => "/dev/sda1",
55
- "snapshotId" => "snap-f7e645f4",
56
- "volumeSize" => 10,
57
- "deleteOnTermination" => "true",
58
- "volumeType" => "standard",
59
- "encrypted" => "false" }],
60
- "description" => "DC for Quan",
61
- "hypervisor" => "xen",
62
- "imageId" => "ami-4ace6d21",
63
- "imageOwnerAlias" => "aws-marketplace",
64
- "name" => "ubuntu i386",
65
- "imageOwnerId" => "461346954235",
66
- "imageState" => "available",
67
- "imageType" => "machine",
68
- "isPublic" => true,
69
- "productCodes" => [],
70
- "rootDeviceName" => "/dev/sda1",
71
- "rootDeviceType" => "ebs",
72
- "stateReason" => {},
73
- "tagSet" => {},
74
- "virtualizationType" => "hvm",
75
- }, {
76
- "architecture" => "x86_64",
77
- "blockDeviceMapping" => [{ "deviceName" => "/dev/sda1",
78
- "snapshotId" => "snap-f7e645f4",
79
- "volumeSize" => 8,
80
- "deleteOnTermination" => "true",
81
- "volumeType" => "standard",
82
- "encrypted" => "false" }],
83
- "description" => "ubuntu 14.04",
84
- "hypervisor" => "xen",
85
- "imageId" => "ami-4ace6d29",
86
- "imageOwnerAlias" => "aws-marketplace",
87
- "name" => "fedora i64",
88
- "imageOwnerId" => "461346954234",
89
- "imageState" => "available",
90
- "imageType" => "machine",
91
- "isPublic" => true,
92
- "productCodes" => [],
93
- "rootDeviceName" => "/dev/sda1",
94
- "rootDeviceType" => "ebs",
95
- "stateReason" => {},
96
- "tagSet" => {},
97
- "virtualizationType" => "hvm",
98
- }],
99
- "requestId" => "ba38c315-f1b4-4822-b336-6309bed6d50c",
100
- }
101
- )
102
- end
103
-
104
- it "invokes validate!" do
105
- allow(ec2_connection).to receive(:describe_images).and_return(@describe_images_format)
106
- allow(knife_ec2_ami_list.ui).to receive(:warn)
107
- expect(knife_ec2_ami_list).to receive(:validate!)
108
- knife_ec2_ami_list.run
109
- end
110
-
111
- context "when region is not specified" do
112
- it "shows warning that default region will be will be used" do
113
- knife_ec2_ami_list.config.delete(:region)
114
- Chef::Config[:knife].delete(:region)
115
- ec2_servers = double()
116
- allow(ec2_connection).to receive(:describe_images).and_return(@describe_images_format)
117
- allow(knife_ec2_ami_list).to receive(:validate!)
118
- expect(knife_ec2_ami_list.ui).to receive(:warn).with("No region was specified in knife.rb/config.rb or as an argument. The default region, us-east-1, will be used:")
119
- knife_ec2_ami_list.run
120
- end
121
- end
122
-
123
- context "when --owner is passed" do
124
- before do
125
- allow(knife_ec2_ami_list.ui).to receive(:warn)
126
- allow(knife_ec2_ami_list).to receive(:custom_warnings!)
127
- knife_ec2_ami_list.config[:use_iam_profile] = true
128
- end
129
-
130
- context "When value for owner is nil" do
131
- it "shows the available AMIs List" do
132
- knife_ec2_ami_list.config[:owner] = nil
133
- allow(ec2_connection).to receive(:describe_images).and_return(@describe_images_format)
134
- expect(knife_ec2_ami_list).to receive(:validate!)
135
- images = ec2_connection.describe_images.body["imagesSet"]
136
- output_column = ["AMI ID", "Platform", "Architecture", "Size", "Name", "Description"]
137
- output_column_count = output_column.length
138
- images.each do |image|
139
- output_column << image["imageId"].to_s
140
- output_column << (image["platform"] ? image["platform"] : image["name"].split(/\W+/).first)
141
- output_column << image["architecture"].to_s
142
- output_column << image["blockDeviceMapping"].first["volumeSize"].to_s
143
- output_column << image["name"].split(/\W+/).first
144
- output_column << image["description"]
145
- end
146
- expect(knife_ec2_ami_list.ui).to receive(:list).with(output_column, :uneven_columns_across, output_column_count)
147
- knife_ec2_ami_list.run
148
- end
149
- end
150
-
151
- context "When value for owner is self" do
152
- it "does not raise any error" do
153
- knife_ec2_ami_list.config[:owner] = "self"
154
- allow(ec2_connection).to receive(:describe_images).and_return(@describe_images_format)
155
- expect { knife_ec2_ami_list.validate! }.not_to raise_error
156
- end
157
- end
158
-
159
- context "When value for owner is microsoft" do
160
- it "does not raise any error" do
161
- knife_ec2_ami_list.config[:owner] = "microsoft"
162
- allow(ec2_connection).to receive(:describe_images).and_return(@describe_images_format)
163
- expect { knife_ec2_ami_list.validate! }.not_to raise_error
164
- end
165
- end
166
-
167
- context "When value for owner is aws-marketplace" do
168
- it "does not raise any error" do
169
- knife_ec2_ami_list.config[:owner] = "aws-marketplace"
170
- allow(ec2_connection).to receive(:describe_images).and_return(@describe_images_format)
171
- expect { knife_ec2_ami_list.validate! }.not_to raise_error
172
- end
173
- end
174
-
175
- context "When owner is invalid" do
176
- it "raises error" do
177
- knife_ec2_ami_list.config[:owner] = "xyz"
178
- knife_ec2_ami_list.config[:use_iam_profile] = true
179
- expect { knife_ec2_ami_list.validate! }.to raise_error "Invalid owner: #{knife_ec2_ami_list.config[:owner]}. Allowed owners are self, aws-marketplace or microsoft."
180
- end
181
- end
182
- end
183
-
184
- context "when --platform is passed" do
185
- before do
186
- allow(knife_ec2_ami_list.ui).to receive(:warn)
187
- allow(knife_ec2_ami_list).to receive(:custom_warnings!)
188
- end
189
-
190
- context "When platform is nil" do
191
- it "shows all the AMIs List" do
192
- knife_ec2_ami_list.config[:platform] = nil
193
- allow(ec2_connection).to receive(:describe_images).and_return(@describe_images_format)
194
- images = ec2_connection.describe_images.body["imagesSet"]
195
- expect(knife_ec2_ami_list).to receive(:validate!)
196
- output_column = ["AMI ID", "Platform", "Architecture", "Size", "Name", "Description"]
197
- output_column_count = output_column.length
198
- images.each do |image|
199
- output_column << image["imageId"].to_s
200
- output_column << (image["platform"] ? image["platform"] : image["name"].split(/\W+/).first)
201
- output_column << image["architecture"].to_s
202
- output_column << image["blockDeviceMapping"].first["volumeSize"].to_s
203
- output_column << image["name"].split(/\W+/).first
204
- output_column << image["description"]
205
- end
206
- expect(knife_ec2_ami_list.ui).to receive(:list).with(output_column, :uneven_columns_across, output_column_count)
207
- knife_ec2_ami_list.run
208
- end
209
- end
210
-
211
- context "When platform is windows" do
212
- it "shows only windows AMIs List" do
213
- knife_ec2_ami_list.config[:platform] = "windows"
214
- allow(ec2_connection).to receive(:describe_images).and_return(@describe_images_format)
215
- window_image = ec2_connection.describe_images.body["imagesSet"].first
216
- expect(knife_ec2_ami_list).to receive(:validate!)
217
- output_column = ["AMI ID", "Platform", "Architecture", "Size", "Name", "Description"]
218
- output_column_count = output_column.length
219
- output_column << window_image["imageId"]
220
- output_column << window_image["platform"]
221
- output_column << window_image["architecture"]
222
- output_column << window_image["blockDeviceMapping"].first["volumeSize"].to_s
223
- output_column << window_image["name"].split(/\W+/).first
224
- output_column << window_image["description"]
225
- expect(knife_ec2_ami_list.ui).to receive(:list).with(output_column, :uneven_columns_across, output_column_count)
226
- knife_ec2_ami_list.run
227
- end
228
- end
229
-
230
- context "When platform is ubuntu" do
231
- it "shows only ubuntu AMIs List" do
232
- knife_ec2_ami_list.config[:platform] = "ubuntu"
233
- allow(ec2_connection).to receive(:describe_images).and_return(@describe_images_format)
234
- ubuntu_image = ec2_connection.describe_images.body["imagesSet"][1]
235
- expect(knife_ec2_ami_list).to receive(:validate!)
236
- output_column = ["AMI ID", "Platform", "Architecture", "Size", "Name", "Description"]
237
- output_column_count = output_column.length
238
- output_column << ubuntu_image["imageId"]
239
- output_column << ubuntu_image["name"].split(/\W+/).first
240
- output_column << ubuntu_image["architecture"]
241
- output_column << ubuntu_image["blockDeviceMapping"].first["volumeSize"].to_s
242
- output_column << ubuntu_image["name"].split(/\W+/).first
243
- output_column << ubuntu_image["description"]
244
- expect(knife_ec2_ami_list.ui).to receive(:list).with(output_column, :uneven_columns_across, output_column_count)
245
- knife_ec2_ami_list.run
246
- end
247
- end
248
-
249
- context "When platform is fedora" do
250
- it "shows only fedora AMIs List" do
251
- knife_ec2_ami_list.config[:platform] = "fedora"
252
- allow(ec2_connection).to receive(:describe_images).and_return(@describe_images_format)
253
- expect(knife_ec2_ami_list).to receive(:validate!)
254
- fedora_image = ec2_connection.describe_images.body["imagesSet"].last
255
- output_column = ["AMI ID", "Platform", "Architecture", "Size", "Name", "Description"]
256
- output_column_count = output_column.length
257
- output_column << fedora_image["imageId"]
258
- output_column << fedora_image["name"].split(/\W+/).first
259
- output_column << fedora_image["architecture"]
260
- output_column << fedora_image["blockDeviceMapping"].first["volumeSize"].to_s
261
- output_column << fedora_image["name"].split(/\W+/).first
262
- output_column << fedora_image["description"]
263
- expect(knife_ec2_ami_list.ui).to receive(:list).with(output_column, :uneven_columns_across, output_column_count)
264
- knife_ec2_ami_list.run
265
- end
266
- end
267
-
268
- context "When platform is invalid" do
269
- it "raises error" do
270
- knife_ec2_ami_list.config[:platform] = "xyz"
271
- knife_ec2_ami_list.config[:use_iam_profile] = true
272
- knife_ec2_ami_list.config[:owner] = true
273
- expect { knife_ec2_ami_list.validate! }.to raise_error "Invalid platform: #{knife_ec2_ami_list.config[:platform]}. Allowed platforms are: windows, ubuntu, debian, centos, fedora, rhel, nginx, turnkey, jumpbox, coreos, cisco, amazon, nessus."
274
- end
275
- end
276
- end
277
-
278
- context "when --search is passed" do
279
- before do
280
- allow(knife_ec2_ami_list.ui).to receive(:warn)
281
- allow(knife_ec2_ami_list).to receive(:custom_warnings!)
282
- end
283
-
284
- context "When search key word is present in description" do
285
- it "shows only AMIs List that have 14.04 in description" do
286
- knife_ec2_ami_list.config[:search] = "14.04"
287
- allow(ec2_connection).to receive(:describe_images).and_return(@describe_images_format)
288
- image = ec2_connection.describe_images.body["imagesSet"][2]
289
- expect(knife_ec2_ami_list).to receive(:validate!)
290
- output_column = ["AMI ID", "Platform", "Architecture", "Size", "Name", "Description"]
291
- output_column_count = output_column.length
292
- output_column << image["imageId"]
293
- output_column << image["name"].split(/\W+/).first
294
- output_column << image["architecture"]
295
- output_column << image["blockDeviceMapping"].first["volumeSize"].to_s
296
- output_column << image["name"].split(/\W+/).first
297
- output_column << image["description"]
298
- expect(knife_ec2_ami_list.ui).to receive(:list).with(output_column, :uneven_columns_across, output_column_count)
299
- knife_ec2_ami_list.run
300
- end
301
- end
302
-
303
- context "When user pass platform and search keyword" do
304
- it "shows only AMIs List that have 14.04 in description and platform is ubuntu" do
305
- knife_ec2_ami_list.config[:platform] = "ubuntu"
306
- knife_ec2_ami_list.config[:search] = "Quan"
307
- allow(ec2_connection).to receive(:describe_images).and_return(@describe_images_format)
308
- ubuntu_image = ec2_connection.describe_images.body["imagesSet"][1]
309
- expect(knife_ec2_ami_list).to receive(:validate!)
310
- output_column = ["AMI ID", "Platform", "Architecture", "Size", "Name", "Description"]
311
- output_column_count = output_column.length
312
- output_column << ubuntu_image["imageId"]
313
- output_column << ubuntu_image["name"].split(/\W+/).first
314
- output_column << ubuntu_image["architecture"]
315
- output_column << ubuntu_image["blockDeviceMapping"].first["volumeSize"].to_s
316
- output_column << ubuntu_image["name"].split(/\W+/).first
317
- output_column << ubuntu_image["description"]
318
- expect(knife_ec2_ami_list.ui).to receive(:list).with(output_column, :uneven_columns_across, output_column_count)
319
- knife_ec2_ami_list.run
320
- end
321
- end
322
-
323
- context "When user pass owner, platform and search keyword" do
324
- it "shows only AMIs List that owner microsoft platform windows and search keyword is winrm" do
325
- knife_ec2_ami_list.config[:owner] = "microsoft"
326
- knife_ec2_ami_list.config[:platform] = "windows"
327
- knife_ec2_ami_list.config[:search] = "winrm"
328
- allow(ec2_connection).to receive(:describe_images).and_return(@describe_images_format)
329
- ubuntu_image = ec2_connection.describe_images.body["imagesSet"].first
330
- expect(knife_ec2_ami_list).to receive(:validate!)
331
- output_column = ["AMI ID", "Platform", "Architecture", "Size", "Name", "Description"]
332
- output_column_count = output_column.length
333
- output_column << ubuntu_image["imageId"]
334
- output_column << ubuntu_image["platform"]
335
- output_column << ubuntu_image["architecture"]
336
- output_column << ubuntu_image["blockDeviceMapping"].first["volumeSize"].to_s
337
- output_column << ubuntu_image["name"].split(/\W+/).first
338
- output_column << ubuntu_image["description"]
339
- expect(knife_ec2_ami_list.ui).to receive(:list).with(output_column, :uneven_columns_across, output_column_count)
340
- knife_ec2_ami_list.run
341
- end
342
- end
343
-
344
- context "When search key word is not present in description" do
345
- it "Fetch no AMI" do
346
- knife_ec2_ami_list.config[:search] = "Not present"
347
- allow(ec2_connection).to receive(:describe_images).and_return(@describe_images_format)
348
- expect(knife_ec2_ami_list).to receive(:validate!)
349
- output_column = ["AMI ID", "Platform", "Architecture", "Size", "Name", "Description"]
350
- output_column_count = output_column.length
351
- expect(knife_ec2_ami_list.ui).to receive(:list).with(output_column, :uneven_columns_across, output_column_count)
352
- knife_ec2_ami_list.run
353
- end
354
- end
355
- end
356
- end
357
- end
@@ -1,84 +0,0 @@
1
- # License:: Apache License, Version 2.0
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
- #
15
-
16
- require File.expand_path("../../spec_helper", __FILE__)
17
- require "fog/aws"
18
-
19
- describe Chef::Knife::Ec2FlavorList do
20
-
21
- describe "#run" do
22
- let(:knife_flavor_list) { Chef::Knife::Ec2FlavorList.new }
23
- let(:ec2_connection) { double(Fog::Compute::AWS) }
24
- before do
25
- allow(knife_flavor_list).to receive(:connection).and_return(ec2_connection)
26
- @flavor1 = double("flavor1", name: "High-CPU Medium", architecture: "32", id: "c1.medium", bits: "32", cores: "5", ram: "1740.8", disk: "350", ebs_optimized_available: "false", instance_store_volumes: "0")
27
-
28
- allow(ec2_connection).to receive(:flavors).and_return([@flavor1])
29
-
30
- end
31
-
32
- it "invokes validate!" do
33
- ec2_flavors = double(sort_by: [])
34
-
35
- allow(ec2_connection).to receive(:flavors).and_return(ec2_flavors)
36
- allow(knife_flavor_list.ui).to receive(:warn)
37
- expect(knife_flavor_list).to receive(:validate!)
38
- knife_flavor_list.run
39
- end
40
-
41
- context "when region is not specified" do
42
- it "shows warning that default region will be will be used" do
43
- knife_flavor_list.config.delete(:region)
44
- Chef::Config[:knife].delete(:region)
45
- ec2_flavors = double(sort_by: [])
46
- allow(ec2_connection).to receive(:flavors).and_return(ec2_flavors)
47
- allow(knife_flavor_list).to receive(:validate!)
48
- expect(knife_flavor_list.ui).to receive(:warn).with("No region was specified in knife.rb/config.rb or as an argument. The default region, us-east-1, will be used:")
49
- knife_flavor_list.run
50
- end
51
- end
52
-
53
- context "--format option" do
54
- context "when format=summary" do
55
- before do
56
- @output_s = ["ID", "Name", "Architecture", "RAM", "Disk", "Cores", "c1.medium", "High-CPU Medium", "32-bit", "1740.8", "350 GB", "5"]
57
- knife_flavor_list.config[:format] = "summary"
58
- allow(knife_flavor_list.ui).to receive(:warn)
59
- allow(knife_flavor_list).to receive(:validate!)
60
- end
61
-
62
- it "shows the output in summary format" do
63
- expect(knife_flavor_list.ui).to receive(:list).with(@output_s, :uneven_columns_across, 6)
64
- knife_flavor_list.run
65
- end
66
- end
67
-
68
- context "when format=json" do
69
- before do
70
- knife_flavor_list.config[:format] = "json"
71
- allow(knife_flavor_list.ui).to receive(:warn)
72
- end
73
-
74
- it "shows the output in json format" do
75
- allow(ec2_connection).to receive(:flavors).and_return([])
76
- allow(knife_flavor_list).to receive(:validate!)
77
- allow(knife_flavor_list).to receive(:format_for_display)
78
- expect(knife_flavor_list).to receive(:output)
79
- knife_flavor_list.run
80
- end
81
- end
82
- end
83
- end
84
- end