knife-brightbox 0.1.6 → 0.2.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.
- data/CHANGELOG +8 -0
- data/knife-brightbox.gemspec +1 -2
- data/lib/chef/knife/brightbox_flavor_list.rb +7 -5
- data/lib/chef/knife/brightbox_image_list.rb +4 -2
- data/lib/chef/knife/brightbox_server_create.rb +20 -8
- data/lib/chef/knife/brightbox_server_list.rb +5 -4
- data/lib/knife-brightbox/version.rb +1 -1
- metadata +20 -9
data/CHANGELOG
ADDED
data/knife-brightbox.gemspec
CHANGED
@@ -16,8 +16,7 @@ Gem::Specification.new do |s|
|
|
16
16
|
s.files = `git ls-files`.split("\n")
|
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
|
-
s.add_dependency "fog", "
|
19
|
+
s.add_dependency "fog", ">= 1.5.0"
|
20
20
|
s.add_dependency "chef", ">= 0.10"
|
21
21
|
s.require_paths = ["lib"]
|
22
|
-
|
23
22
|
end
|
@@ -27,23 +27,25 @@ class Chef
|
|
27
27
|
banner "knife brightbox flavor list (options)"
|
28
28
|
|
29
29
|
def run
|
30
|
-
flavor_list = [
|
30
|
+
flavor_list = [
|
31
31
|
ui.color('ID', :bold),
|
32
32
|
ui.color('Name', :bold),
|
33
|
+
ui.color('Handle', :bold),
|
33
34
|
ui.color('Architecture', :bold),
|
34
35
|
ui.color('RAM', :bold),
|
35
36
|
ui.color('Disk', :bold),
|
36
37
|
ui.color('Cores', :bold)
|
37
38
|
]
|
38
|
-
connection.flavors.sort_by(&:
|
39
|
+
connection.flavors.sort_by(&:ram).each do |flavor|
|
39
40
|
flavor_list << flavor.id.to_s
|
40
41
|
flavor_list << flavor.name
|
42
|
+
flavor_list << flavor.handle
|
41
43
|
flavor_list << "#{flavor.bits.to_s}-bit"
|
42
|
-
flavor_list << "#{flavor.ram.to_s}"
|
43
|
-
flavor_list << "#{flavor.disk
|
44
|
+
flavor_list << "#{flavor.ram.to_s} MB"
|
45
|
+
flavor_list << "#{flavor.disk / 1024} GB"
|
44
46
|
flavor_list << flavor.cores.to_s
|
45
47
|
end
|
46
|
-
puts ui.list(flavor_list, :columns_across,
|
48
|
+
puts ui.list(flavor_list, :columns_across, 7)
|
47
49
|
end
|
48
50
|
end
|
49
51
|
end
|
@@ -29,15 +29,17 @@ class Chef
|
|
29
29
|
def run
|
30
30
|
image_list = [
|
31
31
|
ui.color('ID', :bold),
|
32
|
-
ui.color('Name', :bold)
|
32
|
+
ui.color('Name', :bold),
|
33
|
+
ui.color('Status', :bold)
|
33
34
|
]
|
34
35
|
|
35
36
|
connection.images.sort_by(&:name).each do |image|
|
36
37
|
image_list << image.id.to_s
|
37
38
|
image_list << image.name
|
39
|
+
image_list << (image.public ? "public" : "private")
|
38
40
|
end
|
39
41
|
|
40
|
-
puts ui.list(image_list, :columns_across,
|
42
|
+
puts ui.list(image_list, :columns_across, 3)
|
41
43
|
end
|
42
44
|
end
|
43
45
|
end
|
@@ -47,6 +47,13 @@ class Chef
|
|
47
47
|
:description => "The image of the server",
|
48
48
|
:proc => Proc.new { |i| Chef::Config[:knife][:image] = i }
|
49
49
|
|
50
|
+
option :server_groups,
|
51
|
+
:short => "-g grp-xxxxx,gpr-yyyyy",
|
52
|
+
:long => "--server-groups grp-xxxxx,gpr-yyyyy",
|
53
|
+
:description => "Server groups to place server in (comma delimited)",
|
54
|
+
:proc => Proc.new { |server_groups| server_groups.split(',') },
|
55
|
+
:default => []
|
56
|
+
|
50
57
|
option :server_name,
|
51
58
|
:short => "-S NAME",
|
52
59
|
:long => "--server-name NAME",
|
@@ -142,7 +149,7 @@ class Chef
|
|
142
149
|
|
143
150
|
puts "#{ui.color("Instance ID", :cyan)}: #{server.id}"
|
144
151
|
puts "#{ui.color("Name", :cyan)}: #{server.name}"
|
145
|
-
puts "#{ui.color("Flavor", :cyan)}: #{server.
|
152
|
+
puts "#{ui.color("Flavor", :cyan)}: #{server.flavor_id}"
|
146
153
|
puts "#{ui.color("Image", :cyan)}: #{server.image.name}"
|
147
154
|
|
148
155
|
print "\n#{ui.color("Waiting server", :magenta)}"
|
@@ -161,21 +168,26 @@ class Chef
|
|
161
168
|
puts " done\n"
|
162
169
|
|
163
170
|
server = connection.servers.get(server.id)
|
164
|
-
puts "#{ui.color("Public IP Address", :cyan)}: #{server.public_ip_address
|
165
|
-
puts "#{ui.color("Private IP Address", :cyan)}: #{server.private_ip_address
|
171
|
+
puts "#{ui.color("Public IP Address", :cyan)}: #{server.public_ip_address}"
|
172
|
+
puts "#{ui.color("Private IP Address", :cyan)}: #{server.private_ip_address}"
|
173
|
+
|
174
|
+
config[:server_groups].each do |server_group|
|
175
|
+
connection.add_servers_server_group(server_group,
|
176
|
+
:servers => [{ :server => server.id }])
|
177
|
+
end
|
166
178
|
|
167
|
-
print "\n#{ui.color("
|
179
|
+
print "\n#{ui.color("Bootstrapping server ", :magenta)}"
|
168
180
|
print "\n#{ui.color("Waiting for sshd ", :magenta)}"
|
169
|
-
print(".") until tcp_test_ssh(server.public_ip_address
|
181
|
+
print(".") until tcp_test_ssh(server.public_ip_address) { sleep @initial_sleep_delay ||= 10; puts(" done") }
|
170
182
|
bootstrap_for_node(server).run
|
171
183
|
|
172
184
|
puts "\n"
|
173
185
|
puts "#{ui.color("Instance ID", :cyan)}: #{server.id}"
|
174
186
|
puts "#{ui.color("Name", :cyan)}: #{server.name}"
|
175
|
-
puts "#{ui.color("Flavor", :cyan)}: #{server.
|
187
|
+
puts "#{ui.color("Flavor", :cyan)}: #{server.flavor_id}"
|
176
188
|
puts "#{ui.color("Image", :cyan)}: #{server.image.name}"
|
177
|
-
puts "#{ui.color("Public IP Address", :cyan)}: #{server.public_ip_address
|
178
|
-
puts "#{ui.color("Private IP Address", :cyan)}: #{server.private_ip_address
|
189
|
+
puts "#{ui.color("Public IP Address", :cyan)}: #{server.public_ip_address}"
|
190
|
+
puts "#{ui.color("Private IP Address", :cyan)}: #{server.private_ip_address}"
|
179
191
|
puts "#{ui.color("Environment", :cyan)}: #{config[:environment] || '_default'}"
|
180
192
|
puts "#{ui.color("Run List", :cyan)}: #{config[:run_list].join(', ')}"
|
181
193
|
end
|
@@ -28,10 +28,10 @@ class Chef
|
|
28
28
|
|
29
29
|
def run
|
30
30
|
$stdout.sync = true
|
31
|
-
|
32
31
|
server_list = [
|
33
32
|
ui.color('Instance ID', :bold),
|
34
33
|
ui.color('Private IP', :bold),
|
34
|
+
ui.color('Cloud IP', :bold),
|
35
35
|
ui.color('Flavor', :bold),
|
36
36
|
ui.color('Image', :bold),
|
37
37
|
ui.color('Name', :bold),
|
@@ -39,8 +39,9 @@ class Chef
|
|
39
39
|
]
|
40
40
|
connection.servers.all.each do |server|
|
41
41
|
server_list << server.id.to_s
|
42
|
-
server_list << server.
|
43
|
-
server_list <<
|
42
|
+
server_list << server.interfaces.map{|i| i["ipv4_address"]}.join(", ")
|
43
|
+
server_list << server.cloud_ips.map{|i| i["public_ip"]}.join(", ")
|
44
|
+
server_list << server.server_type["handle"].to_s
|
44
45
|
server_list << (server.image_id == nil ? "" : server.image_id.to_s)
|
45
46
|
server_list << server.name
|
46
47
|
server_list << begin
|
@@ -54,8 +55,8 @@ class Chef
|
|
54
55
|
end
|
55
56
|
end
|
56
57
|
end
|
57
|
-
puts ui.list(server_list, :columns_across, 6)
|
58
58
|
|
59
|
+
puts ui.list(server_list, :columns_across, 7)
|
59
60
|
end
|
60
61
|
end
|
61
62
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knife-brightbox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,22 +9,27 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-10-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fog
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
21
|
+
version: 1.5.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.5.0
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: chef
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,7 +37,12 @@ dependencies:
|
|
32
37
|
version: '0.10'
|
33
38
|
type: :runtime
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0.10'
|
36
46
|
description: Brightbox Support for Chef's Knife Command
|
37
47
|
email:
|
38
48
|
- rubiojr@frameos.org
|
@@ -43,6 +53,7 @@ extra_rdoc_files:
|
|
43
53
|
- README.rdoc
|
44
54
|
- LICENSE
|
45
55
|
files:
|
56
|
+
- CHANGELOG
|
46
57
|
- LICENSE
|
47
58
|
- README.rdoc
|
48
59
|
- knife-brightbox.gemspec
|
@@ -73,7 +84,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
73
84
|
version: '0'
|
74
85
|
requirements: []
|
75
86
|
rubyforge_project:
|
76
|
-
rubygems_version: 1.8.
|
87
|
+
rubygems_version: 1.8.24
|
77
88
|
signing_key:
|
78
89
|
specification_version: 3
|
79
90
|
summary: Brightbox Support for Chef's Knife Command
|