mirror of
https://github.com/internetee/registry.git
synced 2025-07-23 03:06:14 +02:00
Add logging & domain lock on release
This commit is contained in:
parent
d35042a1be
commit
0c5ef72c7d
5 changed files with 30 additions and 3 deletions
|
@ -39,9 +39,12 @@ module Concerns
|
|||
|
||||
def release
|
||||
if release_to_auction
|
||||
transaction do
|
||||
with_lock do
|
||||
to_stdout "Checking if domain_name is auctionable: #{domain_name.auctionable?}"
|
||||
domain_name.sell_at_auction if domain_name.auctionable?
|
||||
to_stdout 'Destroying domain'
|
||||
destroy!
|
||||
to_stdout 'Sending registrar notification'
|
||||
registrar.notifications.create!(text: "#{I18n.t(:domain_deleted)}: #{name}",
|
||||
attached_obj_id: id,
|
||||
attached_obj_type: self.class)
|
||||
|
@ -50,6 +53,11 @@ module Concerns
|
|||
discard
|
||||
end
|
||||
end
|
||||
|
||||
def to_stdout(message)
|
||||
time = Time.zone.now.utc
|
||||
STDOUT << "#{time} - #{message}\n" unless Rails.env.test?
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
8
app/models/concerns/to_stdout.rb
Normal file
8
app/models/concerns/to_stdout.rb
Normal file
|
@ -0,0 +1,8 @@
|
|||
module ToStdout
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
def to_stdout(message)
|
||||
time = Time.zone.now.utc
|
||||
STDOUT << "#{time} - #{message}\n" unless Rails.env.test?
|
||||
end
|
||||
end
|
|
@ -2,6 +2,7 @@ module DNS
|
|||
# Namespace is needed, because a class with the same name is defined by `domain_name` gem,
|
||||
# a dependency of `actionmailer`,
|
||||
class DomainName
|
||||
include ToStdout
|
||||
def initialize(name)
|
||||
@name = name
|
||||
end
|
||||
|
@ -36,6 +37,7 @@ module DNS
|
|||
auction = Auction.new
|
||||
auction.domain = name
|
||||
auction.start
|
||||
to_stdout "Created the auction: #{auction.inspect}"
|
||||
update_whois_from_auction(auction)
|
||||
end
|
||||
|
||||
|
@ -100,7 +102,8 @@ module DNS
|
|||
whois_record = Whois::Record.find_or_create_by!(name: name) do |record|
|
||||
record.json = {}
|
||||
end
|
||||
|
||||
to_stdout "Starting to update WHOIS record #{whois_record.inspect}\n\n"\
|
||||
"from auction #{auction.inspect}"
|
||||
whois_record.update_from_auction(auction)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,24 +1,30 @@
|
|||
module Whois
|
||||
class Record < Whois::Server
|
||||
include ToStdout
|
||||
self.table_name = 'whois_records'
|
||||
|
||||
def self.disclaimer
|
||||
Setting.registry_whois_disclaimer
|
||||
end
|
||||
|
||||
# rubocop:disable Metrics/AbcSize
|
||||
def update_from_auction(auction)
|
||||
if auction.started?
|
||||
update!(json: { name: auction.domain,
|
||||
status: ['AtAuction'],
|
||||
disclaimer: self.class.disclaimer })
|
||||
to_stdout "Updated from auction WHOIS record #{inspect}"
|
||||
elsif auction.no_bids?
|
||||
to_stdout "Destroying WHOIS record #{inspect}"
|
||||
destroy!
|
||||
elsif auction.awaiting_payment? || auction.payment_received?
|
||||
update!(json: { name: auction.domain,
|
||||
status: ['PendingRegistration'],
|
||||
disclaimer: self.class.disclaimer,
|
||||
registration_deadline: auction.whois_deadline })
|
||||
to_stdout "Updated from auction WHOIS record #{inspect}"
|
||||
end
|
||||
end
|
||||
# rubocop:enable Metrics/AbcSize
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue