Story#108521790 - update that code works with nameservers

This commit is contained in:
Vladimir Krylov 2015-12-11 14:36:21 +02:00
parent f6d16f51e9
commit 01a82a2960
3 changed files with 31 additions and 22 deletions

View file

@ -51,26 +51,33 @@ module Legacy
end
def user
@user ||= Registrar.find_by(legacy_id: obj_his.upid || obj_his.clid).try(:api_users).try(:first)
@user ||= begin
obj_his = Legacy::ObjectHistory.find_by(historyid: historyid)
Registrar.find_by(legacy_id: obj_his.upid || obj_his.clid).try(:api_users).try(:first)
end
end
def history_domain
self
end
# returns imported nameserver ids
def import_nameservers_history(new_domain, time)
#removing previous nameservers
NameserverVersion.where("object->>legacy_domain_id").where(event: :create).where("created_at <= ?", time).each do |nv|
if NameserverVersion.where(item_type: nv.item_type, item_id: nv.item_id, event: :destroy).none?
NameserverVersion.create!(
item_type: nv.item_type,
item_id: nv.item_id,
event: :destroy,
whodunnit: user.try(:id),
object: nv.object_changes.each_with_object({}){|(k,v),hash| hash[k] = v.last },
object_changes: {},
created_at: time
)
end
end
# #removing previous nameservers
# NameserverVersion.where("object_changes->>'legacy_domain_id' = '[nil,#{id}]'").where(event: :create).where("created_at <= ?", time).each do |nv|
# if NameserverVersion.where(item_type: nv.item_type, item_id: nv.item_id, event: :destroy).none?
# NameserverVersion.create!(
# item_type: nv.item_type,
# item_id: nv.item_id,
# event: :destroy,
# whodunnit: user.try(:id),
# object: nv.object_changes.each_with_object({}){|(k,v),hash| hash[k] = v.last },
# object_changes: {},
# created_at: time
# )
# end
# end
if (nssets = nsset_histories.at(time).to_a).any?

View file

@ -1,6 +1,7 @@
module Legacy
class ObjectState < Db
self.table_name = :object_state
attr_accessor :history_domain
scope :valid, -> { where('valid_to IS NULL') }
@ -82,6 +83,8 @@ module Legacy
def get_current_domain_object(time, param)
d_his = Legacy::DomainHistory.get_record_at(object_id, historyid)
@history_domain = d_his
hash = d_his.get_current_domain_object(time, param)
hash[:statuses] = Legacy::ObjectState.states_for_domain_at(object_id, time + 1)

View file

@ -108,7 +108,6 @@ namespace :import do
new_attrs[:id] = domain.id
new_attrs[:updated_at] = time
p time
p responder.import_nameservers_history(domain, time) if responder.respond_to?(:import_nameservers_history)
event = :update
event = :create if i == 0
@ -121,22 +120,22 @@ namespace :import do
if (old_val = last_changes.to_h[k]) != v then changes[k] = [old_val, v] end
end
next if changes.blank? && event != :destroy
obj_his = Legacy::ObjectHistory.find_by(historyid: responder.historyid)
responder.import_nameservers_history(domain, time) if responder.respond_to?(:import_nameservers_history)
p DomainVersion.new(
DomainVersion.create!(
item_type: domain.class,
item_id: domain.id,
event: event,
whodunnit: responder.user.try(:id),
whodunnit: responder.history_domain.user.try(:id),
object: last_changes,
object_changes: changes,
created_at: time,
children: {
admin_contacts: responder.get_admin_contact_new_ids,
tech_contacts: responder.get_tech_contact_new_ids,
admin_contacts: responder.history_domain.get_admin_contact_new_ids,
tech_contacts: responder.history_domain.get_tech_contact_new_ids,
nameservers: [],
dnskeys: [],
registrant: [responder.new_registrant_id]
registrant: [responder.history_domain.new_registrant_id]
}
)