expire handler

This commit is contained in:
Anton Martynov 2015-07-31 15:21:26 +03:00
parent 164e05f8bc
commit bba3453e7b

View File

@ -0,0 +1,45 @@
require "commands/server"
require 'rufus-scheduler'
class ExpireHandler
include ServerCommands
@@scheduler = Rufus::Scheduler.start_new
def self.add server
unless server.expires_at.nil?
if server.expires_at < Time.now.to_i
ExpireHandler.do_it server
else
time = Time.at(server.expires_at)
@@scheduler.at time, ExpireHandler.new(server, chef_env)
DevopsLogger.logger "Server '#{server.chef_node_name}' will be expired at '#{time}'"
end
end
end
def self.init
Devops::Db.connector.servers_find({"expires_at" => {"$ne" => nil}}, nil).each do |s|
ExpireHandler.add s
end
end
def initialize server
@server = server
end
def call(job)
ExpireHandler.do_it @server
end
def self.do_it server
logger = DevopsLogger.logger
logger.info("Removing node '#{server.chef_node_name}' form project '#{server.project}' and env '#{server.deploy_env}'")
begin
delete_server(server, DevopsService.mongo, logger)
rescue => e
logger.error "ExpiredHandler error: " + e.message
end
end
end