From 01a82a2960d6d89bd2ccb12469b1829714a021c1 Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Fri, 11 Dec 2015 14:36:21 +0200 Subject: [PATCH] Story#108521790 - update that code works with nameservers --- app/models/legacy/domain_history.rb | 37 +++++++++++++++++------------ app/models/legacy/object_state.rb | 3 +++ lib/tasks/import_history.rake | 13 +++++----- 3 files changed, 31 insertions(+), 22 deletions(-) diff --git a/app/models/legacy/domain_history.rb b/app/models/legacy/domain_history.rb index b8f47f3f7..5ea18947a 100644 --- a/app/models/legacy/domain_history.rb +++ b/app/models/legacy/domain_history.rb @@ -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? diff --git a/app/models/legacy/object_state.rb b/app/models/legacy/object_state.rb index d39ca3d06..df892866d 100644 --- a/app/models/legacy/object_state.rb +++ b/app/models/legacy/object_state.rb @@ -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) diff --git a/lib/tasks/import_history.rake b/lib/tasks/import_history.rake index 3895bfa4e..1948e1b88 100644 --- a/lib/tasks/import_history.rake +++ b/lib/tasks/import_history.rake @@ -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] } )