class NagiosConfig

Constants

TEMPLATE_DIR

Public Instance Methods

bin_path() click to toggle source
    # File lib/cloudstack-nagios/commands/nagios_config.rb
 98 def bin_path
 99   unless options[:bin_path]
100     return ''
101   else
102     return options[:bin_path].end_with?('/') ? options[:bin_path] : options[:bin_path] + "/"
103   end
104 end
date_string() click to toggle source
   # File lib/cloudstack-nagios/commands/nagios_config.rb
94 def date_string
95   Time.new.strftime("%d.%m.%Y - %H:%M:%S")
96 end
generate(*configs) click to toggle source
   # File lib/cloudstack-nagios/commands/nagios_config.rb
24 def generate(*configs)
25   configs = get_configs(configs)
26   if configs.size == 0
27     say "Please specify a valid configuration.", :green
28     say "Possible values are..."
29     invoke "nagios_config:list", []
30     exit
31   end
32 
33   routers = configs.include?("router_hosts") ? cs_routers : nil
34   system_vms = configs.include?("system_vm_hosts") ? cs_system_vms : nil
35   pools = configs.include?("storage_pools") ? storage_pools : nil
36   zones = client.list_zones
37   config_name = configs.size == 1 ?
38     "#{configs[0]} configuration" :
39     "all configurations"
40 
41   header = load_template(File.join(TEMPLATE_DIR, "header.cfg.erb"))
42   output = header.result(
43     config_name: config_name,
44     date: date_string
45   )
46   configs.each do |config|
47     if configs.size == 1 && options[:template]
48       tmpl_file = options[:template]
49     else
50       tmpl_file = File.join(TEMPLATE_DIR, "cloudstack_#{config}.cfg.erb")
51     end
52     template = load_template(tmpl_file)
53     output += template.result(
54       routers: routers,
55       system_vms: system_vms,
56       bin_path: bin_path,
57       if_speed: options[:if_speed],
58       config_file: options[:config],
59       zones: zones,
60       capacity_types: Capacity::CAPACITY_TYPES,
61       storage_pools: pools,
62       over_provisioning: options[:over_provisioning],
63       ssh_key: options[:ssh_key],
64       ssh_port: options[:ssh_port]
65     )
66   end
67   footer = load_template(File.join(TEMPLATE_DIR, "footer.cfg.erb"))
68   output += footer.result(
69     config_name: config_name
70   )
71   puts output
72 end
get_configs(configs = []) click to toggle source
   # File lib/cloudstack-nagios/commands/nagios_config.rb
82 def get_configs(configs = [])
83   all_configs = %w(hostgroups zone_hosts router_hosts router_services system_vm_hosts system_vm_services capacities async_jobs snapshots storage_pools)
84   if configs.size == 0
85     return all_configs
86   else
87     if configs.size == 1 && configs[0].downcase == "all"
88       return all_configs
89     end
90     return all_configs.select { |config| configs.include? config }
91   end
92 end
list() click to toggle source
   # File lib/cloudstack-nagios/commands/nagios_config.rb
75 def list
76   configs = get_configs
77   puts ["all"] << configs
78 end