knife-openstack 2.1.1 → 2.1.7
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/lib/chef/knife/cloud/openstack_server_create_options.rb +50 -50
- data/lib/chef/knife/cloud/openstack_service.rb +2 -1
- data/lib/chef/knife/cloud/openstack_service_options.rb +23 -23
- data/lib/chef/knife/openstack_flavor_list.rb +2 -2
- data/lib/chef/knife/openstack_floating_ip_allocate.rb +6 -6
- data/lib/chef/knife/openstack_floating_ip_associate.rb +7 -7
- data/lib/chef/knife/openstack_floating_ip_disassociate.rb +7 -7
- data/lib/chef/knife/openstack_floating_ip_list.rb +2 -2
- data/lib/chef/knife/openstack_floating_ip_release.rb +2 -2
- data/lib/chef/knife/openstack_group_list.rb +3 -3
- data/lib/chef/knife/openstack_helpers.rb +2 -2
- data/lib/chef/knife/openstack_image_list.rb +6 -6
- data/lib/chef/knife/openstack_network_list.rb +2 -2
- data/lib/chef/knife/openstack_server_create.rb +5 -4
- data/lib/chef/knife/openstack_server_delete.rb +3 -3
- data/lib/chef/knife/openstack_server_list.rb +2 -2
- data/lib/chef/knife/openstack_server_show.rb +3 -3
- data/lib/chef/knife/openstack_volume_list.rb +4 -4
- data/lib/knife-openstack/version.rb +1 -1
- metadata +11 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a2a2d48a5b5ac264c9693312144b757c2503b2a1b3b5c753e95ac26bac56dacd
|
4
|
+
data.tar.gz: ef663091c0af5196958e52476a08cc2fb90a795f6f78d4ab188a257139c0c22a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 38175ab08d67e201464005acf13f2bbaecf89596b9b153075d489798a1bb7d1d50e5d78bef3430a7ff9a81707e377e47807de236c8e0c6c2b15ac6c154b97513
|
7
|
+
data.tar.gz: 6ac31de76145bfcd50d0ad0d3d5372d702fdc64872b50734196d3fb5757875d0421e8c8b56ced7f2a2a83af3fd1fee6597e97ba1b10a3fcdf275c67abf2de91e
|
@@ -27,82 +27,82 @@ class Chef
|
|
27
27
|
|
28
28
|
# Openstack Server create params.
|
29
29
|
option :private_network,
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
30
|
+
long: "--openstack-private-network",
|
31
|
+
description: "Use the private IP for bootstrapping rather than the public IP",
|
32
|
+
boolean: true,
|
33
|
+
default: false
|
34
34
|
|
35
35
|
option :openstack_floating_ip,
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
36
|
+
short: "-a [IP]",
|
37
|
+
long: "--openstack-floating-ip [IP]",
|
38
|
+
default: "-1",
|
39
|
+
description: "Request to associate a floating IP address to the new OpenStack node. Assumes IPs have been allocated to the project. Specific IP is optional."
|
40
40
|
|
41
41
|
option :openstack_volumes,
|
42
|
-
|
43
|
-
|
44
|
-
|
42
|
+
long: "--openstack-volumes VOLUME1,VOLUME2,VOLUME3",
|
43
|
+
description: "Comma separated list of the UUID(s) of the volume(s) to attach to the server",
|
44
|
+
proc: proc { |volumes| volumes.split(",") }
|
45
45
|
|
46
46
|
option :openstack_scheduler_hints,
|
47
|
-
|
48
|
-
|
49
|
-
|
47
|
+
long: "--scheduler-hints HINTS",
|
48
|
+
description: "A scheduler group hint to OpenStack",
|
49
|
+
proc: proc { |i| Chef::Config[:knife][:openstack_scheduler_hints] = i }
|
50
50
|
|
51
51
|
option :openstack_security_groups,
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
52
|
+
short: "-G X,Y,Z",
|
53
|
+
long: "--openstack-groups X,Y,Z",
|
54
|
+
description: "The security groups for this server",
|
55
|
+
default: ["default"],
|
56
|
+
proc: proc { |groups| groups.split(",") }
|
57
57
|
|
58
58
|
option :openstack_ssh_key_id,
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
59
|
+
short: "-S KEY",
|
60
|
+
long: "--openstack-ssh-key-id KEY",
|
61
|
+
description: "The OpenStack SSH keypair id",
|
62
|
+
proc: proc { |key| Chef::Config[:knife][:openstack_ssh_key_id] = key }
|
63
63
|
|
64
64
|
option :user_data,
|
65
|
-
|
66
|
-
|
67
|
-
|
65
|
+
long: "--user-data USER_DATA",
|
66
|
+
description: "The file path containing user data information for this server",
|
67
|
+
proc: proc { |user_data| open(user_data, &:read) }
|
68
68
|
|
69
69
|
option :bootstrap_network,
|
70
|
-
|
71
|
-
|
72
|
-
|
70
|
+
long: "--bootstrap-network NAME",
|
71
|
+
default: "public",
|
72
|
+
description: "Specify network for bootstrapping. Default is 'public'."
|
73
73
|
|
74
74
|
option :network,
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
75
|
+
long: "--no-network",
|
76
|
+
boolean: true,
|
77
|
+
default: true,
|
78
|
+
description: "Use first available network for bootstrapping if 'public' and 'private' are unavailable."
|
79
79
|
|
80
80
|
option :network_ids,
|
81
|
-
|
82
|
-
|
83
|
-
|
81
|
+
long: "--network-ids NETWORK_ID_1,NETWORK_ID_2,NETWORK_ID_3",
|
82
|
+
description: "Comma separated list of the UUID(s) of the network(s) for the server to attach",
|
83
|
+
proc: proc { |networks| networks.split(",") }
|
84
84
|
|
85
85
|
option :availability_zone,
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
86
|
+
short: "-Z ZONE_NAME",
|
87
|
+
long: "--availability-zone ZONE_NAME",
|
88
|
+
description: "The availability zone for this server",
|
89
|
+
proc: proc { |z| Chef::Config[:knife][:availability_zone] = z }
|
90
90
|
|
91
91
|
option :metadata,
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
92
|
+
short: "-M X=1",
|
93
|
+
long: "--metadata X=1",
|
94
|
+
description: "Metadata information for this server (may pass multiple times)",
|
95
|
+
proc: proc { |data| Chef::Config[:knife][:metadata] ||= {}; Chef::Config[:knife][:metadata].merge!(data.split("=")[0] => data.split("=")[1]) }
|
96
96
|
|
97
97
|
option :secret_file,
|
98
|
-
|
99
|
-
|
100
|
-
|
98
|
+
long: "--secret-file SECRET_FILE",
|
99
|
+
description: "A file containing the secret key to use to encrypt data bag item values",
|
100
|
+
proc: proc { |sf| Chef::Config[:knife][:secret_file] = sf }
|
101
101
|
|
102
102
|
option :secret,
|
103
|
-
|
104
|
-
|
105
|
-
|
103
|
+
long: "--secret ",
|
104
|
+
description: "The secret key to use to encrypt data bag item values",
|
105
|
+
proc: proc { |s| Chef::Config[:knife][:secret] = s }
|
106
106
|
end
|
107
107
|
end
|
108
108
|
end
|
@@ -27,7 +27,7 @@ class Chef
|
|
27
27
|
Chef::Log.debug("openstack_username #{Chef::Config[:knife][:openstack_username]}")
|
28
28
|
Chef::Log.debug("openstack_auth_url #{Chef::Config[:knife][:openstack_auth_url]}")
|
29
29
|
Chef::Log.debug("openstack_tenant #{Chef::Config[:knife][:openstack_tenant]}")
|
30
|
-
Chef::Log.debug("openstack_endpoint_type #{Chef::Config[:knife][:openstack_endpoint_type] ||
|
30
|
+
Chef::Log.debug("openstack_endpoint_type #{Chef::Config[:knife][:openstack_endpoint_type] || "publicURL"}")
|
31
31
|
Chef::Log.debug("openstack_insecure #{Chef::Config[:knife][:openstack_insecure]}")
|
32
32
|
Chef::Log.debug("openstack_region #{Chef::Config[:knife][:openstack_region]}")
|
33
33
|
|
@@ -72,6 +72,7 @@ class Chef
|
|
72
72
|
[:openstack_api_key]
|
73
73
|
).each do |k|
|
74
74
|
next unless k.to_s.start_with?("openstack")
|
75
|
+
|
75
76
|
params[k] = Chef::Config[:knife][k]
|
76
77
|
end
|
77
78
|
params[:openstack_api_key] = Chef::Config[:knife][:openstack_password] || Chef::Config[:knife][:openstack_api_key]
|
@@ -25,39 +25,39 @@ class Chef
|
|
25
25
|
include FogOptions
|
26
26
|
# Openstack Connection params.
|
27
27
|
option :openstack_username,
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
28
|
+
short: "-A USERNAME",
|
29
|
+
long: "--openstack-username KEY",
|
30
|
+
description: "Your OpenStack Username",
|
31
|
+
proc: proc { |key| Chef::Config[:knife][:openstack_username] = key }
|
32
32
|
|
33
33
|
option :openstack_password,
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
34
|
+
short: "-K SECRET",
|
35
|
+
long: "--openstack-password SECRET",
|
36
|
+
description: "Your OpenStack Password",
|
37
|
+
proc: proc { |key| Chef::Config[:knife][:openstack_password] = key }
|
38
38
|
|
39
39
|
option :openstack_tenant,
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
40
|
+
short: "-T NAME",
|
41
|
+
long: "--openstack-tenant NAME",
|
42
|
+
description: "Your OpenStack Tenant NAME",
|
43
|
+
proc: proc { |key| Chef::Config[:knife][:openstack_tenant] = key }
|
44
44
|
|
45
45
|
option :openstack_auth_url,
|
46
|
-
|
47
|
-
|
48
|
-
|
46
|
+
long: "--openstack-api-endpoint ENDPOINT",
|
47
|
+
description: "Your OpenStack API endpoint",
|
48
|
+
proc: proc { |endpoint| Chef::Config[:knife][:openstack_auth_url] = endpoint }
|
49
49
|
|
50
50
|
option :openstack_endpoint_type,
|
51
|
-
|
52
|
-
|
53
|
-
|
51
|
+
long: "--openstack-endpoint-type ENDPOINT_TYPE",
|
52
|
+
description: "OpenStack endpoint type to use (publicURL, internalURL, adminURL)",
|
53
|
+
proc: proc { |type| Chef::Config[:knife][:openstack_endpoint_type] = type }
|
54
54
|
|
55
55
|
option :openstack_insecure,
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
56
|
+
long: "--insecure",
|
57
|
+
description: "Ignore SSL certificate on the Auth URL",
|
58
|
+
boolean: true,
|
59
|
+
default: false,
|
60
|
+
proc: proc { |key| Chef::Config[:knife][:openstack_insecure] = key }
|
61
61
|
end
|
62
62
|
end
|
63
63
|
end
|
@@ -17,8 +17,8 @@
|
|
17
17
|
#
|
18
18
|
|
19
19
|
require "chef/knife/cloud/list_resource_command"
|
20
|
-
|
21
|
-
|
20
|
+
require_relative "openstack_helpers"
|
21
|
+
require_relative "cloud/openstack_service_options"
|
22
22
|
|
23
23
|
class Chef
|
24
24
|
class Knife
|
@@ -16,8 +16,8 @@
|
|
16
16
|
# limitations under the License.
|
17
17
|
#
|
18
18
|
|
19
|
-
|
20
|
-
|
19
|
+
require_relative "openstack_helpers"
|
20
|
+
require_relative "cloud/openstack_service_options"
|
21
21
|
require "chef/knife/cloud/command"
|
22
22
|
|
23
23
|
class Chef
|
@@ -30,10 +30,10 @@ class Chef
|
|
30
30
|
banner "knife openstack floating_ip allocate (options)"
|
31
31
|
|
32
32
|
option :pool,
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
33
|
+
short: "-p POOL",
|
34
|
+
long: "--pool POOL",
|
35
|
+
description: "Floating IP pool to allocate from.",
|
36
|
+
proc: proc { |key| Chef::Config[:knife][:pool] = key }
|
37
37
|
|
38
38
|
def execute_command
|
39
39
|
@resource = @service.allocate_address(locate_config_value(:pool))
|
@@ -16,9 +16,9 @@
|
|
16
16
|
# limitations under the License.
|
17
17
|
#
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
19
|
+
require_relative "openstack_helpers"
|
20
|
+
require_relative "cloud/openstack_service_options"
|
21
|
+
require_relative "cloud/openstack_service"
|
22
22
|
require "chef/knife/cloud/command"
|
23
23
|
|
24
24
|
class Chef
|
@@ -31,10 +31,10 @@ class Chef
|
|
31
31
|
banner "knife openstack floating_ip associate IP (options)"
|
32
32
|
|
33
33
|
option :instance_id,
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
34
|
+
long: "--instance-id ID",
|
35
|
+
description: "Instance id to associate it with.",
|
36
|
+
proc: proc { |key| Chef::Config[:knife][:instance_id] = key },
|
37
|
+
required: true
|
38
38
|
|
39
39
|
def execute_command
|
40
40
|
if @name_args[0]
|
@@ -16,9 +16,9 @@
|
|
16
16
|
# limitations under the License.
|
17
17
|
#
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
19
|
+
require_relative "openstack_helpers"
|
20
|
+
require_relative "cloud/openstack_service_options"
|
21
|
+
require_relative "cloud/openstack_service"
|
22
22
|
require "chef/knife/cloud/command"
|
23
23
|
|
24
24
|
class Chef
|
@@ -31,10 +31,10 @@ class Chef
|
|
31
31
|
banner "knife openstack floating_ip disassociate IP (options)"
|
32
32
|
|
33
33
|
option :instance_id,
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
34
|
+
long: "--instance-id ID",
|
35
|
+
description: "Instance id to disassociate with.",
|
36
|
+
proc: proc { |key| Chef::Config[:knife][:instance_id] = key },
|
37
|
+
required: true
|
38
38
|
|
39
39
|
def execute_command
|
40
40
|
if @name_args[0]
|
@@ -17,8 +17,8 @@
|
|
17
17
|
#
|
18
18
|
|
19
19
|
require "chef/knife/cloud/list_resource_command"
|
20
|
-
|
21
|
-
|
20
|
+
require_relative "openstack_helpers"
|
21
|
+
require_relative "cloud/openstack_service_options"
|
22
22
|
|
23
23
|
class Chef
|
24
24
|
class Knife
|
@@ -16,8 +16,8 @@
|
|
16
16
|
# limitations under the License.
|
17
17
|
#
|
18
18
|
|
19
|
-
|
20
|
-
|
19
|
+
require_relative "openstack_helpers"
|
20
|
+
require_relative "cloud/openstack_service_options"
|
21
21
|
require "chef/knife/cloud/command"
|
22
22
|
|
23
23
|
class Chef
|
@@ -16,8 +16,8 @@
|
|
16
16
|
#
|
17
17
|
|
18
18
|
require "chef/knife/cloud/list_resource_command"
|
19
|
-
|
20
|
-
|
19
|
+
require_relative "openstack_helpers"
|
20
|
+
require_relative "cloud/openstack_service_options"
|
21
21
|
require "chef/json_compat"
|
22
22
|
|
23
23
|
class Chef
|
@@ -33,7 +33,7 @@ class Chef
|
|
33
33
|
@service.connection.security_groups
|
34
34
|
rescue Excon::Errors::BadRequest => e
|
35
35
|
response = Chef::JSONCompat.from_json(e.response.body)
|
36
|
-
ui.fatal("Unknown server error (#{response[
|
36
|
+
ui.fatal("Unknown server error (#{response["badRequest"]["code"]}): #{response["badRequest"]["message"]}")
|
37
37
|
raise e
|
38
38
|
end
|
39
39
|
|
@@ -15,7 +15,7 @@
|
|
15
15
|
# limitations under the License.
|
16
16
|
#
|
17
17
|
|
18
|
-
|
18
|
+
require_relative "cloud/openstack_service_options"
|
19
19
|
|
20
20
|
class Chef
|
21
21
|
class Knife
|
@@ -48,7 +48,7 @@ class Chef
|
|
48
48
|
ips.each do |ip|
|
49
49
|
version = "IPv6" if ip["version"] == 6
|
50
50
|
version = "IPv4" if ip["version"] == 4
|
51
|
-
info << "#{addresses.keys[0]}:#{version}: #{ip[
|
51
|
+
info << "#{addresses.keys[0]}:#{version}: #{ip["addr"]}"
|
52
52
|
end
|
53
53
|
end
|
54
54
|
info.join(" ")
|
@@ -17,8 +17,8 @@
|
|
17
17
|
#
|
18
18
|
|
19
19
|
require "chef/knife/cloud/list_resource_command"
|
20
|
-
|
21
|
-
|
20
|
+
require_relative "openstack_helpers"
|
21
|
+
require_relative "cloud/openstack_service_options"
|
22
22
|
|
23
23
|
class Chef
|
24
24
|
class Knife
|
@@ -30,10 +30,10 @@ class Chef
|
|
30
30
|
banner "knife openstack image list (options)"
|
31
31
|
|
32
32
|
option :disable_filter,
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
33
|
+
long: "--disable-filter",
|
34
|
+
description: "Disable filtering of the image list. Currently filters names ending with 'initrd' or 'kernel'",
|
35
|
+
boolean: true,
|
36
|
+
default: false
|
37
37
|
|
38
38
|
def before_exec_command
|
39
39
|
# set resource_filters
|
@@ -17,8 +17,8 @@
|
|
17
17
|
#
|
18
18
|
|
19
19
|
require "chef/knife/cloud/list_resource_command"
|
20
|
-
|
21
|
-
|
20
|
+
require_relative "openstack_helpers"
|
21
|
+
require_relative "cloud/openstack_service_options"
|
22
22
|
|
23
23
|
class Chef
|
24
24
|
class Knife
|
@@ -19,10 +19,10 @@
|
|
19
19
|
#
|
20
20
|
|
21
21
|
require "chef/knife/cloud/server/create_command"
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
22
|
+
require_relative "openstack_helpers"
|
23
|
+
require_relative "cloud/openstack_server_create_options"
|
24
|
+
require_relative "cloud/openstack_service"
|
25
|
+
require_relative "cloud/openstack_service_options"
|
26
26
|
require "chef/knife/cloud/exceptions"
|
27
27
|
|
28
28
|
class Chef
|
@@ -203,6 +203,7 @@ class Chef
|
|
203
203
|
|
204
204
|
addresses = service.connection.addresses
|
205
205
|
return false if addresses.empty? # no floating IPs
|
206
|
+
|
206
207
|
# floating requested without value
|
207
208
|
if address.nil?
|
208
209
|
if addresses.find_index { |a| a.fixed_ip.nil? }
|
@@ -19,9 +19,9 @@
|
|
19
19
|
|
20
20
|
require "chef/knife/cloud/server/delete_options"
|
21
21
|
require "chef/knife/cloud/server/delete_command"
|
22
|
-
|
23
|
-
|
24
|
-
|
22
|
+
require_relative "cloud/openstack_service"
|
23
|
+
require_relative "cloud/openstack_service_options"
|
24
|
+
require_relative "openstack_helpers"
|
25
25
|
|
26
26
|
class Chef
|
27
27
|
class Knife
|
@@ -20,8 +20,8 @@
|
|
20
20
|
#
|
21
21
|
|
22
22
|
require "chef/knife/cloud/server/list_command"
|
23
|
-
|
24
|
-
|
23
|
+
require_relative "openstack_helpers"
|
24
|
+
require_relative "cloud/openstack_service_options"
|
25
25
|
require "chef/knife/cloud/server/list_options"
|
26
26
|
|
27
27
|
class Chef
|
@@ -16,10 +16,10 @@
|
|
16
16
|
#
|
17
17
|
|
18
18
|
require "chef/knife/cloud/server/show_command"
|
19
|
-
|
19
|
+
require_relative "openstack_helpers"
|
20
20
|
require "chef/knife/cloud/server/show_options"
|
21
|
-
|
22
|
-
|
21
|
+
require_relative "cloud/openstack_service"
|
22
|
+
require_relative "cloud/openstack_service_options"
|
23
23
|
require "chef/knife/cloud/exceptions"
|
24
24
|
|
25
25
|
class Chef
|
@@ -19,8 +19,8 @@
|
|
19
19
|
#
|
20
20
|
|
21
21
|
require "chef/knife/cloud/list_resource_command"
|
22
|
-
|
23
|
-
|
22
|
+
require_relative "openstack_helpers"
|
23
|
+
require_relative "cloud/openstack_service_options"
|
24
24
|
require "chef/json_compat"
|
25
25
|
|
26
26
|
class Chef
|
@@ -36,7 +36,7 @@ class Chef
|
|
36
36
|
@service.connection.volumes
|
37
37
|
rescue Excon::Errors::BadRequest => e
|
38
38
|
response = Chef::JSONCompat.from_json(e.response.body)
|
39
|
-
ui.fatal("Unknown server error (#{response[
|
39
|
+
ui.fatal("Unknown server error (#{response["badRequest"]["code"]}): #{response["badRequest"]["message"]}")
|
40
40
|
raise e
|
41
41
|
end
|
42
42
|
|
@@ -58,7 +58,7 @@ class Chef
|
|
58
58
|
end
|
59
59
|
rescue Excon::Errors::BadRequest => e
|
60
60
|
response = Chef::JSONCompat.from_json(e.response.body)
|
61
|
-
ui.fatal("Unknown server error (#{response[
|
61
|
+
ui.fatal("Unknown server error (#{response["badRequest"]["code"]}): #{response["badRequest"]["message"]}")
|
62
62
|
raise e
|
63
63
|
end
|
64
64
|
puts ui.list(volume_list, :uneven_columns_across, 5)
|
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: 2.1.
|
4
|
+
version: 2.1.7
|
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: 2019-12-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fog
|
@@ -42,16 +42,22 @@ dependencies:
|
|
42
42
|
name: knife-cloud
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: 1.2.0
|
48
|
+
- - "<"
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: '3.0'
|
48
51
|
type: :runtime
|
49
52
|
prerelease: false
|
50
53
|
version_requirements: !ruby/object:Gem::Requirement
|
51
54
|
requirements:
|
52
|
-
- - "
|
55
|
+
- - ">="
|
53
56
|
- !ruby/object:Gem::Version
|
54
57
|
version: 1.2.0
|
58
|
+
- - "<"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '3.0'
|
55
61
|
description: A Chef knife plugin for OpenStack clouds.
|
56
62
|
email:
|
57
63
|
- jj@chef.io
|
@@ -98,8 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
98
104
|
- !ruby/object:Gem::Version
|
99
105
|
version: '0'
|
100
106
|
requirements: []
|
101
|
-
|
102
|
-
rubygems_version: 2.7.6
|
107
|
+
rubygems_version: 3.0.3
|
103
108
|
signing_key:
|
104
109
|
specification_version: 4
|
105
110
|
summary: A Chef knife plugin for OpenStack clouds.
|