class Unsub::Main
Constants
- KNIFE
Public Instance Methods
art()
click to toggle source
# File lib/unsub/main.rb, line 40 def art puts "\n%s\n" % ART end
go()
click to toggle source
# File lib/unsub/main.rb, line 73 def go db = Daybreak::DB.new options.database aws = { ec2: Aws::EC2::Client.new, sqs: Aws::SQS::Client.new } services = { icinga: Service::Icinga.new(options.icinga_cmd, log), sensu: Service::Sensu.new(options.sensu_url, log), chef: Service::Chef.new(options.knife_file, log) } log.info service: 'main', event: 'hello', \ db: db, aws: aws, services: services loop do response = aws[:sqs].receive_message queue_url: options.queue_url response.messages.each do |raw| receipt = raw.receipt_handle body = JSON.parse raw.body message = JSON.parse body['Message'] event = Event.new message, db, aws, services success = case event.kind when :launch s1 = services[:icinga].enable_notifications event.host s2 = services[:chef].remove_tag event.host, 'terminated' s3 = services[:chef].add_tag event.host, 'launched' s1 && s2 && s3 when :terminate s1 = services[:sensu].delete_client event.host s2 = services[:icinga].disable_notifications event.host s3 = services[:chef].remove_tag event.host, 'launched' s4 = services[:chef].add_tag event.host, 'terminated' db.delete! event.host[:id] s1 && s2 && s3 && s4 end aws[:sqs].delete_message \ queue_url: options.queue_url, receipt_handle: receipt log.info service: 'main', event: 'processed', \ message: message, receipt: receipt, success: success end end end
version()
click to toggle source
# File lib/unsub/main.rb, line 34 def version puts VERSION end