aboutsummaryrefslogtreecommitdiffstats
path: root/app/models
diff options
context:
space:
mode:
authorAlban Peignier2017-12-12 21:24:24 +0100
committerAlban Peignier2017-12-12 21:26:57 +0100
commitddf3e6c70b5523227c5fbabdf981e301fbf14e5d (patch)
treec246b1afb015267adac51ecf44ffae19075294e7 /app/models
parent4b341d795100a8a5417e4d822ae2afb3ed70da8a (diff)
downloadchouette-core-ddf3e6c70b5523227c5fbabdf981e301fbf14e5d.tar.bz2
Move logic to ReferentialCloning. Improve specs. Refs #5283
Diffstat (limited to 'app/models')
-rw-r--r--app/models/referential_cloning.rb21
1 files changed, 17 insertions, 4 deletions
diff --git a/app/models/referential_cloning.rb b/app/models/referential_cloning.rb
index 5bf283814..24117e6c8 100644
--- a/app/models/referential_cloning.rb
+++ b/app/models/referential_cloning.rb
@@ -2,14 +2,27 @@ class ReferentialCloning < ActiveRecord::Base
include AASM
belongs_to :source_referential, class_name: 'Referential'
belongs_to :target_referential, class_name: 'Referential'
- after_commit :perform_clone, :on => :create
+ after_commit :clone, on: :create
- private
- def perform_clone
+ def clone
ReferentialCloningWorker.perform_async(id)
- # ReferentialCloningWorker.new.perform(id)
end
+ def clone!
+ run!
+
+ AF83::SchemaCloner
+ .new(source_referential.slug, target_referential.slug)
+ .clone_schema
+
+ successful!
+ rescue Exception => e
+ Rails.logger.error "Clone failed : #{e}"
+ failed!
+ end
+
+ private
+
aasm column: :status do
state :new, :initial => true
state :pending