knife-google 3.3.3 → 3.3.6
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/CHANGELOG.md +15 -7
- data/TESTING.md +48 -0
- data/VERSION +1 -1
- data/knife-google.gemspec +0 -2
- data/lib/chef/knife/cloud/google_service.rb +2 -2
- data/lib/chef/knife/cloud/google_service_helpers.rb +1 -1
- data/lib/chef/knife/google_disk_create.rb +1 -1
- data/lib/chef/knife/google_disk_delete.rb +1 -1
- data/lib/chef/knife/google_disk_list.rb +1 -1
- data/lib/chef/knife/google_server_create.rb +1 -1
- data/lib/chef/knife/google_server_list.rb +1 -1
- data/lib/chef/knife/google_server_show.rb +1 -1
- data/lib/knife-google/version.rb +1 -1
- data/spec/cloud/google_service_helpers_spec.rb +1 -3
- data/spec/google_disk_create_spec.rb +14 -1
- data/spec/google_disk_delete_spec.rb +14 -1
- data/spec/google_disk_list_spec.rb +14 -1
- data/spec/google_project_quotas_spec.rb +13 -0
- data/spec/google_region_list_spec.rb +13 -0
- data/spec/google_region_quotas_spec.rb +13 -0
- data/spec/google_server_create_spec.rb +14 -1
- data/spec/google_server_delete_spec.rb +13 -0
- data/spec/google_server_list_spec.rb +14 -1
- data/spec/google_server_show_spec.rb +14 -1
- data/spec/google_zone_list_spec.rb +13 -0
- metadata +3 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 79bb948dc01979a7abe337108a6d908c6a5fd0aef3aad35f687a3570d0e0f2aa
|
4
|
+
data.tar.gz: 4e3d943d4ec4f4b9440d1cf2e59af79f72acb4010f49a7f6d590147cedd18b5f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 76e15187ff2749b8b9d91451368f95e7d38b6d4c671500c045402b1098ba2a24f1fc3e21bf06f56f9305bdf75f268dd7a516972fc9d88ab2447a3a1a3458dbca
|
7
|
+
data.tar.gz: ee18351ce616bc95a530d93dc3d84365f93736060c41565aec279b065645ad28b1aa2df5e7089396917de6a2e0843a26bcdd62180628d813b9311ea29580ac0f
|
data/CHANGELOG.md
CHANGED
@@ -4,24 +4,32 @@ Note: this log contains only changes from knife-google release 1.1.0 and later
|
|
4
4
|
-- it does not contain the changes from prior releases. To view change history
|
5
5
|
prior to release 1.1.0, please visit the [source repository](https://github.com/chef/knife-google/commits).
|
6
6
|
|
7
|
-
<!-- latest_release 3.3.
|
8
|
-
## [v3.3.
|
7
|
+
<!-- latest_release 3.3.6 -->
|
8
|
+
## [v3.3.6](https://github.com/chef/knife-google/tree/v3.3.6) (2018-11-20)
|
9
9
|
|
10
10
|
#### Merged Pull Requests
|
11
|
-
-
|
11
|
+
- MSYS-917 Allows knife google zone list, region list, region quotas, project quotas to run without giving --gce_zone option [#142](https://github.com/chef/knife-google/pull/142) ([Vasu1105](https://github.com/Vasu1105))
|
12
12
|
<!-- latest_release -->
|
13
13
|
|
14
|
-
<!-- release_rollup since=3.3.
|
15
|
-
### Changes
|
14
|
+
<!-- release_rollup since=3.3.3 -->
|
15
|
+
### Changes not yet released to rubygems.org
|
16
16
|
|
17
17
|
#### Merged Pull Requests
|
18
|
-
-
|
19
|
-
-
|
18
|
+
- MSYS-917 Allows knife google zone list, region list, region quotas, project quotas to run without giving --gce_zone option [#142](https://github.com/chef/knife-google/pull/142) ([Vasu1105](https://github.com/Vasu1105)) <!-- 3.3.6 -->
|
19
|
+
- Documenting the knife-google manual testing prerequisite [#141](https://github.com/chef/knife-google/pull/141) ([Vasu1105](https://github.com/Vasu1105)) <!-- 3.3.5 -->
|
20
|
+
- Remove github_changelog_generator development dependency [#138](https://github.com/chef/knife-google/pull/138) ([tas50](https://github.com/tas50)) <!-- 3.3.4 -->
|
20
21
|
<!-- release_rollup -->
|
21
22
|
|
22
23
|
<!-- latest_stable_release -->
|
24
|
+
## [v3.3.3](https://github.com/chef/knife-google/tree/v3.3.3) (2018-10-17)
|
25
|
+
|
26
|
+
#### Merged Pull Requests
|
27
|
+
- Empty commit to test expeditor [#136](https://github.com/chef/knife-google/pull/136) ([btm](https://github.com/btm))
|
28
|
+
- Allow for newer google-api-client releases [#137](https://github.com/chef/knife-google/pull/137) ([tas50](https://github.com/tas50))
|
23
29
|
<!-- latest_stable_release -->
|
24
30
|
|
31
|
+
|
32
|
+
|
25
33
|
## [3.3.0](https://github.com/chef/knife-google/tree/v3.3.0)
|
26
34
|
|
27
35
|
[Full Changelog](https://github.com/chef/knife-google/compare/v3.2.0...v3.3.0)
|
data/TESTING.md
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
## Manual Testing Prerequisite:
|
2
|
+
|
3
|
+
To work with knife google commands following setup needs to be done.
|
4
|
+
|
5
|
+
Configure google authentication and authorization as suggested [here](https://github.com/chef/knife-google#authentication-and-authorization).
|
6
|
+
|
7
|
+
To work with knife google command you should create GCP project and assign zone and region to that project
|
8
|
+
|
9
|
+
**Ref:** https://cloud.google.com/resource-manager/docs/creating-managing-projects
|
10
|
+
https://cloud.google.com/compute/docs/regions-zones/changing-default-zone-region
|
11
|
+
|
12
|
+
Some useful Google cloud commands which you can use with Google Cloud command line interface [#REF](https://cloud.google.com/compute/docs/gcloud-compute/#set_default_zone_and_region_in_your_local_client)
|
13
|
+
|
14
|
+
``` gcloud projects create PROJECT_ID ```
|
15
|
+
|
16
|
+
``` gcloud config configurations activate CONFIGURATION_NAME ```
|
17
|
+
|
18
|
+
``` gcloud config set compute/zone ZONE ```
|
19
|
+
|
20
|
+
``` gcloud config set compute/zone ZONE ```
|
21
|
+
|
22
|
+
Once the above setup is done get the PROJECT_ID and Zone and set it in your knife configuration file(knife.rb/config.rb).
|
23
|
+
```
|
24
|
+
knife[:gce_project] = 'my-test-project'
|
25
|
+
knife[:gce_zone] = 'us-east1-b'
|
26
|
+
```
|
27
|
+
**NOTE** Not providing `gce_project` and `gce_zone` in knife configuartion file will run into following errors while running any knife google command.
|
28
|
+
|
29
|
+
```
|
30
|
+
ERROR: The following required parameters are missing: gce_project, gce_zone
|
31
|
+
ERROR: RuntimeError: The following required parameters are missing: gce_project, gce_zone
|
32
|
+
```
|
33
|
+
|
34
|
+
## Valid knife google commands
|
35
|
+
|
36
|
+
```
|
37
|
+
knife google disk create NAME --gce-disk-size N (options)
|
38
|
+
knife google disk delete NAME [NAME] (options)
|
39
|
+
knife google disk list
|
40
|
+
knife google project quotas
|
41
|
+
knife google region list
|
42
|
+
knife google region quotas
|
43
|
+
knife google server create NAME -m MACHINE_TYPE -I IMAGE (options)
|
44
|
+
knife google server delete INSTANCE_NAME [INSTANCE_NAME] (options)
|
45
|
+
knife google server list
|
46
|
+
knife google server show INSTANCE_NAME (options)
|
47
|
+
knife google zone list
|
48
|
+
```
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.3.
|
1
|
+
3.3.6
|
data/knife-google.gemspec
CHANGED
@@ -21,7 +21,5 @@ Gem::Specification.new do |s|
|
|
21
21
|
s.add_dependency "google-api-client", ">= 0.19.8", "< 0.25" # each version introduces breaking changes which we need to validate
|
22
22
|
s.add_dependency "gcewinpass", "~> 1.1"
|
23
23
|
|
24
|
-
s.add_development_dependency "github_changelog_generator"
|
25
|
-
|
26
24
|
s.files = `git ls-files -z`.split("\x0")
|
27
25
|
end
|
@@ -51,7 +51,7 @@ class Chef::Knife::Cloud
|
|
51
51
|
"useraccounts-ro" => "cloud.useraccounts.readonly",
|
52
52
|
"useraccounts-rw" => "cloud.useraccounts",
|
53
53
|
"userinfo-email" => "userinfo.email",
|
54
|
-
}
|
54
|
+
}.freeze
|
55
55
|
|
56
56
|
IMAGE_ALIAS_MAP = {
|
57
57
|
"centos-6" => { project: "centos-cloud", prefix: "centos-6" },
|
@@ -76,7 +76,7 @@ class Chef::Knife::Cloud
|
|
76
76
|
"ubuntu-1604-lts" => { project: "ubuntu-os-cloud", prefix: "ubuntu-1604-xenial" },
|
77
77
|
"windows-2008-r2" => { project: "windows-cloud", prefix: "windows-server-2008-r2" },
|
78
78
|
"windows-2012-r2" => { project: "windows-cloud", prefix: "windows-server-2012-r2" },
|
79
|
-
}
|
79
|
+
}.freeze
|
80
80
|
|
81
81
|
def initialize(options = {})
|
82
82
|
@project = options[:project]
|
@@ -47,7 +47,7 @@ class Chef::Knife::Cloud
|
|
47
47
|
default: nil
|
48
48
|
|
49
49
|
def validate_params!
|
50
|
-
check_for_missing_config_values!(:disk_size, :disk_type)
|
50
|
+
check_for_missing_config_values!(:gce_zone, :disk_size, :disk_type)
|
51
51
|
raise "Please specify a disk name." unless @name_args.first
|
52
52
|
raise "Disk size must be between 10 and 10,000" unless valid_disk_size?(locate_config_value(:disk_size))
|
53
53
|
super
|
@@ -31,7 +31,7 @@ class Chef::Knife::Cloud
|
|
31
31
|
banner "knife google disk delete NAME [NAME] (options)"
|
32
32
|
|
33
33
|
def validate_params!
|
34
|
-
check_for_missing_config_values!
|
34
|
+
check_for_missing_config_values!(:gce_zone)
|
35
35
|
raise "You must specify at least one disk to delete." if @name_args.empty?
|
36
36
|
super
|
37
37
|
end
|
@@ -184,7 +184,7 @@ class Chef::Knife::Cloud
|
|
184
184
|
end
|
185
185
|
|
186
186
|
def validate_params!
|
187
|
-
check_for_missing_config_values!(:machine_type, :image, :boot_disk_size, :network)
|
187
|
+
check_for_missing_config_values!(:gce_zone, :machine_type, :image, :boot_disk_size, :network)
|
188
188
|
raise "You must supply an instance name." if @name_args.first.nil?
|
189
189
|
raise "Boot disk size must be between 10 and 10,000" unless valid_disk_size?(boot_disk_size)
|
190
190
|
if locate_config_value(:bootstrap_protocol) == "winrm" && locate_config_value(:gce_email).nil?
|
@@ -34,7 +34,7 @@ class Chef
|
|
34
34
|
banner "knife google server show INSTANCE_NAME (options)"
|
35
35
|
|
36
36
|
def validate_params!
|
37
|
-
check_for_missing_config_values!
|
37
|
+
check_for_missing_config_values!(:gce_zone)
|
38
38
|
raise "You must supply an instance name to display" if @name_args.empty?
|
39
39
|
raise "You may only supply one instance name" if @name_args.size > 1
|
40
40
|
super
|
data/lib/knife-google/version.rb
CHANGED
@@ -52,7 +52,6 @@ describe Chef::Knife::Cloud::GoogleServiceHelpers do
|
|
52
52
|
describe "#check_for_missing_config_values" do
|
53
53
|
it "does not raise an exception if all parameters are present" do
|
54
54
|
expect(tester).to receive(:locate_config_value).with(:gce_project).and_return("project")
|
55
|
-
expect(tester).to receive(:locate_config_value).with(:gce_zone).and_return("zone")
|
56
55
|
expect(tester).to receive(:locate_config_value).with(:key1).and_return("value1")
|
57
56
|
expect(tester).to receive(:locate_config_value).with(:key2).and_return("value2")
|
58
57
|
|
@@ -63,10 +62,9 @@ describe Chef::Knife::Cloud::GoogleServiceHelpers do
|
|
63
62
|
ui = double("ui")
|
64
63
|
expect(tester).to receive(:ui).and_return(ui)
|
65
64
|
expect(tester).to receive(:locate_config_value).with(:gce_project).and_return("project")
|
66
|
-
expect(tester).to receive(:locate_config_value).with(:gce_zone).and_return(nil)
|
67
65
|
expect(tester).to receive(:locate_config_value).with(:key1).and_return("value1")
|
68
66
|
expect(tester).to receive(:locate_config_value).with(:key2).and_return(nil)
|
69
|
-
expect(ui).to receive(:error).with("The following required parameters are missing:
|
67
|
+
expect(ui).to receive(:error).with("The following required parameters are missing: key2")
|
70
68
|
expect { tester.check_for_missing_config_values!(:key1, :key2) }.to raise_error(RuntimeError)
|
71
69
|
end
|
72
70
|
end
|
@@ -21,7 +21,12 @@ require "spec_helper"
|
|
21
21
|
require "chef/knife/google_disk_create"
|
22
22
|
require "support/shared_examples_for_command"
|
23
23
|
|
24
|
+
class Tester
|
25
|
+
include Chef::Knife::Cloud::GoogleServiceHelpers
|
26
|
+
end
|
27
|
+
|
24
28
|
describe Chef::Knife::Cloud::GoogleDiskCreate do
|
29
|
+
let(:tester) { Tester.new }
|
25
30
|
let(:command) { described_class.new(%w{disk1}) }
|
26
31
|
let(:service) { double("service") }
|
27
32
|
|
@@ -38,7 +43,7 @@ describe Chef::Knife::Cloud::GoogleDiskCreate do
|
|
38
43
|
end
|
39
44
|
|
40
45
|
it "checks for missing config values" do
|
41
|
-
expect(command).to receive(:check_for_missing_config_values!).with(:disk_size, :disk_type)
|
46
|
+
expect(command).to receive(:check_for_missing_config_values!).with(:gce_zone, :disk_size, :disk_type)
|
42
47
|
|
43
48
|
command.validate_params!
|
44
49
|
end
|
@@ -52,6 +57,14 @@ describe Chef::Knife::Cloud::GoogleDiskCreate do
|
|
52
57
|
expect { command.validate_params! }.to raise_error(RuntimeError, "Disk size must be between 10 and 10,000")
|
53
58
|
end
|
54
59
|
|
60
|
+
it "raises an exception if the gce_project is missing" do
|
61
|
+
ui = double("ui")
|
62
|
+
expect(tester).to receive(:ui).and_return(ui)
|
63
|
+
expect(tester).to receive(:locate_config_value).with(:gce_project).and_return(nil)
|
64
|
+
expect(ui).to receive(:error).with("The following required parameters are missing: gce_project")
|
65
|
+
expect { tester.check_for_missing_config_values! }.to raise_error(RuntimeError)
|
66
|
+
end
|
67
|
+
|
55
68
|
context "when no disk name is provided" do
|
56
69
|
let(:command) { described_class.new }
|
57
70
|
it "raises an exception" do
|
@@ -21,7 +21,12 @@ require "spec_helper"
|
|
21
21
|
require "chef/knife/google_disk_delete"
|
22
22
|
require "support/shared_examples_for_command"
|
23
23
|
|
24
|
+
class Tester
|
25
|
+
include Chef::Knife::Cloud::GoogleServiceHelpers
|
26
|
+
end
|
27
|
+
|
24
28
|
describe Chef::Knife::Cloud::GoogleDiskDelete do
|
29
|
+
let(:tester) { Tester.new }
|
25
30
|
let(:command) { described_class.new(%w{disk1 disk2}) }
|
26
31
|
let(:service) { double("service") }
|
27
32
|
|
@@ -37,7 +42,7 @@ describe Chef::Knife::Cloud::GoogleDiskDelete do
|
|
37
42
|
end
|
38
43
|
|
39
44
|
it "checks for missing config values" do
|
40
|
-
expect(command).to receive(:check_for_missing_config_values!)
|
45
|
+
expect(command).to receive(:check_for_missing_config_values!).with(:gce_zone)
|
41
46
|
|
42
47
|
command.validate_params!
|
43
48
|
end
|
@@ -46,6 +51,14 @@ describe Chef::Knife::Cloud::GoogleDiskDelete do
|
|
46
51
|
expect { command.validate_params! }.not_to raise_error
|
47
52
|
end
|
48
53
|
|
54
|
+
it "raises an exception if the gce_project is missing" do
|
55
|
+
ui = double("ui")
|
56
|
+
expect(tester).to receive(:ui).and_return(ui)
|
57
|
+
expect(tester).to receive(:locate_config_value).with(:gce_project).and_return(nil)
|
58
|
+
expect(ui).to receive(:error).with("The following required parameters are missing: gce_project")
|
59
|
+
expect { tester.check_for_missing_config_values! }.to raise_error(RuntimeError)
|
60
|
+
end
|
61
|
+
|
49
62
|
context "when no disk name is provided" do
|
50
63
|
let(:command) { described_class.new }
|
51
64
|
it "raises an exception" do
|
@@ -21,7 +21,12 @@ require "spec_helper"
|
|
21
21
|
require "chef/knife/google_disk_list"
|
22
22
|
require "support/shared_examples_for_command"
|
23
23
|
|
24
|
+
class Tester
|
25
|
+
include Chef::Knife::Cloud::GoogleServiceHelpers
|
26
|
+
end
|
27
|
+
|
24
28
|
describe Chef::Knife::Cloud::GoogleDiskList do
|
29
|
+
let(:tester) { Tester.new }
|
25
30
|
let(:command) { described_class.new }
|
26
31
|
let(:service) { double("service") }
|
27
32
|
|
@@ -33,10 +38,18 @@ describe Chef::Knife::Cloud::GoogleDiskList do
|
|
33
38
|
|
34
39
|
describe "#validate_params!" do
|
35
40
|
it "checks for missing config values" do
|
36
|
-
expect(command).to receive(:check_for_missing_config_values!)
|
41
|
+
expect(command).to receive(:check_for_missing_config_values!).with(:gce_zone)
|
37
42
|
|
38
43
|
command.validate_params!
|
39
44
|
end
|
45
|
+
|
46
|
+
it "raises an exception if the gce_project is missing" do
|
47
|
+
ui = double("ui")
|
48
|
+
expect(tester).to receive(:ui).and_return(ui)
|
49
|
+
expect(tester).to receive(:locate_config_value).with(:gce_project).and_return(nil)
|
50
|
+
expect(ui).to receive(:error).with("The following required parameters are missing: gce_project")
|
51
|
+
expect { tester.check_for_missing_config_values! }.to raise_error(RuntimeError)
|
52
|
+
end
|
40
53
|
end
|
41
54
|
|
42
55
|
describe "#query_resource" do
|
@@ -21,7 +21,12 @@ require "spec_helper"
|
|
21
21
|
require "chef/knife/google_project_quotas"
|
22
22
|
require "support/shared_examples_for_command"
|
23
23
|
|
24
|
+
class Tester
|
25
|
+
include Chef::Knife::Cloud::GoogleServiceHelpers
|
26
|
+
end
|
27
|
+
|
24
28
|
describe Chef::Knife::Cloud::GoogleProjectQuotas do
|
29
|
+
let(:tester) { Tester.new }
|
25
30
|
let(:command) { described_class.new }
|
26
31
|
let(:service) { double("service") }
|
27
32
|
|
@@ -37,6 +42,14 @@ describe Chef::Knife::Cloud::GoogleProjectQuotas do
|
|
37
42
|
|
38
43
|
command.validate_params!
|
39
44
|
end
|
45
|
+
|
46
|
+
it "raises an exception if the gce_project is missing" do
|
47
|
+
ui = double("ui")
|
48
|
+
expect(tester).to receive(:ui).and_return(ui)
|
49
|
+
expect(tester).to receive(:locate_config_value).with(:gce_project).and_return(nil)
|
50
|
+
expect(ui).to receive(:error).with("The following required parameters are missing: gce_project")
|
51
|
+
expect { tester.check_for_missing_config_values! }.to raise_error(RuntimeError)
|
52
|
+
end
|
40
53
|
end
|
41
54
|
|
42
55
|
describe "#query_resource" do
|
@@ -21,7 +21,12 @@ require "spec_helper"
|
|
21
21
|
require "chef/knife/google_region_list"
|
22
22
|
require "support/shared_examples_for_command"
|
23
23
|
|
24
|
+
class Tester
|
25
|
+
include Chef::Knife::Cloud::GoogleServiceHelpers
|
26
|
+
end
|
27
|
+
|
24
28
|
describe Chef::Knife::Cloud::GoogleRegionList do
|
29
|
+
let(:tester) { Tester.new }
|
25
30
|
let(:command) { described_class.new }
|
26
31
|
let(:service) { double("service") }
|
27
32
|
|
@@ -37,6 +42,14 @@ describe Chef::Knife::Cloud::GoogleRegionList do
|
|
37
42
|
|
38
43
|
command.validate_params!
|
39
44
|
end
|
45
|
+
|
46
|
+
it "raises an exception if the gce_project is missing" do
|
47
|
+
ui = double("ui")
|
48
|
+
expect(tester).to receive(:ui).and_return(ui)
|
49
|
+
expect(tester).to receive(:locate_config_value).with(:gce_project).and_return(nil)
|
50
|
+
expect(ui).to receive(:error).with("The following required parameters are missing: gce_project")
|
51
|
+
expect { tester.check_for_missing_config_values! }.to raise_error(RuntimeError)
|
52
|
+
end
|
40
53
|
end
|
41
54
|
|
42
55
|
describe "#query_resource" do
|
@@ -21,7 +21,12 @@ require "spec_helper"
|
|
21
21
|
require "chef/knife/google_region_quotas"
|
22
22
|
require "support/shared_examples_for_command"
|
23
23
|
|
24
|
+
class Tester
|
25
|
+
include Chef::Knife::Cloud::GoogleServiceHelpers
|
26
|
+
end
|
27
|
+
|
24
28
|
describe Chef::Knife::Cloud::GoogleRegionQuotas do
|
29
|
+
let(:tester) { Tester.new }
|
25
30
|
let(:command) { described_class.new }
|
26
31
|
let(:service) { double("service") }
|
27
32
|
|
@@ -37,6 +42,14 @@ describe Chef::Knife::Cloud::GoogleRegionQuotas do
|
|
37
42
|
|
38
43
|
command.validate_params!
|
39
44
|
end
|
45
|
+
|
46
|
+
it "raises an exception if the gce_project is missing" do
|
47
|
+
ui = double("ui")
|
48
|
+
expect(tester).to receive(:ui).and_return(ui)
|
49
|
+
expect(tester).to receive(:locate_config_value).with(:gce_project).and_return(nil)
|
50
|
+
expect(ui).to receive(:error).with("The following required parameters are missing: gce_project")
|
51
|
+
expect { tester.check_for_missing_config_values! }.to raise_error(RuntimeError)
|
52
|
+
end
|
40
53
|
end
|
41
54
|
|
42
55
|
describe "#execute_command" do
|
@@ -22,7 +22,12 @@ require "chef/knife/google_server_create"
|
|
22
22
|
require "support/shared_examples_for_command"
|
23
23
|
require "gcewinpass"
|
24
24
|
|
25
|
+
class Tester
|
26
|
+
include Chef::Knife::Cloud::GoogleServiceHelpers
|
27
|
+
end
|
28
|
+
|
25
29
|
describe Chef::Knife::Cloud::GoogleServerCreate do
|
30
|
+
let(:tester) { Tester.new }
|
26
31
|
let(:command) { described_class.new(["test_instance"]) }
|
27
32
|
let(:service) { double("service") }
|
28
33
|
let(:server) { double("server") }
|
@@ -57,7 +62,7 @@ describe Chef::Knife::Cloud::GoogleServerCreate do
|
|
57
62
|
end
|
58
63
|
|
59
64
|
it "checks for missing config values" do
|
60
|
-
expect(command).to receive(:check_for_missing_config_values!).with(:machine_type, :image, :boot_disk_size, :network)
|
65
|
+
expect(command).to receive(:check_for_missing_config_values!).with(:gce_zone, :machine_type, :image, :boot_disk_size, :network)
|
61
66
|
|
62
67
|
command.validate_params!
|
63
68
|
end
|
@@ -67,6 +72,14 @@ describe Chef::Knife::Cloud::GoogleServerCreate do
|
|
67
72
|
expect { command.validate_params! }.to raise_error(RuntimeError)
|
68
73
|
end
|
69
74
|
|
75
|
+
it "raises an exception if the gce_project is missing" do
|
76
|
+
ui = double("ui")
|
77
|
+
expect(tester).to receive(:ui).and_return(ui)
|
78
|
+
expect(tester).to receive(:locate_config_value).with(:gce_project).and_return(nil)
|
79
|
+
expect(ui).to receive(:error).with("The following required parameters are missing: gce_project")
|
80
|
+
expect { tester.check_for_missing_config_values! }.to raise_error(RuntimeError)
|
81
|
+
end
|
82
|
+
|
70
83
|
it "raises an exception if bootstrap is WinRM but no gcloud user email as supplied" do
|
71
84
|
expect(command).to receive(:locate_config_value).with(:bootstrap_protocol).and_return("winrm")
|
72
85
|
expect(command).to receive(:locate_config_value).with(:gce_email).and_return(nil)
|
@@ -21,7 +21,12 @@ require "spec_helper"
|
|
21
21
|
require "chef/knife/google_server_delete"
|
22
22
|
require "support/shared_examples_for_serverdeletecommand"
|
23
23
|
|
24
|
+
class Tester
|
25
|
+
include Chef::Knife::Cloud::GoogleServiceHelpers
|
26
|
+
end
|
27
|
+
|
24
28
|
describe Chef::Knife::Cloud::GoogleServerDelete do
|
29
|
+
let(:tester) { Tester.new }
|
25
30
|
let(:command) { described_class.new(["test_instance"]) }
|
26
31
|
let(:service) { double("service") }
|
27
32
|
|
@@ -36,5 +41,13 @@ describe Chef::Knife::Cloud::GoogleServerDelete do
|
|
36
41
|
expect(command).to receive(:check_for_missing_config_values!)
|
37
42
|
command.validate_params!
|
38
43
|
end
|
44
|
+
|
45
|
+
it "raises an exception if the gce_project is missing" do
|
46
|
+
ui = double("ui")
|
47
|
+
expect(tester).to receive(:ui).and_return(ui)
|
48
|
+
expect(tester).to receive(:locate_config_value).with(:gce_project).and_return(nil)
|
49
|
+
expect(ui).to receive(:error).with("The following required parameters are missing: gce_project")
|
50
|
+
expect { tester.check_for_missing_config_values! }.to raise_error(RuntimeError)
|
51
|
+
end
|
39
52
|
end
|
40
53
|
end
|
@@ -21,7 +21,12 @@ require "spec_helper"
|
|
21
21
|
require "chef/knife/google_server_list"
|
22
22
|
require "support/shared_examples_for_command"
|
23
23
|
|
24
|
+
class Tester
|
25
|
+
include Chef::Knife::Cloud::GoogleServiceHelpers
|
26
|
+
end
|
27
|
+
|
24
28
|
describe Chef::Knife::Cloud::GoogleServerList do
|
29
|
+
let(:tester) { Tester.new }
|
25
30
|
let(:command) { described_class.new }
|
26
31
|
let(:service) { double("service") }
|
27
32
|
|
@@ -33,10 +38,18 @@ describe Chef::Knife::Cloud::GoogleServerList do
|
|
33
38
|
|
34
39
|
describe "#validate_params!" do
|
35
40
|
it "checks for missing config values" do
|
36
|
-
expect(command).to receive(:check_for_missing_config_values!)
|
41
|
+
expect(command).to receive(:check_for_missing_config_values!).with(:gce_zone)
|
37
42
|
|
38
43
|
command.validate_params!
|
39
44
|
end
|
45
|
+
|
46
|
+
it "raises an exception if the gce_project is missing" do
|
47
|
+
ui = double("ui")
|
48
|
+
expect(tester).to receive(:ui).and_return(ui)
|
49
|
+
expect(tester).to receive(:locate_config_value).with(:gce_project).and_return(nil)
|
50
|
+
expect(ui).to receive(:error).with("The following required parameters are missing: gce_project")
|
51
|
+
expect { tester.check_for_missing_config_values! }.to raise_error(RuntimeError)
|
52
|
+
end
|
40
53
|
end
|
41
54
|
|
42
55
|
describe "#format_status_value" do
|
@@ -21,7 +21,12 @@ require "spec_helper"
|
|
21
21
|
require "chef/knife/google_server_show"
|
22
22
|
require "support/shared_examples_for_command"
|
23
23
|
|
24
|
+
class Tester
|
25
|
+
include Chef::Knife::Cloud::GoogleServiceHelpers
|
26
|
+
end
|
27
|
+
|
24
28
|
describe Chef::Knife::Cloud::GoogleServerShow do
|
29
|
+
let(:tester) { Tester.new }
|
25
30
|
let(:command) { described_class.new(["test_instance"]) }
|
26
31
|
let(:service) { double("service") }
|
27
32
|
|
@@ -37,11 +42,19 @@ describe Chef::Knife::Cloud::GoogleServerShow do
|
|
37
42
|
end
|
38
43
|
|
39
44
|
it "checks for missing config values" do
|
40
|
-
expect(command).to receive(:check_for_missing_config_values!)
|
45
|
+
expect(command).to receive(:check_for_missing_config_values!).with(:gce_zone)
|
41
46
|
|
42
47
|
command.validate_params!
|
43
48
|
end
|
44
49
|
|
50
|
+
it "raises an exception if the gce_project is missing" do
|
51
|
+
ui = double("ui")
|
52
|
+
expect(tester).to receive(:ui).and_return(ui)
|
53
|
+
expect(tester).to receive(:locate_config_value).with(:gce_project).and_return(nil)
|
54
|
+
expect(ui).to receive(:error).with("The following required parameters are missing: gce_project")
|
55
|
+
expect { tester.check_for_missing_config_values! }.to raise_error(RuntimeError)
|
56
|
+
end
|
57
|
+
|
45
58
|
context "when no server name is provided" do
|
46
59
|
let(:command) { described_class.new }
|
47
60
|
|
@@ -21,7 +21,12 @@ require "spec_helper"
|
|
21
21
|
require "chef/knife/google_zone_list"
|
22
22
|
require "support/shared_examples_for_command"
|
23
23
|
|
24
|
+
class Tester
|
25
|
+
include Chef::Knife::Cloud::GoogleServiceHelpers
|
26
|
+
end
|
27
|
+
|
24
28
|
describe Chef::Knife::Cloud::GoogleZoneList do
|
29
|
+
let(:tester) { Tester.new }
|
25
30
|
let(:command) { described_class.new }
|
26
31
|
let(:service) { double("service") }
|
27
32
|
|
@@ -37,6 +42,14 @@ describe Chef::Knife::Cloud::GoogleZoneList do
|
|
37
42
|
|
38
43
|
command.validate_params!
|
39
44
|
end
|
45
|
+
|
46
|
+
it "raises an exception if the gce_project is missing" do
|
47
|
+
ui = double("ui")
|
48
|
+
expect(tester).to receive(:ui).and_return(ui)
|
49
|
+
expect(tester).to receive(:locate_config_value).with(:gce_project).and_return(nil)
|
50
|
+
expect(ui).to receive(:error).with("The following required parameters are missing: gce_project")
|
51
|
+
expect { tester.check_for_missing_config_values! }.to raise_error(RuntimeError)
|
52
|
+
end
|
40
53
|
end
|
41
54
|
|
42
55
|
describe "#query_resource" do
|
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: 3.3.
|
4
|
+
version: 3.3.6
|
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: 2018-
|
16
|
+
date: 2018-11-20 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: knife-cloud
|
@@ -63,20 +63,6 @@ dependencies:
|
|
63
63
|
- - "~>"
|
64
64
|
- !ruby/object:Gem::Version
|
65
65
|
version: '1.1'
|
66
|
-
- !ruby/object:Gem::Dependency
|
67
|
-
name: github_changelog_generator
|
68
|
-
requirement: !ruby/object:Gem::Requirement
|
69
|
-
requirements:
|
70
|
-
- - ">="
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
version: '0'
|
73
|
-
type: :development
|
74
|
-
prerelease: false
|
75
|
-
version_requirements: !ruby/object:Gem::Requirement
|
76
|
-
requirements:
|
77
|
-
- - ">="
|
78
|
-
- !ruby/object:Gem::Version
|
79
|
-
version: '0'
|
80
66
|
description: Google Compute Engine Support for Chef's Knife Command
|
81
67
|
email:
|
82
68
|
- paulrossman@google.com
|
@@ -101,6 +87,7 @@ files:
|
|
101
87
|
- README.md
|
102
88
|
- RELEASE_NOTES.md
|
103
89
|
- Rakefile
|
90
|
+
- TESTING.md
|
104
91
|
- VERSION
|
105
92
|
- knife-google.gemspec
|
106
93
|
- lib/chef/knife/cloud/google_service.rb
|