knife-google 2.2.0 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +4 -3
- data/CHANGELOG.md +5 -1
- data/lib/chef/knife/cloud/google_service.rb +4 -0
- data/lib/chef/knife/google_region_list.rb +1 -1
- data/lib/knife-google/version.rb +1 -1
- data/spec/cloud/google_service_helpers_spec.rb +5 -5
- data/spec/cloud/google_service_spec.rb +47 -47
- data/spec/google_disk_create_spec.rb +2 -2
- data/spec/google_disk_delete_spec.rb +2 -2
- data/spec/google_disk_list_spec.rb +6 -6
- data/spec/google_project_quotas_spec.rb +4 -4
- data/spec/google_region_list_spec.rb +4 -4
- data/spec/google_region_quotas_spec.rb +4 -4
- data/spec/google_server_create_spec.rb +13 -13
- data/spec/google_server_delete_spec.rb +1 -1
- data/spec/google_server_list_spec.rb +2 -2
- data/spec/google_server_show_spec.rb +1 -1
- data/spec/google_zone_list_spec.rb +3 -3
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7c8c3ce126c26763999d4c405ab503bfd00a296a
|
4
|
+
data.tar.gz: a6cd46a5d89830b1e94f649e4c8c9d43945970d1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b55e55cbecd39e3a11ef3fc5a15afb3be6162f2e0580b617c029487fb74205bd938cba99b89542fef9c5943e9fc5cc39ed78a8c57c12bb4c507aa740d27b1b72
|
7
|
+
data.tar.gz: f2eb3103f4480d9781e4fd8b5eb56026bfeda281a1d7bd468501df68b938073e0449bb23337ce8d2b190ea196f894522141a5b0e0aa1134cccf2b53c5da03e7b
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,11 @@
|
|
1
1
|
# knife-google Change Log
|
2
2
|
|
3
|
-
## v2.2.0 (2016-03-17)
|
4
3
|
|
4
|
+
## v2.2.1 (2016-09-27)
|
5
|
+
* [pr#112](https://github.com/chef/knife-google/pull/112) Fixed the zone and region listing
|
6
|
+
* [pr#109](https://github.com/chef/knife-google/pull/109) Add aliases to match image families and add Ubuntu 16.04
|
7
|
+
|
8
|
+
## v2.2.0 (2016-03-17)
|
5
9
|
* [pr#102](https://github.com/chef/knife-google/pull/102) Added support for preemptible instances
|
6
10
|
* [pr#103](https://github.com/chef/knife-google/pull/103) Added support for deploying instances on subnetworks
|
7
11
|
* [pr#103](https://github.com/chef/knife-google/pull/104) Added gcloud-style image aliases (i.e. image "centos-7" will get you the latest CentOS 7 disk image)
|
@@ -66,9 +66,13 @@ class Chef::Knife::Cloud
|
|
66
66
|
"sles-11" => { project: "suse-cloud", prefix: "sles-11" },
|
67
67
|
"sles-12" => { project: "suse-cloud", prefix: "sles-12" },
|
68
68
|
"ubuntu-12-04" => { project: "ubuntu-os-cloud", prefix: "ubuntu-1204-precise" },
|
69
|
+
"ubuntu-1204-lts" => { project: "ubuntu-os-cloud", prefix: "ubuntu-1204-precise" },
|
69
70
|
"ubuntu-14-04" => { project: "ubuntu-os-cloud", prefix: "ubuntu-1404-trusty" },
|
71
|
+
"ubuntu-1404-lts" => { project: "ubuntu-os-cloud", prefix: "ubuntu-1404-trusty" },
|
70
72
|
"ubuntu-15-04" => { project: "ubuntu-os-cloud", prefix: "ubuntu-1504-vivid" },
|
71
73
|
"ubuntu-15-10" => { project: "ubuntu-os-cloud", prefix: "ubuntu-1510-wily" },
|
74
|
+
"ubuntu-16-04" => { project: "ubuntu-os-cloud", prefix: "ubuntu-1604-xenial" },
|
75
|
+
"ubuntu-1604-lts" => { project: "ubuntu-os-cloud", prefix: "ubuntu-1604-xenial" },
|
72
76
|
"windows-2008-r2" => { project: "windows-cloud", prefix: "windows-server-2008-r2" },
|
73
77
|
"windows-2012-r2" => { project: "windows-cloud", prefix: "windows-server-2012-r2" },
|
74
78
|
}
|
data/lib/knife-google/version.rb
CHANGED
@@ -26,7 +26,7 @@ end
|
|
26
26
|
describe Chef::Knife::Cloud::GoogleServiceHelpers do
|
27
27
|
let(:tester) { Tester.new }
|
28
28
|
|
29
|
-
describe
|
29
|
+
describe "#create_service_instance" do
|
30
30
|
it "creates a GoogleService instance" do
|
31
31
|
expect(tester).to receive(:locate_config_value).with(:gce_project).and_return("test_project")
|
32
32
|
expect(tester).to receive(:locate_config_value).with(:gce_zone).and_return("test_zone")
|
@@ -48,7 +48,7 @@ describe Chef::Knife::Cloud::GoogleServiceHelpers do
|
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
51
|
-
describe
|
51
|
+
describe "#check_for_missing_config_values" do
|
52
52
|
it "does not raise an exception if all parameters are present" do
|
53
53
|
expect(tester).to receive(:locate_config_value).with(:gce_project).and_return("project")
|
54
54
|
expect(tester).to receive(:locate_config_value).with(:gce_zone).and_return("zone")
|
@@ -70,7 +70,7 @@ describe Chef::Knife::Cloud::GoogleServiceHelpers do
|
|
70
70
|
end
|
71
71
|
end
|
72
72
|
|
73
|
-
describe
|
73
|
+
describe "#private_ip_for" do
|
74
74
|
it "returns the IP address if it exists" do
|
75
75
|
network_interface = double("network_interface", network_ip: "1.2.3.4")
|
76
76
|
server = double("server", network_interfaces: [network_interface])
|
@@ -86,7 +86,7 @@ describe Chef::Knife::Cloud::GoogleServiceHelpers do
|
|
86
86
|
end
|
87
87
|
end
|
88
88
|
|
89
|
-
describe
|
89
|
+
describe "#public_ip_for" do
|
90
90
|
it "returns the IP address if it exists" do
|
91
91
|
access_config = double("access_config", nat_ip: "4.3.2.1")
|
92
92
|
network_interface = double("network_interface", access_configs: [access_config])
|
@@ -104,7 +104,7 @@ describe Chef::Knife::Cloud::GoogleServiceHelpers do
|
|
104
104
|
end
|
105
105
|
end
|
106
106
|
|
107
|
-
describe
|
107
|
+
describe "#valid_disk_size?" do
|
108
108
|
it "returns true if the disk is between 10 and 10,000" do
|
109
109
|
expect(tester.valid_disk_size?(50)).to eq(true)
|
110
110
|
end
|
@@ -65,7 +65,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
65
65
|
allow(service).to receive(:connection).and_return(connection)
|
66
66
|
end
|
67
67
|
|
68
|
-
describe
|
68
|
+
describe "#connection" do
|
69
69
|
it "returns a properly configured ComputeService" do
|
70
70
|
compute_service = double("compute_service")
|
71
71
|
client_options = double("client_options")
|
@@ -85,7 +85,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
85
85
|
end
|
86
86
|
end
|
87
87
|
|
88
|
-
describe
|
88
|
+
describe "#authorization" do
|
89
89
|
it "returns a Google::Auth authorization object" do
|
90
90
|
auth_object = double("auth_object")
|
91
91
|
expect(Google::Auth).to receive(:get_application_default).and_return(auth_object)
|
@@ -93,7 +93,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
93
93
|
end
|
94
94
|
end
|
95
95
|
|
96
|
-
describe
|
96
|
+
describe "#create_server" do
|
97
97
|
it "creates and returns the created instance" do
|
98
98
|
create_instance_obj = double("instance_obj")
|
99
99
|
create_options = { name: "test_instance" }
|
@@ -110,7 +110,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
110
110
|
end
|
111
111
|
end
|
112
112
|
|
113
|
-
describe
|
113
|
+
describe "#delete_server" do
|
114
114
|
context "when the instance does not exist" do
|
115
115
|
before do
|
116
116
|
allow(service.ui).to receive(:warn)
|
@@ -144,29 +144,29 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
144
144
|
end
|
145
145
|
end
|
146
146
|
|
147
|
-
describe
|
147
|
+
describe "#get_server" do
|
148
148
|
it "returns an instance" do
|
149
149
|
expect(connection).to receive(:get_instance).with(project, zone, "test_instance").and_return("instance")
|
150
150
|
expect(service.get_server("test_instance")).to eq("instance")
|
151
151
|
end
|
152
152
|
end
|
153
153
|
|
154
|
-
describe
|
154
|
+
describe "#list_zones" do
|
155
155
|
subject { service.list_zones }
|
156
156
|
it_behaves_like "a paginated list fetcher", :list_zones, :items, "test_project"
|
157
157
|
end
|
158
158
|
|
159
|
-
describe
|
159
|
+
describe "#list_disks" do
|
160
160
|
subject { service.list_disks }
|
161
161
|
it_behaves_like "a paginated list fetcher", :list_disks, :items, "test_project", "test_zone"
|
162
162
|
end
|
163
163
|
|
164
|
-
describe
|
164
|
+
describe "#list_regions" do
|
165
165
|
subject { service.list_regions }
|
166
166
|
it_behaves_like "a paginated list fetcher", :list_regions, :items, "test_project"
|
167
167
|
end
|
168
168
|
|
169
|
-
describe
|
169
|
+
describe "#list_project_quotas" do
|
170
170
|
let(:response) { double("response") }
|
171
171
|
|
172
172
|
before do
|
@@ -185,7 +185,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
185
185
|
end
|
186
186
|
end
|
187
187
|
|
188
|
-
describe
|
188
|
+
describe "#validate_server_create_options!" do
|
189
189
|
let(:options) do
|
190
190
|
{
|
191
191
|
machine_type: "test_type",
|
@@ -235,13 +235,13 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
235
235
|
end
|
236
236
|
end
|
237
237
|
|
238
|
-
describe
|
238
|
+
describe "#check_api_call" do
|
239
239
|
it "returns false if the block raises a ClientError" do
|
240
240
|
expect(service.check_api_call { raise Google::Apis::ClientError.new("whoops") }).to eq(false)
|
241
241
|
end
|
242
242
|
|
243
243
|
it "raises an exception if the block raises something other than a ClientError" do
|
244
|
-
expect { service.check_api_call { raise
|
244
|
+
expect { service.check_api_call { raise "whoops" } }.to raise_error(RuntimeError)
|
245
245
|
end
|
246
246
|
|
247
247
|
it "returns true if the block does not raise an exception" do
|
@@ -249,7 +249,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
249
249
|
end
|
250
250
|
end
|
251
251
|
|
252
|
-
describe
|
252
|
+
describe "#valid_machine_type?" do
|
253
253
|
it "returns false if no matchine type was specified" do
|
254
254
|
expect(service.valid_machine_type?(nil)).to eq(false)
|
255
255
|
end
|
@@ -262,7 +262,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
262
262
|
end
|
263
263
|
end
|
264
264
|
|
265
|
-
describe
|
265
|
+
describe "#valid_network?" do
|
266
266
|
it "returns false if no network was specified" do
|
267
267
|
expect(service.valid_network?(nil)).to eq(false)
|
268
268
|
end
|
@@ -275,7 +275,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
275
275
|
end
|
276
276
|
end
|
277
277
|
|
278
|
-
describe
|
278
|
+
describe "#valid_subnet?" do
|
279
279
|
it "returns false if no subnet was specified" do
|
280
280
|
expect(service.valid_subnet?(nil)).to eq(false)
|
281
281
|
end
|
@@ -289,7 +289,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
289
289
|
end
|
290
290
|
end
|
291
291
|
|
292
|
-
describe
|
292
|
+
describe "#image_exist?" do
|
293
293
|
it "checks the image using check_api_call" do
|
294
294
|
expect(connection).to receive(:get_image).with("image_project", "image_name")
|
295
295
|
expect(service).to receive(:check_api_call).and_call_original
|
@@ -298,7 +298,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
298
298
|
end
|
299
299
|
end
|
300
300
|
|
301
|
-
describe
|
301
|
+
describe "#valid_public_ip_setting?" do
|
302
302
|
it "returns true if the public_ip is nil" do
|
303
303
|
expect(service.valid_public_ip_setting?(nil)).to eq(true)
|
304
304
|
end
|
@@ -322,7 +322,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
322
322
|
end
|
323
323
|
end
|
324
324
|
|
325
|
-
describe
|
325
|
+
describe "#valid_ip_address" do
|
326
326
|
it "returns false if IPAddr is unable to parse the address" do
|
327
327
|
expect(IPAddr).to receive(:new).with("not_an_ip").and_raise(IPAddr::InvalidAddressError)
|
328
328
|
expect(service.valid_ip_address?("not_an_ip")).to eq(false)
|
@@ -334,7 +334,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
334
334
|
end
|
335
335
|
end
|
336
336
|
|
337
|
-
describe
|
337
|
+
describe "#region" do
|
338
338
|
it "returns the region for a given zone" do
|
339
339
|
zone_obj = double("zone_obj", region: "/path/to/test_region")
|
340
340
|
expect(connection).to receive(:get_zone).with(project, zone).and_return(zone_obj)
|
@@ -342,7 +342,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
342
342
|
end
|
343
343
|
end
|
344
344
|
|
345
|
-
describe
|
345
|
+
describe "#instance_object_for" do
|
346
346
|
let(:instance_object) { double("instance_object") }
|
347
347
|
let(:options) do
|
348
348
|
{
|
@@ -387,7 +387,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
387
387
|
end
|
388
388
|
end
|
389
389
|
|
390
|
-
describe
|
390
|
+
describe "#instance_disks_for" do
|
391
391
|
|
392
392
|
before do
|
393
393
|
expect(service).to receive(:instance_boot_disk_for).with(options).and_return("boot_disk")
|
@@ -433,7 +433,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
433
433
|
end
|
434
434
|
end
|
435
435
|
|
436
|
-
describe
|
436
|
+
describe "#instance_boot_disk_for" do
|
437
437
|
it "sets up a disk object and returns it" do
|
438
438
|
disk = double("disk")
|
439
439
|
params = double("params")
|
@@ -464,7 +464,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
464
464
|
end
|
465
465
|
end
|
466
466
|
|
467
|
-
describe
|
467
|
+
describe "#boot_disk_type_for" do
|
468
468
|
it "returns pd-ssd if boot_disk_ssd is true" do
|
469
469
|
expect(service.boot_disk_type_for(boot_disk_ssd: true)).to eq("pd-ssd")
|
470
470
|
end
|
@@ -474,7 +474,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
474
474
|
end
|
475
475
|
end
|
476
476
|
|
477
|
-
describe
|
477
|
+
describe "#image_search_for" do
|
478
478
|
context "when the user supplies an image project" do
|
479
479
|
it "returns the image URL based on the image project" do
|
480
480
|
expect(service).to receive(:image_url_for).with("test_project", "test_image").and_return("image_url")
|
@@ -527,7 +527,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
527
527
|
end
|
528
528
|
end
|
529
529
|
|
530
|
-
describe
|
530
|
+
describe "#image_url_for" do
|
531
531
|
it "returns nil if the image does not exist" do
|
532
532
|
expect(service).to receive(:image_exist?).with("image_project", "image_name").and_return(false)
|
533
533
|
expect(service.image_url_for("image_project", "image_name")).to eq(nil)
|
@@ -539,7 +539,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
539
539
|
end
|
540
540
|
end
|
541
541
|
|
542
|
-
describe
|
542
|
+
describe "#image_alias_url" do
|
543
543
|
context "when the image_alias is not a valid alias" do
|
544
544
|
it "returns nil" do
|
545
545
|
expect(service.image_alias_url("fake_alias")).to eq(nil)
|
@@ -583,7 +583,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
583
583
|
end
|
584
584
|
end
|
585
585
|
|
586
|
-
describe
|
586
|
+
describe "#boot_disk_name_for" do
|
587
587
|
it "returns the boot disk name if supplied by the user" do
|
588
588
|
options = { name: "instance_name", boot_disk_name: "disk_name" }
|
589
589
|
expect(service.boot_disk_name_for(options)).to eq("disk_name")
|
@@ -595,13 +595,13 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
595
595
|
end
|
596
596
|
end
|
597
597
|
|
598
|
-
describe
|
598
|
+
describe "#machine_type_url_for" do
|
599
599
|
it "returns a properly-formatted machine type URL" do
|
600
600
|
expect(service.machine_type_url_for("test_type")).to eq("zones/test_zone/machineTypes/test_type")
|
601
601
|
end
|
602
602
|
end
|
603
603
|
|
604
|
-
describe
|
604
|
+
describe "#instance_metadata_for" do
|
605
605
|
it "returns nil if the passed-in metadata is nil" do
|
606
606
|
expect(service.instance_metadata_for(nil)).to eq(nil)
|
607
607
|
end
|
@@ -629,7 +629,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
629
629
|
end
|
630
630
|
end
|
631
631
|
|
632
|
-
describe
|
632
|
+
describe "#instance_network_interfaces_for" do
|
633
633
|
let(:interface) { double("interface" ) }
|
634
634
|
let(:options) { { network: "test_network", public_ip: "public_ip" } }
|
635
635
|
|
@@ -677,20 +677,20 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
677
677
|
end
|
678
678
|
end
|
679
679
|
|
680
|
-
describe
|
680
|
+
describe "#network_url_for" do
|
681
681
|
it "returns a properly-formatted network URL" do
|
682
682
|
expect(service.network_url_for("test_network")).to eq("projects/test_project/global/networks/test_network")
|
683
683
|
end
|
684
684
|
end
|
685
685
|
|
686
|
-
describe
|
686
|
+
describe "#subnet_url_for" do
|
687
687
|
it "returns a properly-formatted subnet URL" do
|
688
688
|
expect(service).to receive(:region).and_return("test_region")
|
689
689
|
expect(service.subnet_url_for("test_subnet")).to eq("projects/test_project/regions/test_region/subnetworks/test_subnet")
|
690
690
|
end
|
691
691
|
end
|
692
692
|
|
693
|
-
describe
|
693
|
+
describe "#instance_scheduling_for" do
|
694
694
|
it "returns a properly-formatted scheduling object" do
|
695
695
|
scheduling = double("scheduling")
|
696
696
|
options = { auto_restart: "auto_restart", auto_migrate: "auto_migrate", preemptible: "preempt" }
|
@@ -705,7 +705,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
705
705
|
end
|
706
706
|
end
|
707
707
|
|
708
|
-
describe
|
708
|
+
describe "#migrate_setting_for" do
|
709
709
|
it "returns MIGRATE when auto_migrate is true" do
|
710
710
|
expect(service.migrate_setting_for(true)).to eq("MIGRATE")
|
711
711
|
end
|
@@ -715,7 +715,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
715
715
|
end
|
716
716
|
end
|
717
717
|
|
718
|
-
describe
|
718
|
+
describe "#instance_service_accounts_for" do
|
719
719
|
it "returns nil if service_account_scopes is nil" do
|
720
720
|
expect(service.instance_service_accounts_for({})).to eq(nil)
|
721
721
|
end
|
@@ -741,7 +741,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
741
741
|
end
|
742
742
|
end
|
743
743
|
|
744
|
-
describe
|
744
|
+
describe "#service_account_scope_url" do
|
745
745
|
it "returns the passed-in scope if it already looks like a scope URL" do
|
746
746
|
scope = "https://www.googleapis.com/auth/fake_scope"
|
747
747
|
expect(service.service_account_scope_url(scope)).to eq(scope)
|
@@ -753,7 +753,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
753
753
|
end
|
754
754
|
end
|
755
755
|
|
756
|
-
describe
|
756
|
+
describe "#translate_scope_alias" do
|
757
757
|
it "returns a scope for a given alias" do
|
758
758
|
expect(service.translate_scope_alias("storage-rw")).to eq("devstorage.read_write")
|
759
759
|
end
|
@@ -763,7 +763,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
763
763
|
end
|
764
764
|
end
|
765
765
|
|
766
|
-
describe
|
766
|
+
describe "#instance_tags_for" do
|
767
767
|
it "returns nil if tags is nil" do
|
768
768
|
expect(service.instance_tags_for(nil)).to eq(nil)
|
769
769
|
end
|
@@ -782,7 +782,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
782
782
|
end
|
783
783
|
end
|
784
784
|
|
785
|
-
describe
|
785
|
+
describe "#network_for" do
|
786
786
|
it "returns the network name if it exists" do
|
787
787
|
interface = double("interface", network: "/some/path/to/default_network")
|
788
788
|
instance = double("instance", network_interfaces: [interface])
|
@@ -798,14 +798,14 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
798
798
|
end
|
799
799
|
end
|
800
800
|
|
801
|
-
describe
|
801
|
+
describe "#machine_type_for" do
|
802
802
|
it "returns the machine type name" do
|
803
803
|
instance = double("instance", machine_type: "/some/path/to/test_type")
|
804
804
|
expect(service.machine_type_for(instance)).to eq("test_type")
|
805
805
|
end
|
806
806
|
end
|
807
807
|
|
808
|
-
describe
|
808
|
+
describe "#public_project_for_image" do
|
809
809
|
{
|
810
810
|
"centos" => "centos-cloud",
|
811
811
|
"container-vm" => "google-containers",
|
@@ -823,13 +823,13 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
823
823
|
end
|
824
824
|
end
|
825
825
|
|
826
|
-
describe
|
826
|
+
describe "#disk_type_url_for" do
|
827
827
|
it "returns a properly-formatted disk type URL" do
|
828
828
|
expect(service.disk_type_url_for("disk_type")).to eq("zones/test_zone/diskTypes/disk_type")
|
829
829
|
end
|
830
830
|
end
|
831
831
|
|
832
|
-
describe
|
832
|
+
describe "#paginated_results" do
|
833
833
|
let(:response) { double("response") }
|
834
834
|
let(:api_method) { :list_stuff }
|
835
835
|
let(:items_method) { :items }
|
@@ -893,7 +893,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
893
893
|
end
|
894
894
|
end
|
895
895
|
|
896
|
-
describe
|
896
|
+
describe "#wait_for_status" do
|
897
897
|
let(:item) { double("item") }
|
898
898
|
|
899
899
|
before do
|
@@ -940,7 +940,7 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
940
940
|
end
|
941
941
|
end
|
942
942
|
|
943
|
-
describe
|
943
|
+
describe "#wait_for_operation" do
|
944
944
|
let(:operation) { double("operation", name: "operation-123") }
|
945
945
|
|
946
946
|
it "raises a properly-formatted exception when errors exist" do
|
@@ -963,14 +963,14 @@ describe Chef::Knife::Cloud::GoogleService do
|
|
963
963
|
end
|
964
964
|
end
|
965
965
|
|
966
|
-
describe
|
966
|
+
describe "#zone_operation" do
|
967
967
|
it "fetches the operation from the API and returns it" do
|
968
968
|
expect(connection).to receive(:get_zone_operation).with(project, zone, "operation-123").and_return("operation")
|
969
969
|
expect(service.zone_operation("operation-123")).to eq("operation")
|
970
970
|
end
|
971
971
|
end
|
972
972
|
|
973
|
-
describe
|
973
|
+
describe "#operation_errors" do
|
974
974
|
let(:operation) { double("operation") }
|
975
975
|
let(:error_obj) { double("error_obj") }
|
976
976
|
|
@@ -30,7 +30,7 @@ describe Chef::Knife::Cloud::GoogleDiskCreate do
|
|
30
30
|
|
31
31
|
it_behaves_like Chef::Knife::Cloud::Command, described_class.new
|
32
32
|
|
33
|
-
describe
|
33
|
+
describe "#validate_params!" do
|
34
34
|
before do
|
35
35
|
allow(command).to receive(:check_for_missing_config_values!)
|
36
36
|
allow(command).to receive(:valid_disk_size?).and_return(true)
|
@@ -59,7 +59,7 @@ describe Chef::Knife::Cloud::GoogleDiskCreate do
|
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
62
|
-
describe
|
62
|
+
describe "#execute_command" do
|
63
63
|
it "calls the service to create the disk" do
|
64
64
|
expect(command).to receive(:locate_config_value).with(:disk_size).and_return("size")
|
65
65
|
expect(command).to receive(:locate_config_value).with(:disk_type).and_return("type")
|
@@ -30,7 +30,7 @@ describe Chef::Knife::Cloud::GoogleDiskDelete do
|
|
30
30
|
|
31
31
|
it_behaves_like Chef::Knife::Cloud::Command, described_class.new
|
32
32
|
|
33
|
-
describe
|
33
|
+
describe "#validate_params!" do
|
34
34
|
before do
|
35
35
|
allow(command).to receive(:check_for_missing_config_values!)
|
36
36
|
end
|
@@ -53,7 +53,7 @@ describe Chef::Knife::Cloud::GoogleDiskDelete do
|
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
56
|
-
describe
|
56
|
+
describe "#execute_command" do
|
57
57
|
it "calls the service to delete each disk" do
|
58
58
|
expect(service).to receive(:delete_disk).with("disk1")
|
59
59
|
expect(service).to receive(:delete_disk).with("disk2")
|
@@ -30,7 +30,7 @@ describe Chef::Knife::Cloud::GoogleDiskList do
|
|
30
30
|
|
31
31
|
it_behaves_like Chef::Knife::Cloud::Command, described_class.new
|
32
32
|
|
33
|
-
describe
|
33
|
+
describe "#validate_params!" do
|
34
34
|
it "checks for missing config values" do
|
35
35
|
expect(command).to receive(:check_for_missing_config_values!)
|
36
36
|
|
@@ -38,14 +38,14 @@ describe Chef::Knife::Cloud::GoogleDiskList do
|
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
|
-
describe
|
41
|
+
describe "#query_resource" do
|
42
42
|
it "uses the service to list disks" do
|
43
43
|
expect(service).to receive(:list_disks).and_return("disks")
|
44
44
|
expect(command.query_resource).to eq("disks")
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
48
|
-
describe
|
48
|
+
describe "#format_status_value" do
|
49
49
|
it "returns green when the status is ready" do
|
50
50
|
expect(command.ui).to receive(:color).with("ready", :green)
|
51
51
|
command.format_status_value("ready")
|
@@ -57,13 +57,13 @@ describe Chef::Knife::Cloud::GoogleDiskList do
|
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
60
|
-
describe
|
60
|
+
describe "#format_disk_type" do
|
61
61
|
it "returns a properly-formatted disk type" do
|
62
62
|
expect(command.format_disk_type("a/b/c/disk_type")).to eq("disk_type")
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
66
|
-
describe
|
66
|
+
describe "#format_source_image" do
|
67
67
|
it "returns 'unknown' if the source is nil" do
|
68
68
|
expect(command.format_source_image(nil)).to eq("unknown")
|
69
69
|
end
|
@@ -77,7 +77,7 @@ describe Chef::Knife::Cloud::GoogleDiskList do
|
|
77
77
|
end
|
78
78
|
end
|
79
79
|
|
80
|
-
describe
|
80
|
+
describe "#format_users" do
|
81
81
|
it "returns 'unknown' if the source is nil" do
|
82
82
|
expect(command.format_users(nil)).to eq("none")
|
83
83
|
end
|
@@ -30,7 +30,7 @@ describe Chef::Knife::Cloud::GoogleProjectQuotas do
|
|
30
30
|
|
31
31
|
it_behaves_like Chef::Knife::Cloud::Command, described_class.new
|
32
32
|
|
33
|
-
describe
|
33
|
+
describe "#validate_params!" do
|
34
34
|
it "checks for missing config values" do
|
35
35
|
expect(command).to receive(:check_for_missing_config_values!)
|
36
36
|
|
@@ -38,20 +38,20 @@ describe Chef::Knife::Cloud::GoogleProjectQuotas do
|
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
|
-
describe
|
41
|
+
describe "#query_resource" do
|
42
42
|
it "uses the service to list project quotas" do
|
43
43
|
expect(service).to receive(:list_project_quotas).and_return("quotas")
|
44
44
|
expect(command.query_resource).to eq("quotas")
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
48
|
-
describe
|
48
|
+
describe "#format_name" do
|
49
49
|
it "returns a properly-formatted name" do
|
50
50
|
expect(command.format_name("something_cool_here")).to eq("Something Cool Here")
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
54
|
-
describe
|
54
|
+
describe "#format_number" do
|
55
55
|
it "returns an integer as a string if the number is a whole number" do
|
56
56
|
expect(command.format_number(2.0)).to eq("2")
|
57
57
|
end
|
@@ -30,7 +30,7 @@ describe Chef::Knife::Cloud::GoogleRegionList do
|
|
30
30
|
|
31
31
|
it_behaves_like Chef::Knife::Cloud::Command, described_class.new
|
32
32
|
|
33
|
-
describe
|
33
|
+
describe "#validate_params!" do
|
34
34
|
it "checks for missing config values" do
|
35
35
|
expect(command).to receive(:check_for_missing_config_values!)
|
36
36
|
|
@@ -38,14 +38,14 @@ describe Chef::Knife::Cloud::GoogleRegionList do
|
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
|
-
describe
|
41
|
+
describe "#query_resource" do
|
42
42
|
it "uses the service to list regions" do
|
43
43
|
expect(service).to receive(:list_regions).and_return("regions")
|
44
44
|
expect(command.query_resource).to eq("regions")
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
48
|
-
describe
|
48
|
+
describe "#format_status_value" do
|
49
49
|
it "returns green when the status is up" do
|
50
50
|
expect(command.ui).to receive(:color).with("up", :green)
|
51
51
|
command.format_status_value("up")
|
@@ -57,7 +57,7 @@ describe Chef::Knife::Cloud::GoogleRegionList do
|
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
60
|
-
describe
|
60
|
+
describe "#format_zones" do
|
61
61
|
it "returns properly-formatted zones" do
|
62
62
|
expect(command.format_zones(["a/b/zone1", "c/d/zone2"])).to eq("zone1, zone2")
|
63
63
|
end
|
@@ -30,7 +30,7 @@ describe Chef::Knife::Cloud::GoogleRegionQuotas do
|
|
30
30
|
|
31
31
|
it_behaves_like Chef::Knife::Cloud::Command, described_class.new
|
32
32
|
|
33
|
-
describe
|
33
|
+
describe "#validate_params!" do
|
34
34
|
it "checks for missing config values" do
|
35
35
|
expect(command).to receive(:check_for_missing_config_values!)
|
36
36
|
|
@@ -38,7 +38,7 @@ describe Chef::Knife::Cloud::GoogleRegionQuotas do
|
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
|
-
describe
|
41
|
+
describe "#execute_command" do
|
42
42
|
let(:ui) { double("ui") }
|
43
43
|
let(:regions) { [region1] }
|
44
44
|
|
@@ -90,13 +90,13 @@ describe Chef::Knife::Cloud::GoogleRegionQuotas do
|
|
90
90
|
end
|
91
91
|
end
|
92
92
|
|
93
|
-
describe
|
93
|
+
describe "#format_name" do
|
94
94
|
it "returns a properly-formatted name" do
|
95
95
|
expect(command.format_name("something_cool_here")).to eq("Something Cool Here")
|
96
96
|
end
|
97
97
|
end
|
98
98
|
|
99
|
-
describe
|
99
|
+
describe "#format_number" do
|
100
100
|
it "returns an integer as a string if the number is a whole number" do
|
101
101
|
expect(command.format_number(2.0)).to eq("2")
|
102
102
|
end
|
@@ -33,7 +33,7 @@ describe Chef::Knife::Cloud::GoogleServerCreate do
|
|
33
33
|
|
34
34
|
it_behaves_like Chef::Knife::Cloud::Command, described_class.new
|
35
35
|
|
36
|
-
describe
|
36
|
+
describe "#validate_params!" do
|
37
37
|
before do
|
38
38
|
allow(command).to receive(:check_for_missing_config_values!)
|
39
39
|
allow(command).to receive(:valid_disk_size?).and_return(true)
|
@@ -87,7 +87,7 @@ describe Chef::Knife::Cloud::GoogleServerCreate do
|
|
87
87
|
end
|
88
88
|
end
|
89
89
|
|
90
|
-
describe
|
90
|
+
describe "#before_bootstrap" do
|
91
91
|
before do
|
92
92
|
allow(command).to receive(:ip_address_for_bootstrap)
|
93
93
|
allow(command).to receive(:locate_config_value)
|
@@ -125,41 +125,41 @@ describe Chef::Knife::Cloud::GoogleServerCreate do
|
|
125
125
|
end
|
126
126
|
end
|
127
127
|
|
128
|
-
describe
|
128
|
+
describe "#get_node_name" do
|
129
129
|
it "overrides the original method to return nil" do
|
130
130
|
expect(command.get_node_name("name", "prefix")).to eq(nil)
|
131
131
|
end
|
132
132
|
end
|
133
133
|
|
134
|
-
describe
|
134
|
+
describe "#project" do
|
135
135
|
it "returns the project from the config" do
|
136
136
|
expect(command).to receive(:locate_config_value).with(:gce_project).and_return("test_project")
|
137
137
|
expect(command.project).to eq("test_project")
|
138
138
|
end
|
139
139
|
end
|
140
140
|
|
141
|
-
describe
|
141
|
+
describe "#zone" do
|
142
142
|
it "returns the zone from the config" do
|
143
143
|
expect(command).to receive(:locate_config_value).with(:gce_zone).and_return("test_zone")
|
144
144
|
expect(command.zone).to eq("test_zone")
|
145
145
|
end
|
146
146
|
end
|
147
147
|
|
148
|
-
describe
|
148
|
+
describe "#email" do
|
149
149
|
it "returns the email from the config" do
|
150
150
|
expect(command).to receive(:locate_config_value).with(:gce_email).and_return("test_email")
|
151
151
|
expect(command.email).to eq("test_email")
|
152
152
|
end
|
153
153
|
end
|
154
154
|
|
155
|
-
describe
|
155
|
+
describe "#preemptible?" do
|
156
156
|
it "returns the preemptible setting from the config" do
|
157
157
|
expect(command).to receive(:locate_config_value).with(:preemptible).and_return("test_preempt")
|
158
158
|
expect(command.preemptible?).to eq("test_preempt")
|
159
159
|
end
|
160
160
|
end
|
161
161
|
|
162
|
-
describe
|
162
|
+
describe "#auto_migrate?" do
|
163
163
|
it "returns false if the instance is preemptible" do
|
164
164
|
expect(command).to receive(:preemptible?).and_return(true)
|
165
165
|
expect(command.auto_migrate?).to eq(false)
|
@@ -172,7 +172,7 @@ describe Chef::Knife::Cloud::GoogleServerCreate do
|
|
172
172
|
end
|
173
173
|
end
|
174
174
|
|
175
|
-
describe
|
175
|
+
describe "#auto_restart?" do
|
176
176
|
it "returns false if the instance is preemptible" do
|
177
177
|
expect(command).to receive(:preemptible?).and_return(true)
|
178
178
|
expect(command.auto_restart?).to eq(false)
|
@@ -185,7 +185,7 @@ describe Chef::Knife::Cloud::GoogleServerCreate do
|
|
185
185
|
end
|
186
186
|
end
|
187
187
|
|
188
|
-
describe
|
188
|
+
describe "#ip_address_for_bootstrap" do
|
189
189
|
it "returns the public IP by default" do
|
190
190
|
expect(command).to receive(:locate_config_value).with(:use_private_ip).and_return(false)
|
191
191
|
expect(command).to receive(:public_ip_for).and_return("1.2.3.4")
|
@@ -205,21 +205,21 @@ describe Chef::Knife::Cloud::GoogleServerCreate do
|
|
205
205
|
end
|
206
206
|
end
|
207
207
|
|
208
|
-
describe
|
208
|
+
describe "#metadata" do
|
209
209
|
it "returns a hash of metadata" do
|
210
210
|
expect(command).to receive(:locate_config_value).with(:metadata).and_return(["key1=value1", "key2=value2"])
|
211
211
|
expect(command.metadata).to eq({ "key1" => "value1", "key2" => "value2" })
|
212
212
|
end
|
213
213
|
end
|
214
214
|
|
215
|
-
describe
|
215
|
+
describe "#boot_disk_size" do
|
216
216
|
it "returns the disk size as an integer" do
|
217
217
|
expect(command).to receive(:locate_config_value).with(:boot_disk_size).and_return("20")
|
218
218
|
expect(command.boot_disk_size).to eq(20)
|
219
219
|
end
|
220
220
|
end
|
221
221
|
|
222
|
-
describe
|
222
|
+
describe "#reset_windows_password" do
|
223
223
|
it "returns the password from the gcewinpass instance" do
|
224
224
|
winpass = double("winpass", new_password: "my_password")
|
225
225
|
expect(GoogleComputeWindowsPassword).to receive(:new).and_return(winpass)
|
@@ -30,7 +30,7 @@ describe Chef::Knife::Cloud::GoogleServerDelete do
|
|
30
30
|
|
31
31
|
it_behaves_like Chef::Knife::Cloud::ServerDeleteCommand, described_class.new(["test_instance"])
|
32
32
|
|
33
|
-
describe
|
33
|
+
describe "#validate_params!" do
|
34
34
|
it "checks for missing config values" do
|
35
35
|
expect(command).to receive(:check_for_missing_config_values!)
|
36
36
|
command.validate_params!
|
@@ -30,7 +30,7 @@ describe Chef::Knife::Cloud::GoogleServerList do
|
|
30
30
|
|
31
31
|
it_behaves_like Chef::Knife::Cloud::Command, described_class.new
|
32
32
|
|
33
|
-
describe
|
33
|
+
describe "#validate_params!" do
|
34
34
|
it "checks for missing config values" do
|
35
35
|
expect(command).to receive(:check_for_missing_config_values!)
|
36
36
|
|
@@ -38,7 +38,7 @@ describe Chef::Knife::Cloud::GoogleServerList do
|
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
|
-
describe
|
41
|
+
describe "#format_status_value" do
|
42
42
|
it "returns green when the status is ready" do
|
43
43
|
expect(command.ui).to receive(:color).with("ready", :green)
|
44
44
|
command.format_status_value("ready")
|
@@ -30,7 +30,7 @@ describe Chef::Knife::Cloud::GoogleServerShow do
|
|
30
30
|
|
31
31
|
it_behaves_like Chef::Knife::Cloud::Command, described_class.new
|
32
32
|
|
33
|
-
describe
|
33
|
+
describe "#validate_params!" do
|
34
34
|
before do
|
35
35
|
allow(command).to receive(:check_for_missing_config_values!)
|
36
36
|
end
|
@@ -30,7 +30,7 @@ describe Chef::Knife::Cloud::GoogleZoneList do
|
|
30
30
|
|
31
31
|
it_behaves_like Chef::Knife::Cloud::Command, described_class.new
|
32
32
|
|
33
|
-
describe
|
33
|
+
describe "#validate_params!" do
|
34
34
|
it "checks for missing config values" do
|
35
35
|
expect(command).to receive(:check_for_missing_config_values!)
|
36
36
|
|
@@ -38,14 +38,14 @@ describe Chef::Knife::Cloud::GoogleZoneList do
|
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
|
-
describe
|
41
|
+
describe "#query_resource" do
|
42
42
|
it "uses the service to list zones" do
|
43
43
|
expect(service).to receive(:list_zones).and_return("zones")
|
44
44
|
expect(command.query_resource).to eq("zones")
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
48
|
-
describe
|
48
|
+
describe "#format_status_value" do
|
49
49
|
it "returns green when the status is up" do
|
50
50
|
expect(command.ui).to receive(:color).with("up", :green)
|
51
51
|
command.format_status_value("up")
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knife-google
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chiraq Jog
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2016-
|
16
|
+
date: 2016-09-27 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: chef
|
@@ -208,7 +208,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
208
208
|
version: '0'
|
209
209
|
requirements: []
|
210
210
|
rubyforge_project:
|
211
|
-
rubygems_version: 2.
|
211
|
+
rubygems_version: 2.5.1
|
212
212
|
signing_key:
|
213
213
|
specification_version: 4
|
214
214
|
summary: Google Compute Engine Support for Chef's Knife Command
|