knife-nodefu 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -8,9 +8,13 @@ module NodefuBase
8
8
  end
9
9
  end
10
10
 
11
- def generate_security_groups(name,env)
12
- ["node_#{env}_#{name}","default_#{env}","default"]
13
- end
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 => nil
31
+ :default => false
31
32
 
32
- option :no_default_groups,
33
+ option :disable_default_groups,
33
34
  :short => "-g",
34
- :long => "--no-groups",
35
- :description => "Do not automatically generate security groups",
36
- :default => nil
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
- if config[:no_default_groups].nil?
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[:no_default_groups].nil?
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
@@ -1,6 +1,6 @@
1
1
  module Knife
2
2
  module Nodefu
3
- VERSION = "0.2.1"
3
+ VERSION = "0.3.0"
4
4
  MAJOR, MINOR, TINY = VERSION.split(',')
5
5
  end
6
6
  end
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.2.1
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-15 00:00:00.000000000 Z
12
+ date: 2013-05-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: knife-ec2