class Dogscaler::Cli
Public Instance Methods
apply()
click to toggle source
# File lib/dogscaler/cli.rb, line 39 def apply Settings.load!(File.expand_path(options[:config])) if options[:config] if options[:debug] self.class.logger.level = Logger::DEBUG elsif options[:terse] self.class.logger.level = Logger::ERROR elsif options[:verbose] self.class.logger.level = Logger::INFO else self.class.logger.level = Logger::WARN end instances = [] Settings.instances.each do |k,v| instance = Dogscaler::Instance.new instance.attributes = v.symbolize_keys instance.process_checks instances << instance end state = Dogscaler::State.new begin slack = Dogscaler::SlackClient.new(Settings.slack['api_token'], Settings.slack['channel']) rescue NoMethodError # Slack not configured slack = false end instances.each do |instance| if instance.preflight_checks(state) message = "Scaling #{instance.autoscalegroupname} from #{instance.capacity} to #{instance.change}" logger.info(message) if options[:dryrun] logger.info "Not updating due to dry run mode" else slack.send_message(message) if slack state.update(instance.autoscalegroupname) instance.update_capacity(options) end end end state.save! end
config()
click to toggle source
# File lib/dogscaler/cli.rb, line 34 def config Dogscaler::Config.new.generate end
debug()
click to toggle source
# File lib/dogscaler/cli.rb, line 23 def debug Settings.load!(File.expand_path(options[:config])) if options[:config] Settings.instances.each do |i| instance = Dogscaler::Instance.new instance.attributes = i.symbolize_keys dd_client = Dogscaler::Datadog.new(Settings.datadog) dd_client.process(instance) end end