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