Module: NodefuBase

Included in:
NodefuCreate, NodefuDestroy
Defined in:
lib/chef/knife/nodefu_base.rb

Defined Under Namespace

Classes: NameFormatError, ServerRangeError

Instance Method Summary collapse

Instance Method Details

#check_args(size) ⇒ Object



19
20
21
22
23
24
# File 'lib/chef/knife/nodefu_base.rb', line 19

def check_args(size)
  if name_args.size < 1
    ui.fatal "Not enough arguments, expecting at least #{size}"
    exit 1
  end
end

#failed_nodes(servers) ⇒ Object



37
38
39
# File 'lib/chef/knife/nodefu_base.rb', line 37

def failed_nodes(servers)
  servers.select {|k,v| v['chef_node'].nil? || !v['failure'].nil? }    
end

#generate_security_groups(name, env, domain) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/chef/knife/nodefu_base.rb', line 11

def generate_security_groups(name,env,domain)
  if config[:hostname_style_groups]
    ["#{name}.#{env}.#{domain}","default_#{env}","default"]
  else
    ["node_#{env}_#{name}","default_#{env}","default"]
  end
end

#is_vpc?(node_spec) ⇒ Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/chef/knife/nodefu_base.rb', line 45

def is_vpc?(node_spec)
  node_spec['subnet_id'] || node_spec['private_ip_address'] ? true : false
end

#parse_servers(servers_string) ⇒ Object

Raises:

  • (ArgumentError)


26
27
28
29
30
31
32
33
34
35
# File 'lib/chef/knife/nodefu_base.rb', line 26

def parse_servers(servers_string)
  raise ArgumentError if servers_string.nil? 
  results = /([a-zA-z\-\.^\s]*)\[(\d+)-(\d+)\]/.match(servers_string) || results = /([a-zA-z\-\.^\s]*)(\d+)/.match(servers_string) 
  raise NameFormatError if results.nil? 
  base_name = results[1]
  start_range = results[2].to_i
  end_range = results[3].nil? ? start_range.to_i : results[3].to_i 
  raise ServerRangeError if end_range.to_i < start_range.to_i
  return [base_name,start_range,end_range]
end

#pretty_print_hash(hash, color = :magenta) ⇒ Object



5
6
7
8
9
# File 'lib/chef/knife/nodefu_base.rb', line 5

def pretty_print_hash(hash,color=:magenta)
  hash.each_pair do |k,v|
    ui.msg("#{ui.color(k,color)}: #{v}")
  end
end

#successful_nodes(servers) ⇒ Object



41
42
43
# File 'lib/chef/knife/nodefu_base.rb', line 41

def successful_nodes(servers)
  servers.select {|k,v| !v['chef_node'].nil? && v['failure'].nil? }
end