34 lines
1.1 KiB
Ruby
34 lines
1.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module Gitlab
|
|
module BackgroundMigration
|
|
# save validity time pages domain
|
|
class FillValidTimeForPagesDomainCertificate
|
|
# define PagesDomain with only needed code
|
|
class PagesDomain < ActiveRecord::Base
|
|
self.table_name = 'pages_domains'
|
|
|
|
def x509
|
|
return unless certificate.present?
|
|
|
|
@x509 ||= OpenSSL::X509::Certificate.new(certificate)
|
|
rescue OpenSSL::X509::CertificateError
|
|
nil
|
|
end
|
|
end
|
|
|
|
def perform(start_id, stop_id)
|
|
PagesDomain.where(id: start_id..stop_id).find_each do |domain|
|
|
# for some reason activerecord doesn't append timezone, iso8601 forces this
|
|
domain.update_columns(
|
|
certificate_valid_not_before: domain.x509&.not_before&.iso8601,
|
|
certificate_valid_not_after: domain.x509&.not_after&.iso8601
|
|
)
|
|
rescue => e
|
|
Gitlab::AppLogger.error "Failed to update pages domain certificate valid time. id: #{domain.id}, message: #{e.message}"
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|