expire handler
This commit is contained in:
parent
164e05f8bc
commit
bba3453e7b
45
devops-service/expire_handler.rb
Normal file
45
devops-service/expire_handler.rb
Normal 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
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user