aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/referential_cloning.rb
diff options
context:
space:
mode:
authorXinhui2016-10-25 14:25:10 +0200
committerXinhui2016-10-25 14:30:14 +0200
commit6acac72115b2e575fb1698d74958356fe4d542f8 (patch)
tree4a6a4718c0af1b25b2b3ff08eba1f1715c64e059 /app/models/referential_cloning.rb
parent7fb087a735028cf783072886c968e4149dee7e7d (diff)
downloadchouette-core-6acac72115b2e575fb1698d74958356fe4d542f8.tar.bz2
Worker referential_cloning
Refs #1863
Diffstat (limited to 'app/models/referential_cloning.rb')
-rw-r--r--app/models/referential_cloning.rb20
1 files changed, 17 insertions, 3 deletions
diff --git a/app/models/referential_cloning.rb b/app/models/referential_cloning.rb
index 8d765f985..9bf824ac5 100644
--- a/app/models/referential_cloning.rb
+++ b/app/models/referential_cloning.rb
@@ -2,6 +2,12 @@ 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
+
+ private
+ def perform_clone
+ ReferentialCloningWorker.perform_async(self.id)
+ end
aasm column: :status do
state :new, :initial => true
@@ -9,16 +15,24 @@ class ReferentialCloning < ActiveRecord::Base
state :successful
state :failed
- event :run do
+ event :run, after: :update_started_at do
transitions :from => [:new, :failed], :to => :pending
end
- event :successful do
+ event :successful, after: :update_ended_at do
transitions :from => [:pending, :failed], :to => :successful
end
- event :failed do
+ event :failed, after: :update_ended_at do
transitions :from => :pending, :to => :failed
end
end
+
+ def update_started_at
+ update_attribute(:started_at, Time.now)
+ end
+
+ def update_ended_at
+ update_attribute(:ended_at, Time.now)
+ end
end