1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-11-29 10:24:20 +01:00
fab-manager/app/workers/version_check_worker.rb
2020-06-09 18:51:57 +02:00

47 lines
1.3 KiB
Ruby

# frozen_string_literal: true
# Will check the application version to ensure it is up-to-date
class VersionCheckWorker
include Sidekiq::Worker
sidekiq_options lock: :until_executed,
on_conflict: :reject,
queue: :system
def perform
require 'fab_hub'
begin
res = FabHub.fab_manager_version_check
rescue Errno::ECONNREFUSED => e
if Rails.env.development?
logger.warn "Unable to check the version, maybe FabHub is not running: #{e}"
return
end
end
setting_ver = Setting.find_or_initialize_by(name: 'hub_last_version')
value = {
security: res['status']['security'],
up_to_date: res['status']['up_to_date']
}
if res['upgrade_to']
value['version'] = res['upgrade_to']['semver']
value['url'] = res['upgrade_to']['url']
end
setting_ver.value = value.to_json.to_s
setting_ver.save!
setting_key = Setting.find_or_initialize_by(name: 'hub_public_key')
if setting_key.value != res['key']
setting_key.value = res['key']
setting_key.save!
end
setting_uuid = Setting.find_or_initialize_by(name: 'uuid')
return if setting_uuid.value == res['uuid']
setting_uuid.value = res['uuid']
setting_uuid.save!
end
end