Sha256: e228bbd31b9fd3b749254e9e516d6b9977d8a1796f701d49070e3148afedf180
Contents?: true
Size: 1.71 KB
Versions: 3
Compression:
Stored size: 1.71 KB
Contents
require "thor" require "yaml" module CloudstackNagios class Base < Thor include Thor::Actions include CloudstackNagios::Helper attr_reader :config # catch control-c and exit trap("SIGINT") { puts " bye" exit! } # exit with return code 1 in case of a error def self.exit_on_failure? true end no_commands do def client(opts = {}) @config ||= load_configuration @client ||= CloudstackClient::Connection.new( @config[:url], @config[:api_key], @config[:secret_key], opts.merge({debug: options[:debug]}) ) end def load_configuration(config_file = options[:config], env = options[:environment]) unless File.exists?(config_file) say "Configuration file #{config_file} not found.", :red say "Please run \'cs-nagios setup\' to create one." exit 1 end begin config = YAML::load(IO.read(config_file)) rescue error "Can't load configuration from file #{config_file}." exit 1 end if env config = config[env] unless config error "Can't find environment #{env} in configuration file." exit 1 end end config end def find_project(project_name = options[:project]) return nil unless project_name unless project = client.get_project(project_name) say "Project '#{options[:project]}' not found", :red exit 1 end project end def filter_by(objects, tag_name, tag) objects.select {|r| r[tag_name].downcase == tag.downcase} end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
cloudstack-nagios-0.1.3 | lib/cloudstack-nagios/base.rb |
cloudstack-nagios-0.1.1 | lib/cloudstack-nagios/base.rb |
cloudstack-nagios-0.1.0 | lib/cloudstack-nagios/base.rb |