knife-openstack 1.3.2 → 2.0.0
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/.github/ISSUE_TEMPLATE.md +21 -0
- data/.gitignore +5 -0
- data/.travis.yml +9 -7
- data/CHANGELOG.md +174 -92
- data/Gemfile +15 -3
- data/README.md +96 -68
- data/Rakefile +19 -6
- data/knife-openstack.gemspec +17 -15
- data/lib/chef/knife/cloud/openstack_server_create_options.rb +36 -35
- data/lib/chef/knife/cloud/openstack_service.rb +7 -6
- data/lib/chef/knife/cloud/openstack_service_options.rb +18 -17
- data/lib/chef/knife/openstack_flavor_list.rb +11 -10
- data/lib/chef/knife/openstack_floating_ip_allocate.rb +13 -12
- data/lib/chef/knife/openstack_floating_ip_associate.rb +9 -8
- data/lib/chef/knife/openstack_floating_ip_disassociate.rb +9 -8
- data/lib/chef/knife/openstack_floating_ip_list.rb +10 -9
- data/lib/chef/knife/openstack_floating_ip_release.rb +7 -6
- data/lib/chef/knife/openstack_group_list.rb +13 -12
- data/lib/chef/knife/openstack_helpers.rb +8 -7
- data/lib/chef/knife/openstack_image_list.rb +14 -13
- data/lib/chef/knife/openstack_network_list.rb +10 -9
- data/lib/chef/knife/openstack_server_create.rb +57 -56
- data/lib/chef/knife/openstack_server_delete.rb +7 -6
- data/lib/chef/knife/openstack_server_list.rb +16 -15
- data/lib/chef/knife/openstack_server_show.rb +17 -16
- data/lib/chef/knife/openstack_volume_list.rb +10 -9
- data/lib/knife-openstack/version.rb +3 -2
- data/spec/functional/flavor_list_func_spec.rb +13 -12
- data/spec/functional/floating_ip_list_func_spec.rb +14 -13
- data/spec/functional/group_list_func_spec.rb +29 -28
- data/spec/functional/image_list_func_spec.rb +15 -14
- data/spec/functional/network_list_func_spec.rb +13 -12
- data/spec/functional/server_create_func_spec.rb +29 -28
- data/spec/functional/server_delete_func_spec.rb +18 -17
- data/spec/functional/server_list_func_spec.rb +43 -42
- data/spec/functional/server_show_func_spec.rb +7 -6
- data/spec/functional/volume_list_func_spec.rb +12 -11
- data/spec/integration/cleanup.rb +6 -5
- data/spec/integration/openstack_spec.rb +287 -286
- data/spec/spec_context.rb +10 -9
- data/spec/spec_helper.rb +38 -37
- data/spec/unit/openstack_flavor_list_spec.rb +6 -5
- data/spec/unit/openstack_floating_ip_allocate_spec.rb +14 -13
- data/spec/unit/openstack_floating_ip_associate_spec.rb +11 -10
- data/spec/unit/openstack_floating_ip_disassociate_spec.rb +12 -11
- data/spec/unit/openstack_floating_ip_list_spec.rb +6 -5
- data/spec/unit/openstack_floating_ip_release_spec.rb +13 -12
- data/spec/unit/openstack_group_list_spec.rb +11 -10
- data/spec/unit/openstack_image_list_spec.rb +6 -5
- data/spec/unit/openstack_network_list_spec.rb +8 -7
- data/spec/unit/openstack_server_create_spec.rb +131 -130
- data/spec/unit/openstack_server_delete_spec.rb +8 -7
- data/spec/unit/openstack_server_list_spec.rb +6 -5
- data/spec/unit/openstack_server_show_spec.rb +10 -9
- data/spec/unit/openstack_service_spec.rb +26 -25
- data/spec/unit/openstack_volume_list_spec.rb +6 -5
- metadata +9 -105
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Author:: Prabhu Das (<prabhu.das@clogeny.com>)
|
3
4
|
# Author:: Mukta Aphale (<mukta.aphale@clogeny.com>)
|
@@ -18,15 +19,15 @@
|
|
18
19
|
# See the License for the specific language governing permissions and
|
19
20
|
# limitations under the License.
|
20
21
|
|
21
|
-
require
|
22
|
-
require
|
23
|
-
require
|
24
|
-
require
|
22
|
+
require "spec_helper"
|
23
|
+
require "chef/knife/openstack_server_delete"
|
24
|
+
require "chef/knife/cloud/openstack_service"
|
25
|
+
require "support/shared_examples_for_serverdeletecommand"
|
25
26
|
|
26
27
|
describe Chef::Knife::Cloud::OpenstackServerDelete do
|
27
28
|
it_behaves_like Chef::Knife::Cloud::ServerDeleteCommand, Chef::Knife::Cloud::OpenstackServerDelete.new
|
28
29
|
|
29
|
-
include_context
|
30
|
+
include_context "#validate!", Chef::Knife::Cloud::OpenstackServerDelete.new
|
30
31
|
|
31
32
|
let (:instance) { Chef::Knife::Cloud::OpenstackServerDelete.new }
|
32
33
|
|
@@ -34,8 +35,8 @@ describe Chef::Knife::Cloud::OpenstackServerDelete do
|
|
34
35
|
allow(instance).to receive(:exit)
|
35
36
|
end
|
36
37
|
|
37
|
-
describe
|
38
|
-
it
|
38
|
+
describe "#create_service_instance" do
|
39
|
+
it "return OpenstackService instance" do
|
39
40
|
expect(instance.create_service_instance).to be_an_instance_of(Chef::Knife::Cloud::OpenstackService)
|
40
41
|
end
|
41
42
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Author:: Mukta Aphale (<mukta.aphale@clogeny.com>)
|
3
4
|
# Author:: Siddheshwar More (<siddheshwar.more@clogeny.com>)
|
@@ -17,15 +18,15 @@
|
|
17
18
|
# See the License for the specific language governing permissions and
|
18
19
|
# limitations under the License.
|
19
20
|
|
20
|
-
require
|
21
|
-
require
|
22
|
-
require
|
23
|
-
require
|
21
|
+
require "spec_helper"
|
22
|
+
require "chef/knife/openstack_server_list"
|
23
|
+
require "chef/knife/cloud/openstack_service"
|
24
|
+
require "support/shared_examples_for_command"
|
24
25
|
|
25
26
|
describe Chef::Knife::Cloud::OpenstackServerList do
|
26
27
|
it_behaves_like Chef::Knife::Cloud::Command, Chef::Knife::Cloud::OpenstackServerList.new
|
27
28
|
|
28
|
-
include_context
|
29
|
+
include_context "#validate!", Chef::Knife::Cloud::OpenstackServerList.new
|
29
30
|
|
30
31
|
let (:instance) { Chef::Knife::Cloud::OpenstackServerList.new }
|
31
32
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Author:: Ameya Varade (<ameya.varade@clogeny.com>)
|
3
4
|
# Copyright:: Copyright (c) 2013-2014 Chef Software, Inc.
|
@@ -15,26 +16,26 @@
|
|
15
16
|
# See the License for the specific language governing permissions and
|
16
17
|
# limitations under the License.
|
17
18
|
|
18
|
-
require
|
19
|
-
require
|
20
|
-
require
|
21
|
-
require
|
19
|
+
require "spec_helper"
|
20
|
+
require "chef/knife/openstack_server_show"
|
21
|
+
require "chef/knife/cloud/openstack_service"
|
22
|
+
require "support/shared_examples_for_command"
|
22
23
|
|
23
24
|
describe Chef::Knife::Cloud::OpenstackServerShow do
|
24
25
|
it_behaves_like Chef::Knife::Cloud::Command, Chef::Knife::Cloud::OpenstackServerShow.new
|
25
26
|
|
26
|
-
include_context
|
27
|
+
include_context "#validate!", Chef::Knife::Cloud::OpenstackServerShow.new
|
27
28
|
|
28
29
|
let (:instance) { Chef::Knife::Cloud::OpenstackServerShow.new }
|
29
30
|
|
30
|
-
context
|
31
|
+
context "#validate_params!" do
|
31
32
|
before(:each) do
|
32
|
-
Chef::Config[:knife][:instance_id] =
|
33
|
+
Chef::Config[:knife][:instance_id] = "instance_id"
|
33
34
|
end
|
34
35
|
|
35
|
-
it
|
36
|
+
it "raise error on instance_id missing" do
|
36
37
|
Chef::Config[:knife].delete(:instance_id)
|
37
|
-
expect(instance.ui).to receive(:error).with(
|
38
|
+
expect(instance.ui).to receive(:error).with("You must provide a valid Instance Id")
|
38
39
|
expect { instance.validate_params! }.to raise_error(Chef::Knife::Cloud::CloudExceptions::ValidationError)
|
39
40
|
end
|
40
41
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Author:: Mukta Aphale (<mukta.aphale@clogeny.com>)
|
3
4
|
# Author:: Siddheshwar More (<siddheshwar.more@clogeny.com>)
|
@@ -17,13 +18,13 @@
|
|
17
18
|
# See the License for the specific language governing permissions and
|
18
19
|
# limitations under the License.
|
19
20
|
|
20
|
-
require
|
21
|
-
require
|
21
|
+
require "spec_helper"
|
22
|
+
require "chef/knife/cloud/openstack_service"
|
22
23
|
|
23
24
|
describe Chef::Knife::Cloud::OpenstackService do
|
24
|
-
describe
|
25
|
+
describe "#add_api_endpoint" do
|
25
26
|
before(:each) do
|
26
|
-
@api_endpoint =
|
27
|
+
@api_endpoint = "https://test_openstack_api_endpoint"
|
27
28
|
Chef::Config[:knife][:api_endpoint] = @api_endpoint
|
28
29
|
@instance = Chef::Knife::Cloud::OpenstackService.new
|
29
30
|
end
|
@@ -32,13 +33,13 @@ describe Chef::Knife::Cloud::OpenstackService do
|
|
32
33
|
Chef::Config[:knife].delete(:api_endpoint)
|
33
34
|
end
|
34
35
|
|
35
|
-
it
|
36
|
+
it "sets the api_endpoint in auth params" do
|
36
37
|
expect(@instance.instance_variable_get(:@auth_params)[:openstack_auth_url]).to be_nil
|
37
38
|
@instance.add_api_endpoint
|
38
39
|
expect(@instance.instance_variable_get(:@auth_params)[:openstack_auth_url]).to be == @api_endpoint
|
39
40
|
end
|
40
41
|
|
41
|
-
it
|
42
|
+
it "does not set the endpoint when --api-endpoint option is missing" do
|
42
43
|
Chef::Config[:knife][:api_endpoint] = nil
|
43
44
|
expect(@instance.instance_variable_get(:@auth_params)[:openstack_auth_url]).to be_nil
|
44
45
|
@instance.add_api_endpoint
|
@@ -51,34 +52,34 @@ describe Chef::Knife::Cloud::OpenstackService do
|
|
51
52
|
end
|
52
53
|
end
|
53
54
|
|
54
|
-
describe
|
55
|
+
describe "#get_server" do
|
55
56
|
before(:each) do
|
56
57
|
@instance = Chef::Knife::Cloud::OpenstackService.new
|
57
58
|
allow(@instance).to receive_message_chain(:connection, :servers, :get)
|
58
59
|
end
|
59
60
|
|
60
|
-
context
|
61
|
-
it
|
62
|
-
server_id =
|
61
|
+
context "when instance_id given" do
|
62
|
+
it "return server" do
|
63
|
+
server_id = "123f456-123-453e-9c0c-12345a6789"
|
63
64
|
expect(@instance.connection.servers).to receive(:get).and_return(server_id)
|
64
65
|
expect(@instance.connection.servers).to_not receive(:all)
|
65
66
|
expect(@instance.get_server(server_id)).to be == server_id
|
66
67
|
end
|
67
68
|
end
|
68
69
|
|
69
|
-
context
|
70
|
+
context "when instance_name given" do
|
70
71
|
before(:each) do
|
71
72
|
expect(@instance.connection.servers).to receive(:get).and_return(nil)
|
72
73
|
end
|
73
74
|
|
74
|
-
let (:server_name) {
|
75
|
+
let (:server_name) { "testname" }
|
75
76
|
|
76
|
-
it
|
77
|
+
it "return server" do
|
77
78
|
expect(@instance.connection.servers).to receive(:all).with(name: server_name).and_return([server_name])
|
78
79
|
expect(@instance.get_server(server_name)).to be == server_name
|
79
80
|
end
|
80
81
|
|
81
|
-
it
|
82
|
+
it "raise error if multiple server matches found for given instance name" do
|
82
83
|
error_message = "Multiple server matches found for '#{server_name}', use an instance_id to be more specific."
|
83
84
|
expect(@instance.connection.servers).to receive(:all).with(name: server_name).and_return([server_name, server_name])
|
84
85
|
allow(@instance).to receive_message_chain(:ui, :fatal)
|
@@ -87,39 +88,39 @@ describe Chef::Knife::Cloud::OpenstackService do
|
|
87
88
|
end
|
88
89
|
end
|
89
90
|
|
90
|
-
describe
|
91
|
+
describe "#get_auth_params" do
|
91
92
|
let(:auth_params) do
|
92
93
|
Chef::Knife::Cloud::OpenstackService.new.instance_variable_get(:@auth_params)
|
93
94
|
end
|
94
95
|
|
95
|
-
it
|
96
|
+
it "sets ssl_verify_peer to false when openstack_insecure is true" do
|
96
97
|
Chef::Config[:knife][:openstack_insecure] = true
|
97
98
|
expect(auth_params[:connection_options][:ssl_verify_peer]).to be false
|
98
99
|
end
|
99
100
|
|
100
|
-
it
|
101
|
+
it "only copies openstack options from Fog" do
|
101
102
|
params = auth_params.keys - [:provider, :connection_options]
|
102
|
-
expect(params.all? { |p| p.to_s.start_with?(
|
103
|
+
expect(params.all? { |p| p.to_s.start_with?("openstack") }).to be true
|
103
104
|
end
|
104
105
|
|
105
|
-
context
|
106
|
+
context "when openstack_password is set" do
|
106
107
|
before(:each) do
|
107
|
-
@expected =
|
108
|
+
@expected = "password"
|
108
109
|
Chef::Config[:knife][:openstack_password] = @expected
|
109
110
|
end
|
110
111
|
|
111
|
-
it
|
112
|
+
it "sets openstack_api_key from openstack_password" do
|
112
113
|
expect(auth_params[:openstack_api_key]).to be == @expected
|
113
114
|
end
|
114
115
|
|
115
|
-
it
|
116
|
-
Chef::Config[:knife][:openstack_api_key] =
|
116
|
+
it "prefers openstack_password over openstack_api_key" do
|
117
|
+
Chef::Config[:knife][:openstack_api_key] = "unexpected"
|
117
118
|
expect(auth_params[:openstack_api_key]).to be == @expected
|
118
119
|
end
|
119
120
|
end
|
120
121
|
|
121
|
-
it
|
122
|
-
@expected =
|
122
|
+
it "uses openstack_api_key if openstack_password is not set" do
|
123
|
+
@expected = "password"
|
123
124
|
Chef::Config[:knife][:openstack_api_key] = @expected
|
124
125
|
expect(auth_params[:openstack_api_key]).to be == @expected
|
125
126
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Author:: Mukta Aphale (<mukta.aphale@clogeny.com>)
|
3
4
|
# Author:: Siddheshwar More (<siddheshwar.more@clogeny.com>)
|
@@ -17,13 +18,13 @@
|
|
17
18
|
# See the License for the specific language governing permissions and
|
18
19
|
# limitations under the License.
|
19
20
|
|
20
|
-
require
|
21
|
-
require
|
22
|
-
require
|
23
|
-
require
|
21
|
+
require "spec_helper"
|
22
|
+
require "chef/knife/openstack_volume_list"
|
23
|
+
require "chef/knife/cloud/openstack_service"
|
24
|
+
require "support/shared_examples_for_command"
|
24
25
|
|
25
26
|
describe Chef::Knife::Cloud::OpenstackVolumeList do
|
26
27
|
it_behaves_like Chef::Knife::Cloud::Command, Chef::Knife::Cloud::OpenstackVolumeList.new
|
27
28
|
|
28
|
-
include_context
|
29
|
+
include_context "#validate!", Chef::Knife::Cloud::OpenstackVolumeList.new
|
29
30
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knife-openstack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- JJ Asghar
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fog
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '12'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '12'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: knife-cloud
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,104 +52,6 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 1.2.0
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: bundler
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: rubocop
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: rake
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: rspec-core
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - ">="
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - ">="
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: rspec-expectations
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - ">="
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - ">="
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '0'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: rspec-mocks
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - ">="
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '0'
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - ">="
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '0'
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: rspec_junit_formatter
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - ">="
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: '0'
|
146
|
-
type: :development
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - ">="
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '0'
|
153
55
|
description: A Chef knife plugin for OpenStack clouds.
|
154
56
|
email:
|
155
57
|
- jj@chef.io
|
@@ -159,6 +61,7 @@ extra_rdoc_files:
|
|
159
61
|
- README.md
|
160
62
|
- LICENSE
|
161
63
|
files:
|
64
|
+
- ".github/ISSUE_TEMPLATE.md"
|
162
65
|
- ".gitignore"
|
163
66
|
- ".travis.yml"
|
164
67
|
- CHANGELOG.md
|
@@ -218,7 +121,8 @@ files:
|
|
218
121
|
- spec/unit/openstack_service_spec.rb
|
219
122
|
- spec/unit/openstack_volume_list_spec.rb
|
220
123
|
homepage: https://github.com/chef/knife-openstack
|
221
|
-
licenses:
|
124
|
+
licenses:
|
125
|
+
- Apache-2.0
|
222
126
|
metadata: {}
|
223
127
|
post_install_message:
|
224
128
|
rdoc_options: []
|
@@ -228,7 +132,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
228
132
|
requirements:
|
229
133
|
- - ">="
|
230
134
|
- !ruby/object:Gem::Version
|
231
|
-
version:
|
135
|
+
version: 2.2.2
|
232
136
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
233
137
|
requirements:
|
234
138
|
- - ">="
|
@@ -236,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
236
140
|
version: '0'
|
237
141
|
requirements: []
|
238
142
|
rubyforge_project:
|
239
|
-
rubygems_version: 2.
|
143
|
+
rubygems_version: 2.5.1
|
240
144
|
signing_key:
|
241
145
|
specification_version: 4
|
242
146
|
summary: A Chef knife plugin for OpenStack clouds.
|