knife-nodefu 0.2.1 → 0.3.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/lib/chef/knife/nodefu_base.rb +7 -3
- data/lib/chef/knife/nodefu_create.rb +20 -40
- data/lib/knife-nodefu/version.rb +1 -1
- metadata +2 -2
@@ -8,9 +8,13 @@ module NodefuBase
|
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
-
def generate_security_groups(name,env)
|
12
|
-
[
|
13
|
-
|
11
|
+
def generate_security_groups(name,env,domain)
|
12
|
+
if config[:hostname_style_groups]
|
13
|
+
["#{name}.#{env}.#{domain}","default_#{env}","default"]
|
14
|
+
else
|
15
|
+
["node_#{env}_#{name}","default_#{env}","default"]
|
16
|
+
end
|
17
|
+
end
|
14
18
|
|
15
19
|
def check_args(size)
|
16
20
|
if name_args.size < 1
|
@@ -26,14 +26,22 @@ class NodefuCreate < Chef::Knife
|
|
26
26
|
option :yes,
|
27
27
|
:short => "-y",
|
28
28
|
:long => "--yes",
|
29
|
+
:boolean => true,
|
29
30
|
:description => "ignores prompts, just say YES!",
|
30
|
-
:default =>
|
31
|
+
:default => false
|
31
32
|
|
32
|
-
option :
|
33
|
+
option :disable_default_groups,
|
33
34
|
:short => "-g",
|
34
|
-
:long => "--
|
35
|
-
:
|
36
|
-
:default =>
|
35
|
+
:long => "--disable_default-groups",
|
36
|
+
:boolean => true,
|
37
|
+
:default => false
|
38
|
+
|
39
|
+
option :hostname_style_groups,
|
40
|
+
:short => "-h",
|
41
|
+
:long => "--hostname-style-groups",
|
42
|
+
:boolean => true,
|
43
|
+
:description => "Use hostname style names for auto generated node security groups",
|
44
|
+
:default => false
|
37
45
|
|
38
46
|
option :definitions_file,
|
39
47
|
:short => "-d <definitions_directory>",
|
@@ -41,31 +49,6 @@ class NodefuCreate < Chef::Knife
|
|
41
49
|
:description => "yml definitions directory",
|
42
50
|
:default => nil
|
43
51
|
|
44
|
-
option :exit_on_fail,
|
45
|
-
:short => "-e",
|
46
|
-
:long => "--exit-on-fail",
|
47
|
-
:description => "Exit if one of the servers fails to come up",
|
48
|
-
:default => nil
|
49
|
-
|
50
|
-
option :destroy_on_fail,
|
51
|
-
:short => "-f",
|
52
|
-
:long => "--destroy-on-fail",
|
53
|
-
:description => "Terminate the ec2 instance on error",
|
54
|
-
:default => nil
|
55
|
-
|
56
|
-
def destroy_instances(servers)
|
57
|
-
ec2_delete = Ec2ServerDelete.new
|
58
|
-
servers.each_pair.with_index do |(k,v),i|
|
59
|
-
if v['server'].nil?
|
60
|
-
ui.msg("No server to delete for #{k}")
|
61
|
-
else
|
62
|
-
ec2_delete.name_args[i] = v['server'].id
|
63
|
-
end
|
64
|
-
end
|
65
|
-
ec2_delete.config[:yes] = true
|
66
|
-
ec2_delete.run
|
67
|
-
end
|
68
|
-
|
69
52
|
def definitions_from_directory(dir)
|
70
53
|
definitions = Hash.new
|
71
54
|
Dir.entries(dir).each do |f|
|
@@ -106,10 +89,12 @@ class NodefuCreate < Chef::Knife
|
|
106
89
|
pretty_print_hash(node_spec)
|
107
90
|
pretty_print_hash(vm_spec)
|
108
91
|
|
109
|
-
|
110
|
-
ui.msg("#{ui.color('Auto generated security groups',:cyan)}: #{generate_security_groups("#{base_name}#{start_range}-#{end_range}",env)}")
|
92
|
+
unless config[:disable_default_groups]
|
93
|
+
ui.msg("#{ui.color('Auto generated security groups',:cyan)}: #{generate_security_groups("#{base_name}#{start_range}-#{end_range}",env,domain)}")
|
111
94
|
end
|
112
95
|
|
96
|
+
puts config.inspect
|
97
|
+
|
113
98
|
config[:yes] ? user_response = 'yes' : user_response = ui.ask_question("Does this seem right to you? [y/n]").downcase
|
114
99
|
abort("See ya!") unless (['yes','y',].include?(user_response))
|
115
100
|
|
@@ -119,10 +104,10 @@ class NodefuCreate < Chef::Knife
|
|
119
104
|
ec2_server_request = Ec2ServerCreate.new
|
120
105
|
node_name = "#{base_name}#{i}"
|
121
106
|
full_node_name = "#{node_name}.#{env}.#{domain}"
|
122
|
-
security_groups = if config[:
|
123
|
-
generate_security_groups(node_name,env) + aux_groups
|
124
|
-
else
|
107
|
+
security_groups = if config[:disable_default_groups]
|
125
108
|
aux_groups
|
109
|
+
else
|
110
|
+
generate_security_groups(node_name,env,domain) + aux_groups
|
126
111
|
end
|
127
112
|
|
128
113
|
# A handfull of the Ec2ServerCreate command line options use a :proc field so I have to
|
@@ -177,10 +162,5 @@ class NodefuCreate < Chef::Knife
|
|
177
162
|
ui.msg(ui.color('Successful Nodes:',:green))
|
178
163
|
successful.each_pair { |k,v| ui.msg("#{k}: #{v['id']}, #{v['server'].dns_name}, #{v['server'].id}") }
|
179
164
|
end
|
180
|
-
|
181
|
-
if config[:destroy_on_fail]
|
182
|
-
ui.msg(ui.color("Destroying failed nodes:",:red))
|
183
|
-
destroy_instances(failed)
|
184
|
-
end
|
185
165
|
end
|
186
166
|
end
|
data/lib/knife-nodefu/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knife-nodefu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-05-
|
12
|
+
date: 2013-05-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: knife-ec2
|