35 lines
842 B
Ruby
35 lines
842 B
Ruby
require "workers/delete_expired_server_worker"
|
|
|
|
module Devops
|
|
module Executor
|
|
class ExpirationScheduler
|
|
def initialize(expires, server)
|
|
@expires, @server = expires, server
|
|
end
|
|
|
|
def schedule_expiration!
|
|
return unless @expires
|
|
DeleteExpiredServerWorker.perform_in(interval_in_seconds, server_chef_node_name: @server.chef_node_name)
|
|
end
|
|
|
|
def interval_in_seconds
|
|
interval = @expires.to_i
|
|
measure_unit = @expires.chars.last
|
|
case measure_unit
|
|
when 's'
|
|
interval
|
|
when 'm'
|
|
interval * 60
|
|
when 'h'
|
|
interval * 60 * 60
|
|
when 'd'
|
|
interval * 60 * 60 * 24
|
|
when 'w'
|
|
interval * 60 * 60 * 24 * 7
|
|
else
|
|
raise 'Wrong interval format'
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end |