knife-rackspace 0.11.0 → 0.11.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 +8 -8
- data/.travis.yml +1 -0
- data/knife-rackspace.gemspec +3 -4
- data/lib/chef/knife/rackspace_base.rb +24 -10
- data/lib/chef/knife/rackspace_server_create.rb +54 -46
- data/lib/chef/knife/rackspace_server_delete.rb +1 -0
- data/lib/knife-rackspace/version.rb +1 -1
- metadata +7 -21
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ODQzY2Q3NmUyODY1YmQ0OTUyN2Q5NjI1N2I3MTBmMDYxOGVkY2Y5MQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MjY0YmQ3N2VhYTA4MjZiNmI1ZDAyZDJjMzMwMzQyYzI3ODdkZDcyOQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YTJlMjM3ZThmZWJhYjQ3NTlkYjYzZGJjZjQ2YTQ4ZmQ2ZTMyYjZhMTU4N2Ux
|
10
|
+
NmZmOTIxMjhkYzNjYjM2ZDJmZjZjZGYyY2M2NTk4NDliM2QxMTY2ODRiYTQ1
|
11
|
+
YTExNmFhNGI5NzI2NTQ2NDhlMThlNjgxMWIzYTdlNTIzMGRmMDY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NGJiY2NiOTNiN2QzOGUxNmRkN2RlYjA0MTVmZGJmOWQ2NzA1ODBmZTEwNWI2
|
14
|
+
NDliY2I2ODRlMGE5NWM3OGFlZGY4ZDZjZjNhOWNiMjdmMDMyNDI3ZTRmZjhk
|
15
|
+
NWYzMDMyNDYwZDc1MWFiMDkwMjI2ZjgyMjJlNTczMDJkMDVmYzI=
|
data/.travis.yml
CHANGED
data/knife-rackspace.gemspec
CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.has_rdoc = true
|
9
9
|
s.authors = ["Adam Jacob","Seth Chisamore", "Matt Ray","Rackspace Developers","JJ Asghar"]
|
10
10
|
s.email = ["adam@chef.io","schisamo@chef.io", "matt@chef.io","jj@chef.io"]
|
11
|
-
s.homepage = "https://
|
11
|
+
s.homepage = "https://github.com/chef/knife-rackspace"
|
12
12
|
s.summary = "Rackspace Support for Chef's Knife Command"
|
13
13
|
s.description = s.summary
|
14
14
|
s.extra_rdoc_files = ["README.rdoc", "LICENSE" ]
|
@@ -17,11 +17,10 @@ Gem::Specification.new do |s|
|
|
17
17
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
18
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
19
|
s.add_dependency "knife-windows"
|
20
|
-
s.add_dependency "fog", '>= 1.
|
21
|
-
s.add_dependency "chef", ">= 0.
|
20
|
+
s.add_dependency "fog", '>= 1.35'
|
21
|
+
s.add_dependency "chef", ">= 11.0.0"
|
22
22
|
s.require_paths = ["lib"]
|
23
23
|
|
24
|
-
s.add_development_dependency "knife-dsl"
|
25
24
|
s.add_development_dependency "rspec"
|
26
25
|
s.add_development_dependency "vcr"
|
27
26
|
s.add_development_dependency "ansi"
|
@@ -77,14 +77,17 @@ class Chef
|
|
77
77
|
def connection
|
78
78
|
Chef::Log.debug("version #{Chef::Config[:knife][:rackspace_version]} (config)")
|
79
79
|
Chef::Log.debug("version #{config[:rackspace_version]} (cli)")
|
80
|
-
Chef::Log.debug("rackspace_api_key #{Chef::Config[:knife][:rackspace_api_key]}")
|
81
|
-
Chef::Log.debug("
|
82
|
-
Chef::Log.debug("
|
83
|
-
Chef::Log.debug("
|
84
|
-
Chef::Log.debug("
|
80
|
+
Chef::Log.debug("rackspace_api_key #{Chef::Config[:knife][:rackspace_api_key]} (config)")
|
81
|
+
Chef::Log.debug("rackspace_api_key #{config[:rackspace_api_key]} (cli)")
|
82
|
+
Chef::Log.debug("rackspace_username #{Chef::Config[:knife][:rackspace_username]} (config)")
|
83
|
+
Chef::Log.debug("rackspace_username #{config[:rackspace_username]} (cli)")
|
84
|
+
Chef::Log.debug("rackspace_api_username #{Chef::Config[:knife][:rackspace_api_username]} (config)")
|
85
|
+
Chef::Log.debug("rackspace_api_username #{config[:rackspace_api_username]} (cli)")
|
86
|
+
Chef::Log.debug("rackspace_auth_url #{Chef::Config[:knife][:rackspace_auth_url]} (config)")
|
87
|
+
Chef::Log.debug("rackspace_auth_url #{config[:rackspace_api_auth_url]} (cli)")
|
85
88
|
Chef::Log.debug("rackspace_auth_url #{auth_endpoint} (using)")
|
86
|
-
Chef::Log.debug("rackspace_region #{Chef::Config[:knife][:rackspace_region]}")
|
87
|
-
Chef::Log.debug("rackspace_region #{config[:rackspace_region]}")
|
89
|
+
Chef::Log.debug("rackspace_region #{Chef::Config[:knife][:rackspace_region]} (config)")
|
90
|
+
Chef::Log.debug("rackspace_region #{config[:rackspace_region]} (cli)")
|
88
91
|
|
89
92
|
if version_one?
|
90
93
|
Chef::Log.debug("rackspace v1")
|
@@ -105,7 +108,7 @@ class Chef
|
|
105
108
|
end
|
106
109
|
|
107
110
|
def region_warning_for_v1
|
108
|
-
if
|
111
|
+
if locate_config_value(:rackspace_region)
|
109
112
|
Chef::Log.warn("Ignoring the rackspace_region parameter as it is only supported for Next Gen Cloud Servers (v2)")
|
110
113
|
end
|
111
114
|
end
|
@@ -116,10 +119,21 @@ class Chef
|
|
116
119
|
exit 1
|
117
120
|
end
|
118
121
|
|
122
|
+
username = locate_config_value(:rackspace_username) || locate_config_value(:rackspace_api_username)
|
123
|
+
unless username
|
124
|
+
ui.error "Please specify an api username via the command line using the --rackspace-username switch or add a knife[:rackspace_username] = USERNAME to your knife file."
|
125
|
+
exit 1
|
126
|
+
end
|
127
|
+
|
128
|
+
unless locate_config_value(:rackspace_api_key)
|
129
|
+
ui.error "Please specify an api key via the command line using the --rackspace-api-key switch or add a knife[:rackspace_api_key] = USERNAME to your knife file."
|
130
|
+
exit 1
|
131
|
+
end
|
132
|
+
|
119
133
|
hash = options.merge({
|
120
134
|
:provider => 'Rackspace',
|
121
|
-
:rackspace_api_key =>
|
122
|
-
:rackspace_username =>
|
135
|
+
:rackspace_api_key => locate_config_value(:rackspace_api_key),
|
136
|
+
:rackspace_username => username,
|
123
137
|
:rackspace_auth_url => auth_endpoint,
|
124
138
|
:rackspace_region => locate_config_value(:rackspace_region)
|
125
139
|
})
|
@@ -54,6 +54,12 @@ class Chef
|
|
54
54
|
:description => "The image of the server",
|
55
55
|
:proc => Proc.new { |i| Chef::Config[:knife][:image] = i.to_s }
|
56
56
|
|
57
|
+
option :boot_volume_size,
|
58
|
+
:long => "--boot-volume-size GB",
|
59
|
+
:description => "The size of the CBS to use as the server's boot device",
|
60
|
+
:proc => Proc.new { |i| Chef::Config[:knife][:boot_volume_size] = i.to_s },
|
61
|
+
:default => 100
|
62
|
+
|
57
63
|
option :boot_volume_id,
|
58
64
|
:short => "-B BOOT_VOLUME_ID",
|
59
65
|
:long => "--boot-volume-id UUID",
|
@@ -106,7 +112,8 @@ class Chef
|
|
106
112
|
|
107
113
|
option :prerelease,
|
108
114
|
:long => "--prerelease",
|
109
|
-
:description => "Install the pre-release chef gems"
|
115
|
+
:description => "Install the pre-release chef gems",
|
116
|
+
:default => false
|
110
117
|
|
111
118
|
option :bootstrap_version,
|
112
119
|
:long => "--bootstrap-version VERSION",
|
@@ -143,8 +150,8 @@ class Chef
|
|
143
150
|
:short => "-M JSON",
|
144
151
|
:long => "--rackspace-metadata JSON",
|
145
152
|
:description => "JSON string version of metadata hash to be supplied with the server create call",
|
146
|
-
:proc =>
|
147
|
-
:default =>
|
153
|
+
:proc => lambda { |m| JSON.parse(m) },
|
154
|
+
:default => {}
|
148
155
|
|
149
156
|
option :rackconnect_wait,
|
150
157
|
:long => "--rackconnect-wait",
|
@@ -232,9 +239,8 @@ class Chef
|
|
232
239
|
|
233
240
|
option :rackspace_disk_config,
|
234
241
|
:long => "--rackspace-disk-config DISKCONFIG",
|
235
|
-
:description => "Specify if want to manage your own disk partitioning scheme (AUTO or MANUAL)
|
236
|
-
:proc => Proc.new { |k| Chef::Config[:knife][:rackspace_disk_config] = k }
|
237
|
-
:default => "AUTO"
|
242
|
+
:description => "Specify if want to manage your own disk partitioning scheme (AUTO or MANUAL)",
|
243
|
+
:proc => Proc.new { |k| Chef::Config[:knife][:rackspace_disk_config] = k }
|
238
244
|
|
239
245
|
option :rackspace_config_drive,
|
240
246
|
:long => "--rackspace_config_drive CONFIGDRIVE",
|
@@ -286,9 +292,9 @@ class Chef
|
|
286
292
|
end
|
287
293
|
|
288
294
|
def tcp_test_ssh(server, bootstrap_ip)
|
289
|
-
return true unless
|
295
|
+
return true unless locate_config_value(:tcp_test_ssh) != nil
|
290
296
|
|
291
|
-
limit =
|
297
|
+
limit = locate_config_value(:retry_ssh_limit).to_i
|
292
298
|
count = 0
|
293
299
|
|
294
300
|
begin
|
@@ -301,7 +307,7 @@ class Chef
|
|
301
307
|
|
302
308
|
if count <= limit
|
303
309
|
print '.'
|
304
|
-
sleep
|
310
|
+
sleep locate_config_value(:retry_ssh_every).to_i
|
305
311
|
tcp_test_ssh(server, bootstrap_ip)
|
306
312
|
else
|
307
313
|
ui.error "Unable to SSH into #{bootstrap_ip}"
|
@@ -372,18 +378,18 @@ class Chef
|
|
372
378
|
$stdout.sync = true
|
373
379
|
|
374
380
|
server_create_options = {
|
375
|
-
:metadata =>
|
376
|
-
:disk_config =>
|
381
|
+
:metadata => locate_config_value(:rackspace_metadata),
|
382
|
+
:disk_config => locate_config_value(:rackspace_disk_config),
|
377
383
|
:user_data => user_data,
|
378
384
|
:config_drive => locate_config_value(:rackspace_config_drive) || false,
|
379
385
|
:personality => files,
|
380
|
-
:key_name =>
|
386
|
+
:key_name => locate_config_value(:rackspace_ssh_keypair),
|
381
387
|
:name => get_node_name(config[:chef_node_name] || config[:server_name]),
|
382
|
-
:networks => get_networks(
|
388
|
+
:networks => get_networks(locate_config_value(:rackspace_networks), locate_config_value(:rackconnect_v3_network_id)),
|
383
389
|
}
|
384
390
|
|
385
391
|
# Maybe deprecate this option at some point
|
386
|
-
config[:bootstrap_network] = 'private' if
|
392
|
+
config[:bootstrap_network] = 'private' if locate_config_value(:private_network)
|
387
393
|
|
388
394
|
flavor_id = locate_config_value(:flavor)
|
389
395
|
flavor = connection.flavors.get(flavor_id)
|
@@ -401,15 +407,16 @@ class Chef
|
|
401
407
|
# swap out the image_id argument with the boot_image_id argument.
|
402
408
|
if flavor.disk == 0
|
403
409
|
server_create_options[:image_id] = ''
|
404
|
-
server_create_options[:boot_volume_id] =
|
405
|
-
server_create_options[:boot_image_id] =
|
410
|
+
server_create_options[:boot_volume_id] = locate_config_value(:boot_volume_id)
|
411
|
+
server_create_options[:boot_image_id] = locate_config_value(:image)
|
412
|
+
server_create_options[:boot_volume_size] = locate_config_value(:boot_volume_size)
|
406
413
|
|
407
414
|
if server_create_options[:boot_image_id] && server_create_options[:boot_volume_id]
|
408
|
-
ui.error('Please specify
|
415
|
+
ui.error('Please specify either --boot-volume-id (-B) or --image (-I)')
|
409
416
|
exit 1
|
410
417
|
end
|
411
418
|
else
|
412
|
-
server_create_options[:image_id] =
|
419
|
+
server_create_options[:image_id] = locate_config_value(:image)
|
413
420
|
|
414
421
|
if !server_create_options[:image_id]
|
415
422
|
ui.error('Please specify an Image ID for the server with --image (-I)')
|
@@ -429,8 +436,8 @@ class Chef
|
|
429
436
|
server.save(:networks => server_create_options[:networks])
|
430
437
|
end
|
431
438
|
|
432
|
-
rackconnect_wait =
|
433
|
-
rackspace_servicelevel_wait =
|
439
|
+
rackconnect_wait = locate_config_value(:rackconnect_wait)
|
440
|
+
rackspace_servicelevel_wait = locate_config_value(:rackspace_servicelevel_wait)
|
434
441
|
|
435
442
|
msg_pair("Instance ID", server.id)
|
436
443
|
msg_pair("Host ID", server.host_id)
|
@@ -440,11 +447,11 @@ class Chef
|
|
440
447
|
msg_pair("Boot Image ID", server.boot_image_id) if server.boot_image_id
|
441
448
|
msg_pair("Metadata", server.metadata.all)
|
442
449
|
msg_pair("ConfigDrive", server.config_drive)
|
443
|
-
msg_pair("UserData",
|
450
|
+
msg_pair("UserData", locate_config_value(:rackspace_user_data))
|
444
451
|
msg_pair("RackConnect Wait", rackconnect_wait ? 'yes' : 'no')
|
445
|
-
msg_pair("RackConnect V3",
|
452
|
+
msg_pair("RackConnect V3", locate_config_value(:rackconnect_v3_network_id) ? 'yes' : 'no')
|
446
453
|
msg_pair("ServiceLevel Wait", rackspace_servicelevel_wait ? 'yes' : 'no')
|
447
|
-
msg_pair("SSH Key",
|
454
|
+
msg_pair("SSH Key", locate_config_value(:rackspace_ssh_keypair))
|
448
455
|
|
449
456
|
# wait for it to be ready to do stuff
|
450
457
|
begin
|
@@ -480,7 +487,7 @@ class Chef
|
|
480
487
|
|
481
488
|
puts("\n")
|
482
489
|
|
483
|
-
if
|
490
|
+
if locate_config_value(:rackconnect_v3_network_id)
|
484
491
|
print "\n#{ui.color("Setting up RackconnectV3 network and IPs", :magenta)}"
|
485
492
|
setup_rackconnect_network!(server)
|
486
493
|
while server.ipv4_address == ""
|
@@ -489,8 +496,8 @@ class Chef
|
|
489
496
|
end
|
490
497
|
end
|
491
498
|
|
492
|
-
if server_create_options[:networks] &&
|
493
|
-
msg_pair("Networks",
|
499
|
+
if server_create_options[:networks] && locate_config_value(:rackspace_networks)
|
500
|
+
msg_pair("Networks", locate_config_value(:rackspace_networks).sort.join(', '))
|
494
501
|
end
|
495
502
|
|
496
503
|
msg_pair("Public DNS Name", public_dns_name(server))
|
@@ -499,7 +506,7 @@ class Chef
|
|
499
506
|
msg_pair("Password", server.password)
|
500
507
|
msg_pair("Metadata", server.metadata.all)
|
501
508
|
|
502
|
-
bootstrap_ip_address = ip_address(server,
|
509
|
+
bootstrap_ip_address = ip_address(server, locate_config_value(:bootstrap_network))
|
503
510
|
|
504
511
|
Chef::Log.debug("Bootstrap IP Address #{bootstrap_ip_address}")
|
505
512
|
if bootstrap_ip_address.nil?
|
@@ -554,7 +561,7 @@ class Chef
|
|
554
561
|
end
|
555
562
|
|
556
563
|
def user_data
|
557
|
-
file =
|
564
|
+
file = locate_config_value(:rackspace_user_data)
|
558
565
|
return unless file
|
559
566
|
|
560
567
|
begin
|
@@ -570,16 +577,16 @@ class Chef
|
|
570
577
|
def bootstrap_for_node(server, bootstrap_ip_address)
|
571
578
|
bootstrap = Chef::Knife::Bootstrap.new
|
572
579
|
bootstrap.name_args = [bootstrap_ip_address]
|
573
|
-
bootstrap.config[:ssh_user] =
|
580
|
+
bootstrap.config[:ssh_user] = locate_config_value(:ssh_user) || "root"
|
574
581
|
bootstrap.config[:ssh_password] = server.password
|
575
|
-
bootstrap.config[:ssh_port] =
|
576
|
-
bootstrap.config[:identity_file] =
|
577
|
-
bootstrap.config[:host_key_verify] =
|
578
|
-
bootstrap.config[:bootstrap_vault_file] =
|
579
|
-
bootstrap.config[:bootstrap_vault_json] =
|
580
|
-
bootstrap.config[:bootstrap_vault_item] =
|
582
|
+
bootstrap.config[:ssh_port] = locate_config_value(:ssh_port)
|
583
|
+
bootstrap.config[:identity_file] = locate_config_value(:identity_file)
|
584
|
+
bootstrap.config[:host_key_verify] = locate_config_value(:host_key_verify)
|
585
|
+
bootstrap.config[:bootstrap_vault_file] = locate_config_value(:bootstrap_vault_file) if locate_config_value(:bootstrap_vault_file)
|
586
|
+
bootstrap.config[:bootstrap_vault_json] = locate_config_value(:bootstrap_vault_json) if locate_config_value(:bootstrap_vault_json)
|
587
|
+
bootstrap.config[:bootstrap_vault_item] = locate_config_value(:bootstrap_vault_item) if locate_config_value(:bootstrap_vault_item)
|
581
588
|
# bootstrap will run as root...sudo (by default) also messes up Ohai on CentOS boxes
|
582
|
-
bootstrap.config[:use_sudo] = true unless
|
589
|
+
bootstrap.config[:use_sudo] = true unless locate_config_value(:ssh_user) == 'root'
|
583
590
|
bootstrap.config[:distro] = locate_config_value(:distro) || 'chef-full'
|
584
591
|
bootstrap_common_params(bootstrap, server)
|
585
592
|
end
|
@@ -592,13 +599,14 @@ class Chef
|
|
592
599
|
else
|
593
600
|
bootstrap.config[:chef_node_name] = config[:chef_node_name] || server.name
|
594
601
|
end
|
595
|
-
bootstrap.config[:prerelease] =
|
602
|
+
bootstrap.config[:prerelease] = locate_config_value(:prerelease)
|
596
603
|
bootstrap.config[:bootstrap_version] = locate_config_value(:bootstrap_version)
|
597
604
|
bootstrap.config[:template_file] = locate_config_value(:template_file)
|
598
|
-
bootstrap.config[:first_boot_attributes] =
|
605
|
+
bootstrap.config[:first_boot_attributes] = locate_config_value(:first_boot_attributes)
|
599
606
|
bootstrap.config[:bootstrap_proxy] = locate_config_value(:bootstrap_proxy)
|
600
|
-
|
601
|
-
bootstrap.config[:
|
607
|
+
# TODO: Remove dead code. There's no command line parameter for these two.
|
608
|
+
# bootstrap.config[:encrypted_data_bag_secret] = config[:encrypted_data_bag_secret]
|
609
|
+
# bootstrap.config[:encrypted_data_bag_secret_file] = config[:encrypted_data_bag_secret_file]
|
602
610
|
bootstrap.config[:secret] = locate_config_value(:secret)
|
603
611
|
bootstrap.config[:secret_file] = locate_config_value(:secret_file) || ""
|
604
612
|
|
@@ -629,16 +637,16 @@ class Chef
|
|
629
637
|
def get_networks(names, rackconnect3=false)
|
630
638
|
names = Array(names)
|
631
639
|
|
632
|
-
if(
|
633
|
-
if rackconnect3
|
634
|
-
|
635
|
-
elsif
|
636
|
-
|
640
|
+
if(locate_config_value(:rackspace_version) == 'v2')
|
641
|
+
nets = if rackconnect3
|
642
|
+
[locate_config_value(:rackconnect_v3_network_id)]
|
643
|
+
elsif locate_config_value(:default_networks)
|
644
|
+
[
|
637
645
|
'00000000-0000-0000-0000-000000000000',
|
638
646
|
'11111111-1111-1111-1111-111111111111'
|
639
647
|
]
|
640
648
|
else
|
641
|
-
|
649
|
+
[]
|
642
650
|
end
|
643
651
|
|
644
652
|
available_networks = connection.networks.all
|
@@ -67,6 +67,7 @@ class Chef
|
|
67
67
|
msg_pair("Name", server.name)
|
68
68
|
msg_pair("Flavor", server.flavor.name)
|
69
69
|
msg_pair("Image", server.image.name) if server.image
|
70
|
+
msg_pair("Boot Image ID", server.boot_image_id) if server.boot_image_id
|
70
71
|
msg_pair("Public IP Address", ip_address(server, 'public'))
|
71
72
|
msg_pair("Private IP Address", ip_address(server, 'private'))
|
72
73
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knife-rackspace
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.11.
|
4
|
+
version: 0.11.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Jacob
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date:
|
15
|
+
date: 2016-05-03 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: knife-windows
|
@@ -34,42 +34,28 @@ dependencies:
|
|
34
34
|
requirements:
|
35
35
|
- - ! '>='
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version: '1.
|
37
|
+
version: '1.35'
|
38
38
|
type: :runtime
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
43
43
|
- !ruby/object:Gem::Version
|
44
|
-
version: '1.
|
44
|
+
version: '1.35'
|
45
45
|
- !ruby/object:Gem::Dependency
|
46
46
|
name: chef
|
47
47
|
requirement: !ruby/object:Gem::Requirement
|
48
48
|
requirements:
|
49
49
|
- - ! '>='
|
50
50
|
- !ruby/object:Gem::Version
|
51
|
-
version: 0.
|
51
|
+
version: 11.0.0
|
52
52
|
type: :runtime
|
53
53
|
prerelease: false
|
54
54
|
version_requirements: !ruby/object:Gem::Requirement
|
55
55
|
requirements:
|
56
56
|
- - ! '>='
|
57
57
|
- !ruby/object:Gem::Version
|
58
|
-
version: 0.
|
59
|
-
- !ruby/object:Gem::Dependency
|
60
|
-
name: knife-dsl
|
61
|
-
requirement: !ruby/object:Gem::Requirement
|
62
|
-
requirements:
|
63
|
-
- - ! '>='
|
64
|
-
- !ruby/object:Gem::Version
|
65
|
-
version: '0'
|
66
|
-
type: :development
|
67
|
-
prerelease: false
|
68
|
-
version_requirements: !ruby/object:Gem::Requirement
|
69
|
-
requirements:
|
70
|
-
- - ! '>='
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
version: '0'
|
58
|
+
version: 11.0.0
|
73
59
|
- !ruby/object:Gem::Dependency
|
74
60
|
name: rspec
|
75
61
|
requirement: !ruby/object:Gem::Requirement
|
@@ -165,7 +151,7 @@ files:
|
|
165
151
|
- spec/integration_spec_helper.rb
|
166
152
|
- spec/spec_helper.rb
|
167
153
|
- spec/unit/rackspace_base_spec.rb
|
168
|
-
homepage: https://
|
154
|
+
homepage: https://github.com/chef/knife-rackspace
|
169
155
|
licenses: []
|
170
156
|
metadata: {}
|
171
157
|
post_install_message:
|