knife-openstack 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +2 -2
- data/CHANGELOG.md +7 -0
- data/Gemfile +0 -1
- data/README.md +12 -8
- data/knife-openstack.gemspec +5 -5
- data/lib/chef/knife/cloud/openstack_service.rb +2 -0
- data/lib/chef/knife/openstack_server_create.rb +1 -1
- data/lib/knife-openstack/version.rb +1 -1
- data/spec/{unit/validate_spec.rb → spec_context.rb} +2 -2
- data/spec/spec_helper.rb +4 -3
- data/spec/unit/openstack_flavor_list_spec.rb +0 -1
- data/spec/unit/openstack_group_list_spec.rb +0 -1
- data/spec/unit/openstack_image_list_spec.rb +0 -1
- data/spec/unit/openstack_network_list_spec.rb +0 -1
- data/spec/unit/openstack_server_create_spec.rb +21 -12
- data/spec/unit/openstack_server_delete_spec.rb +0 -1
- data/spec/unit/openstack_server_list_spec.rb +0 -1
- data/spec/unit/openstack_server_show_spec.rb +1 -2
- metadata +10 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3ea242685d75f01b20a70637b61cf4ab62c709c3
|
4
|
+
data.tar.gz: 43e9ef99f3d74ef0d31c94aa816fc74c34d980f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 913697f43e80f4b1f7fa9a2bd0f7076e861cc91a30daacbe415d51f8bb72c02c03b65201274709d991bba36b9a8784dff84050833943caddf27671ba273f27e1
|
7
|
+
data.tar.gz: 983ad39ab270c263102031a1027aa7c8d51f8a0246ae4683aa9df06c70f20519399aec1c30aad535e0df731b1e8f80f40cee5078cf7d2e5934499197fcb4aa92
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
## v1.1.0
|
2
|
+
* Update the travis tests
|
3
|
+
* Added Multi-region support
|
4
|
+
* Updated the README to represent the changes in installing Chef.
|
5
|
+
* Updated travis.yml to reflect newer 2.y.z releases of Ruby
|
6
|
+
|
7
|
+
## v1.0.0
|
1
8
|
|
2
9
|
* Implementation using knife-cloud gem
|
3
10
|
* KNIFE-310 "knife openstack server list" will fail with boot from volume instances
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
[![Build Status](https://travis-ci.org/
|
1
|
+
[![Build Status](https://travis-ci.org/chef/knife-openstack.png)](https://travis-ci.org/chef/knife-openstack)
|
2
2
|
|
3
3
|
Knife OpenStack
|
4
4
|
===============
|
5
5
|
|
6
|
-
This is the official Chef Knife plugin for OpenStack Compute (Nova). This plugin gives knife the ability to create, bootstrap and manage instances in OpenStack Compute clouds. It has been tested against the `Diablo` through `
|
6
|
+
This is the official Chef Knife plugin for OpenStack Compute (Nova). This plugin gives knife the ability to create, bootstrap and manage instances in OpenStack Compute clouds. It has been tested against the `Diablo` through `Juno` releases in configurations using Keystone against the OpenStack API (as opposed to the EC2 API).
|
7
7
|
|
8
8
|
Please refer to the [CHANGELOG](CHANGELOG.md) for version history and known issues.
|
9
9
|
|
@@ -11,12 +11,14 @@ Please refer to the [CHANGELOG](CHANGELOG.md) for version history and known issu
|
|
11
11
|
|
12
12
|
Be sure you are running the latest version Chef. Versions earlier than 0.10.0 don't support plugins:
|
13
13
|
|
14
|
-
$
|
15
|
-
|
14
|
+
$ curl -L https://chef.io/chef/install.sh > /tmp/install.sh && sudo bash /tmp/install.sh
|
15
|
+
|
16
16
|
This plugin is distributed as a Ruby Gem. To install it, run:
|
17
17
|
|
18
|
+
$ chef gem install knife-openstack
|
19
|
+
$ # OR
|
18
20
|
$ gem install knife-openstack
|
19
|
-
|
21
|
+
|
20
22
|
Depending on your system's configuration, you may need to run this command with root privileges.
|
21
23
|
|
22
24
|
# Configuration #
|
@@ -28,6 +30,7 @@ In order to communicate with an OpenStack API you will need to tell Knife your O
|
|
28
30
|
knife[:openstack_username] = "Your OpenStack Dashboard username"
|
29
31
|
knife[:openstack_password] = "Your OpenStack Dashboard password"
|
30
32
|
knife[:openstack_tenant] = "Your OpenStack tenant name"
|
33
|
+
knife[:openstack_region] = "Your OpenStack Region"
|
31
34
|
|
32
35
|
If your knife.rb file will be checked into a SCM system (ie readable by others) you may want to read the values from environment variables. For example, using the conventions of [OpenStack's RC file](http://docs.openstack.org/user-guide/content/cli_openrc.html) (note the `openstack_auth_url`):
|
33
36
|
|
@@ -35,6 +38,7 @@ If your knife.rb file will be checked into a SCM system (ie readable by others)
|
|
35
38
|
knife[:openstack_username] = "#{ENV['OS_USERNAME']}"
|
36
39
|
knife[:openstack_password] = "#{ENV['OS_PASSWORD']}"
|
37
40
|
knife[:openstack_tenant] = "#{ENV['OS_TENANT_NAME']}"
|
41
|
+
knife[:openstack_region] = "#{ENV['OS_region_NAME']}"
|
38
42
|
|
39
43
|
If your OpenStack deployment is over SSL, but does not have a valid certificate, you can add the following option to bypass SSL check:
|
40
44
|
|
@@ -114,13 +118,13 @@ Lists the networks available to the currently configured OpenStack account. This
|
|
114
118
|
|
115
119
|
# License #
|
116
120
|
|
117
|
-
Author:: Seth Chisamore (<schisamo@
|
121
|
+
Author:: Seth Chisamore (<schisamo@chef.io>)
|
118
122
|
|
119
|
-
Author:: Matt Ray (<matt@
|
123
|
+
Author:: Matt Ray (<matt@chef.io>)
|
120
124
|
|
121
125
|
Author:: Chirag Jog (<chirag@clogeny.com>)
|
122
126
|
|
123
|
-
Copyright:: Copyright (c) 2011-
|
127
|
+
Copyright:: Copyright (c) 2011-2015 Chef Software, Inc.
|
124
128
|
|
125
129
|
License:: Apache License, Version 2.0
|
126
130
|
|
data/knife-openstack.gemspec
CHANGED
@@ -8,11 +8,11 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.platform = Gem::Platform::RUBY
|
9
9
|
s.has_rdoc = true
|
10
10
|
s.extra_rdoc_files = ["README.md", "LICENSE" ]
|
11
|
-
s.authors = ["
|
12
|
-
s.email = ["
|
13
|
-
s.homepage = "https://github.com/
|
14
|
-
s.summary = %q{
|
15
|
-
s.description = %q{
|
11
|
+
s.authors = ["JJ Asghar"]
|
12
|
+
s.email = ["jj@chef.io"]
|
13
|
+
s.homepage = "https://github.com/chef/knife-openstack"
|
14
|
+
s.summary = %q{Chef Compute Support for Chef's Knife Command}
|
15
|
+
s.description = %q{Chef Compute Support for Chef's Knife Command using knife-cloud gem}
|
16
16
|
|
17
17
|
s.files = `git ls-files`.split("\n")
|
18
18
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
@@ -17,6 +17,7 @@ class Chef
|
|
17
17
|
Chef::Log.debug("openstack_tenant #{Chef::Config[:knife][:openstack_tenant]}")
|
18
18
|
Chef::Log.debug("openstack_endpoint_type #{Chef::Config[:knife][:openstack_endpoint_type] || 'publicURL' }")
|
19
19
|
Chef::Log.debug("openstack_insecure #{Chef::Config[:knife][:openstack_insecure].to_s}")
|
20
|
+
Chef::Log.debug("openstack_region #{Chef::Config[:knife][:openstack_region].to_s}")
|
20
21
|
|
21
22
|
super(options.merge({
|
22
23
|
:auth_params => {
|
@@ -26,6 +27,7 @@ class Chef
|
|
26
27
|
:openstack_auth_url => Chef::Config[:knife][:openstack_auth_url],
|
27
28
|
:openstack_endpoint_type => Chef::Config[:knife][:openstack_endpoint_type],
|
28
29
|
:openstack_tenant => Chef::Config[:knife][:openstack_tenant],
|
30
|
+
:openstack_region => Chef::Config[:knife][:openstack_region],
|
29
31
|
:connection_options => {
|
30
32
|
:ssl_verify_peer => !Chef::Config[:knife][:openstack_insecure]
|
31
33
|
}
|
@@ -109,7 +109,7 @@ class Chef
|
|
109
109
|
|
110
110
|
floating_ip_id = get_floating_ip_id(floating_address)
|
111
111
|
# Associate the floating ip via the neutron/network api
|
112
|
-
@service.network.associate_floating_ip(floating_ip_id, port_id,
|
112
|
+
@service.network.associate_floating_ip(floating_ip_id, port_id, {:fixed_ip_address => fixed_ip_address })
|
113
113
|
|
114
114
|
#a bit of a hack, but server.reload takes a long time
|
115
115
|
(server.addresses['public'] ||= []) << {"version"=>4,"addr"=>floating_address}
|
@@ -15,13 +15,12 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
|
18
|
-
require 'spec_helper'
|
19
|
-
|
20
18
|
shared_context "#validate!" do |instance|
|
21
19
|
before(:each) do
|
22
20
|
Chef::Config[:knife][:openstack_username] = "testuser"
|
23
21
|
Chef::Config[:knife][:openstack_password] = "testpassword"
|
24
22
|
Chef::Config[:knife][:openstack_auth_url] = "tsturl"
|
23
|
+
Chef::Config[:knife][:openstack_region] = "test-region"
|
25
24
|
allow(instance).to receive(:exit)
|
26
25
|
end
|
27
26
|
|
@@ -29,6 +28,7 @@ shared_context "#validate!" do |instance|
|
|
29
28
|
Chef::Config[:knife].delete(:openstack_username)
|
30
29
|
Chef::Config[:knife].delete(:openstack_password)
|
31
30
|
Chef::Config[:knife].delete(:openstack_auth_url)
|
31
|
+
Chef::Config[:knife].delete(:openstack_region)
|
32
32
|
end
|
33
33
|
|
34
34
|
it "validate openstack mandatory options" do
|
data/spec/spec_helper.rb
CHANGED
@@ -31,6 +31,7 @@ require 'test/knife-utils/test_bed'
|
|
31
31
|
require 'resource_spec_helper'
|
32
32
|
require 'server_command_common_spec_helper'
|
33
33
|
require 'tempfile'
|
34
|
+
require 'spec_context'
|
34
35
|
|
35
36
|
def find_instance_id(instance_name, file)
|
36
37
|
file.lines.each do |line|
|
@@ -61,7 +62,7 @@ def is_config_present
|
|
61
62
|
err_msg = "\nPlease set #{unset_env_var.join(', ')} environment"
|
62
63
|
err_msg = err_msg + ( unset_env_var.length > 1 ? " variables " : " variable " ) + "for integration tests."
|
63
64
|
puts err_msg unless unset_env_var.empty?
|
64
|
-
|
65
|
+
|
65
66
|
%w(OS_SSH_USER OPENSTACK_PRI_KEY OPENSTACK_KEY_PAIR OS_WINDOWS_SSH_USER OS_WINDOWS_SSH_PASSWORD OS_WINRM_USER OS_WINRM_PASSWORD OS_LINUX_IMAGE OS_LINUX_FLAVOR OS_INVALID_FLAVOR OS_INVALID_FLOATING_IP OS_WINDOWS_FLAVOR OS_WINDOWS_IMAGE OS_WINDOWS_SSH_IMAGE OS_NETWORK_IDS OS_AVAILABILITY_ZONE).each do |os_config_opt|
|
66
67
|
option_value = ENV[os_config_opt] || (openstack_config[os_config_opt] if openstack_config)
|
67
68
|
if option_value.nil?
|
@@ -73,7 +74,7 @@ def is_config_present
|
|
73
74
|
config_err_msg = "\nPlease set #{unset_config_options.join(', ')} config"
|
74
75
|
config_err_msg = config_err_msg + ( unset_config_options.length > 1 ? " options in ../spec/integration/config/environment.yml or as environment variables" : " option in ../spec/integration/config/environment.yml or as environment variable" ) + " for integration tests."
|
75
76
|
puts config_err_msg unless unset_config_options.empty?
|
76
|
-
|
77
|
+
|
77
78
|
is_config
|
78
79
|
end
|
79
80
|
|
@@ -127,4 +128,4 @@ end
|
|
127
128
|
def delete_sh_user_data_file(file)
|
128
129
|
file.close
|
129
130
|
file.unlink
|
130
|
-
end
|
131
|
+
end
|
@@ -21,7 +21,6 @@ require 'spec_helper'
|
|
21
21
|
require 'chef/knife/openstack_flavor_list'
|
22
22
|
require 'chef/knife/cloud/openstack_service'
|
23
23
|
require 'support/shared_examples_for_command'
|
24
|
-
require 'unit/validate_spec'
|
25
24
|
|
26
25
|
describe Chef::Knife::Cloud::OpenstackFlavorList do
|
27
26
|
it_behaves_like Chef::Knife::Cloud::Command, Chef::Knife::Cloud::OpenstackFlavorList.new
|
@@ -21,7 +21,6 @@ require 'spec_helper'
|
|
21
21
|
require 'chef/knife/openstack_group_list'
|
22
22
|
require 'chef/knife/cloud/openstack_service'
|
23
23
|
require 'support/shared_examples_for_command'
|
24
|
-
require 'unit/validate_spec'
|
25
24
|
|
26
25
|
describe Chef::Knife::Cloud::OpenstackGroupList do
|
27
26
|
it_behaves_like Chef::Knife::Cloud::Command, Chef::Knife::Cloud::OpenstackGroupList.new
|
@@ -21,7 +21,6 @@ require 'spec_helper'
|
|
21
21
|
require 'chef/knife/openstack_image_list'
|
22
22
|
require 'chef/knife/cloud/openstack_service'
|
23
23
|
require 'support/shared_examples_for_command'
|
24
|
-
require 'unit/validate_spec'
|
25
24
|
|
26
25
|
describe Chef::Knife::Cloud::OpenstackImageList do
|
27
26
|
it_behaves_like Chef::Knife::Cloud::Command, Chef::Knife::Cloud::OpenstackImageList.new
|
@@ -20,7 +20,6 @@ require 'spec_helper'
|
|
20
20
|
require 'chef/knife/openstack_network_list'
|
21
21
|
require 'chef/knife/cloud/openstack_service'
|
22
22
|
require 'support/shared_examples_for_command'
|
23
|
-
require 'unit/validate_spec'
|
24
23
|
|
25
24
|
describe Chef::Knife::Cloud::OpenstackNetworkList do
|
26
25
|
it_behaves_like Chef::Knife::Cloud::Command, Chef::Knife::Cloud::OpenstackNetworkList.new
|
@@ -53,6 +53,7 @@ describe Chef::Knife::Cloud::OpenstackServerCreate do
|
|
53
53
|
Chef::Config[:knife][:identity_file] = "identity_file"
|
54
54
|
Chef::Config[:knife][:image_os_type] = "linux"
|
55
55
|
Chef::Config[:knife][:openstack_ssh_key_id] = "openstack_ssh_key"
|
56
|
+
Chef::Config[:knife][:openstack_region] = "test-region"
|
56
57
|
end
|
57
58
|
|
58
59
|
after(:all) do
|
@@ -60,6 +61,7 @@ describe Chef::Knife::Cloud::OpenstackServerCreate do
|
|
60
61
|
Chef::Config[:knife].delete(:identity_file)
|
61
62
|
Chef::Config[:knife].delete(:image_os_type)
|
62
63
|
Chef::Config[:knife].delete(:openstack_ssh_key_id)
|
64
|
+
Chef::Config[:knife].delete(:openstack_region)
|
63
65
|
end
|
64
66
|
|
65
67
|
it "run sucessfully on all params exist" do
|
@@ -104,6 +106,7 @@ describe Chef::Knife::Cloud::OpenstackServerCreate do
|
|
104
106
|
expect(@instance.create_options[:server_def][:flavor_ref]).to be == Chef::Config[:knife][:flavor]
|
105
107
|
expect(@instance.create_options[:server_def][:nics]).to be == Chef::Config[:knife][:network_ids]
|
106
108
|
expect(@instance.create_options[:server_def][:metadata]).to be == Chef::Config[:knife][:metadata]
|
109
|
+
expect(@instance.create_options[:server_def][:region]).to be == Chef::Config[:knife][:openstack_region]
|
107
110
|
expect(@instance.create_options[:server_create_timeout]).to be == Chef::Config[:knife][:server_create_timeout]
|
108
111
|
end
|
109
112
|
|
@@ -137,7 +140,7 @@ describe Chef::Knife::Cloud::OpenstackServerCreate do
|
|
137
140
|
allow(Chef::Config[:knife][:network_ids]).to receive(:map).and_return(Chef::Config[:knife][:network_ids].split(","))
|
138
141
|
expect(@instance).to receive(:post_connection_validations)
|
139
142
|
end
|
140
|
-
|
143
|
+
|
141
144
|
it "creates the server_def with multiple nic_ids." do
|
142
145
|
@instance.before_exec_command
|
143
146
|
expect(@instance.create_options[:server_def][:nics]).to be == ["test_network_id1", "test_network_id2"]
|
@@ -165,7 +168,6 @@ describe Chef::Knife::Cloud::OpenstackServerCreate do
|
|
165
168
|
Chef::Config[:knife][:openstack_floating_ip] = "-1"
|
166
169
|
@instance.service = Chef::Knife::Cloud::Service.new
|
167
170
|
@instance.server = double
|
168
|
-
expect(@instance.server).to_not receive(:associate_address)
|
169
171
|
allow(@instance.server).to receive(:addresses).and_return({"public"=>[{"version"=>4, "addr"=>"127.0.1.1"}]})
|
170
172
|
expect(@instance).to receive(:bootstrap)
|
171
173
|
@instance.after_exec_command
|
@@ -175,15 +177,24 @@ describe Chef::Knife::Cloud::OpenstackServerCreate do
|
|
175
177
|
Chef::Config[:knife][:openstack_floating_ip] = nil
|
176
178
|
@instance.service = Chef::Knife::Cloud::Service.new
|
177
179
|
@instance.server = double
|
180
|
+
|
181
|
+
@network = double
|
182
|
+
@ports = ['id' => 'test',
|
183
|
+
'fixed_ips' => ['ip_address' => '127.0.1.1']]
|
184
|
+
allow(@network).to receive(:list_ports).and_return(body: {'ports' => @ports})
|
185
|
+
@floating_ips = ['id' => 'test',
|
186
|
+
'fixed_ips' => ['ip_address' => '127.0.1.1']]
|
187
|
+
allow(@network).to receive(:list_floating_ips).and_return(body: {'floatingips' => @floating_ips})
|
188
|
+
allow(@network).to receive(:associate_floating_ip)
|
189
|
+
allow(@instance.service).to receive(:network).and_return(@network)
|
190
|
+
|
178
191
|
allow(@instance.server).to receive(:addresses).and_return({"public"=>[{"version"=>4, "addr"=>"127.0.1.1"}]})
|
179
192
|
expect(@instance).to receive(:bootstrap)
|
180
|
-
connection = double
|
181
193
|
allow(@instance.service).to receive(:connection).and_return(double)
|
182
194
|
free_floating = Object.new
|
183
195
|
free_floating.define_singleton_method(:fixed_ip) { return nil }
|
184
196
|
free_floating.define_singleton_method(:ip) { return "127.0.0.1" }
|
185
197
|
expect(@instance.service.connection).to receive(:addresses).and_return([free_floating])
|
186
|
-
expect(@instance.server).to receive(:associate_address).with(free_floating.ip)
|
187
198
|
@instance.after_exec_command
|
188
199
|
end
|
189
200
|
|
@@ -194,14 +205,12 @@ describe Chef::Knife::Cloud::OpenstackServerCreate do
|
|
194
205
|
@instance.server = double
|
195
206
|
allow(@instance.server).to receive(:addresses).and_return({"public"=>[{"version"=>4, "addr"=>"127.0.1.1"}]})
|
196
207
|
expect(@instance).to_not receive(:bootstrap)
|
197
|
-
connection = double
|
198
208
|
allow(@instance.service).to receive(:connection).and_return(double)
|
199
209
|
free_floating = Object.new
|
200
210
|
free_floating.define_singleton_method(:fixed_ip) { return "127.0.0.1" }
|
201
211
|
expect(@instance.service.connection).to receive(:addresses).and_return([free_floating])
|
202
|
-
expect(@instance.server).to_not receive(:associate_address)
|
203
212
|
expect { @instance.after_exec_command }.to raise_error(Chef::Knife::Cloud::CloudExceptions::ServerSetupError, "Unable to assign a Floating IP from allocated IPs.")
|
204
|
-
end
|
213
|
+
end
|
205
214
|
end
|
206
215
|
|
207
216
|
describe "#before_bootstrap" do
|
@@ -260,7 +269,7 @@ describe Chef::Knife::Cloud::OpenstackServerCreate do
|
|
260
269
|
allow(@instance.server).to receive(:addresses).and_return({"public"=>[{"version"=>4, "addr"=>nil}]})
|
261
270
|
expect { @instance.before_bootstrap }.to raise_error(Chef::Knife::Cloud::CloudExceptions::BootstrapError, "No IP address available for bootstrapping.")
|
262
271
|
end
|
263
|
-
|
272
|
+
|
264
273
|
it "set public ip as default bootstrap network is public" do
|
265
274
|
allow(@instance.server).to receive(:addresses).and_return({"private"=>[{"version"=>4, "addr"=>"127.0.0.1"}], "public"=>[{"version"=>4, "addr"=>"127.0.0.2"}]})
|
266
275
|
@instance.before_bootstrap
|
@@ -290,7 +299,7 @@ describe Chef::Knife::Cloud::OpenstackServerCreate do
|
|
290
299
|
expect(@instance.server).to_not receive(:password)
|
291
300
|
@instance.before_bootstrap
|
292
301
|
expect(@instance.config[:ssh_password]).to be == server_password
|
293
|
-
end
|
302
|
+
end
|
294
303
|
end
|
295
304
|
|
296
305
|
describe "#post_connection_validations" do
|
@@ -315,7 +324,7 @@ describe Chef::Knife::Cloud::OpenstackServerCreate do
|
|
315
324
|
|
316
325
|
it "raise error on invalid floating IP" do
|
317
326
|
allow(@instance).to receive(:is_flavor_valid?).and_return(true)
|
318
|
-
allow(@instance).to receive(:is_image_valid?).and_return(true)
|
327
|
+
allow(@instance).to receive(:is_image_valid?).and_return(true)
|
319
328
|
expect(@instance).to receive(:is_floating_ip_valid?).and_return(false)
|
320
329
|
expect { @instance.post_connection_validations }.to raise_error(Chef::Knife::Cloud::CloudExceptions::ValidationError, " You have either requested an invalid floating IP address or none are available..")
|
321
330
|
end
|
@@ -342,7 +351,7 @@ describe Chef::Knife::Cloud::OpenstackServerCreate do
|
|
342
351
|
expect(@instance.service).to receive_message_chain(:connection, :addresses).and_return([])
|
343
352
|
expect(@instance.is_floating_ip_valid?).to be false
|
344
353
|
end
|
345
|
-
|
354
|
+
|
346
355
|
context "when floating ip requested without value" do
|
347
356
|
it "returns true if fixed_ip is nil" do
|
348
357
|
Chef::Config[:knife][:openstack_floating_ip] = nil
|
@@ -405,7 +414,7 @@ describe Chef::Knife::Cloud::OpenstackServerCreate do
|
|
405
414
|
after(:each) do
|
406
415
|
Chef::Config[:knife].delete(:flavor)
|
407
416
|
end
|
408
|
-
|
417
|
+
|
409
418
|
it "returns false on invalid flavor" do
|
410
419
|
expect(@instance.service).to receive_message_chain(:get_flavor).and_return(nil)
|
411
420
|
expect(@instance.is_flavor_valid?).to be false
|
@@ -22,7 +22,6 @@ require 'spec_helper'
|
|
22
22
|
require 'chef/knife/openstack_server_delete'
|
23
23
|
require 'chef/knife/cloud/openstack_service'
|
24
24
|
require 'support/shared_examples_for_serverdeletecommand'
|
25
|
-
require 'unit/validate_spec'
|
26
25
|
|
27
26
|
describe Chef::Knife::Cloud::OpenstackServerDelete do
|
28
27
|
it_behaves_like Chef::Knife::Cloud::ServerDeleteCommand, Chef::Knife::Cloud::OpenstackServerDelete.new
|
@@ -21,7 +21,6 @@ require 'spec_helper'
|
|
21
21
|
require 'chef/knife/openstack_server_list'
|
22
22
|
require 'chef/knife/cloud/openstack_service'
|
23
23
|
require 'support/shared_examples_for_command'
|
24
|
-
require 'unit/validate_spec'
|
25
24
|
|
26
25
|
describe Chef::Knife::Cloud::OpenstackServerList do
|
27
26
|
it_behaves_like Chef::Knife::Cloud::Command, Chef::Knife::Cloud::OpenstackServerList.new
|
@@ -19,13 +19,12 @@ require 'spec_helper'
|
|
19
19
|
require 'chef/knife/openstack_server_show'
|
20
20
|
require 'chef/knife/cloud/openstack_service'
|
21
21
|
require 'support/shared_examples_for_command'
|
22
|
-
require 'unit/validate_spec'
|
23
22
|
|
24
23
|
describe Chef::Knife::Cloud::OpenstackServerShow do
|
25
24
|
it_behaves_like Chef::Knife::Cloud::Command, Chef::Knife::Cloud::OpenstackServerShow.new
|
26
25
|
|
27
26
|
include_context "#validate!", Chef::Knife::Cloud::OpenstackServerShow.new
|
28
|
-
|
27
|
+
|
29
28
|
let (:instance) {Chef::Knife::Cloud::OpenstackServerShow.new}
|
30
29
|
|
31
30
|
context "#validate_params!" do
|
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: 1.
|
4
|
+
version: 1.1.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: 2015-03-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fog
|
@@ -122,10 +122,9 @@ dependencies:
|
|
122
122
|
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
|
-
description:
|
126
|
-
gem
|
125
|
+
description: Chef Compute Support for Chef's Knife Command using knife-cloud gem
|
127
126
|
email:
|
128
|
-
-
|
127
|
+
- jj@chef.io
|
129
128
|
executables: []
|
130
129
|
extensions: []
|
131
130
|
extra_rdoc_files:
|
@@ -165,6 +164,7 @@ files:
|
|
165
164
|
- spec/integration/config/environment.yml.sample
|
166
165
|
- spec/integration/config/incorrect_openstack.pem
|
167
166
|
- spec/integration/openstack_spec.rb
|
167
|
+
- spec/spec_context.rb
|
168
168
|
- spec/spec_helper.rb
|
169
169
|
- spec/unit/openstack_flavor_list_spec.rb
|
170
170
|
- spec/unit/openstack_group_list_spec.rb
|
@@ -175,8 +175,7 @@ files:
|
|
175
175
|
- spec/unit/openstack_server_list_spec.rb
|
176
176
|
- spec/unit/openstack_server_show_spec.rb
|
177
177
|
- spec/unit/openstack_service_spec.rb
|
178
|
-
|
179
|
-
homepage: https://github.com/opscode/knife-openstack
|
178
|
+
homepage: https://github.com/chef/knife-openstack
|
180
179
|
licenses: []
|
181
180
|
metadata: {}
|
182
181
|
post_install_message:
|
@@ -198,7 +197,7 @@ rubyforge_project:
|
|
198
197
|
rubygems_version: 2.2.2
|
199
198
|
signing_key:
|
200
199
|
specification_version: 4
|
201
|
-
summary:
|
200
|
+
summary: Chef Compute Support for Chef's Knife Command
|
202
201
|
test_files:
|
203
202
|
- spec/functional/flavor_list_func_spec.rb
|
204
203
|
- spec/functional/group_list_func_spec.rb
|
@@ -212,6 +211,7 @@ test_files:
|
|
212
211
|
- spec/integration/config/environment.yml.sample
|
213
212
|
- spec/integration/config/incorrect_openstack.pem
|
214
213
|
- spec/integration/openstack_spec.rb
|
214
|
+
- spec/spec_context.rb
|
215
215
|
- spec/spec_helper.rb
|
216
216
|
- spec/unit/openstack_flavor_list_spec.rb
|
217
217
|
- spec/unit/openstack_group_list_spec.rb
|
@@ -222,4 +222,4 @@ test_files:
|
|
222
222
|
- spec/unit/openstack_server_list_spec.rb
|
223
223
|
- spec/unit/openstack_server_show_spec.rb
|
224
224
|
- spec/unit/openstack_service_spec.rb
|
225
|
-
|
225
|
+
has_rdoc: true
|