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.
@@ -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