dynflow 0.7.1 → 0.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/dynflow/action.rb
CHANGED
@@ -100,9 +100,7 @@ module Dynflow
|
|
100
100
|
@run_step_id = Type! attributes.fetch(:run_step_id), Integer, NilClass
|
101
101
|
@finalize_step_id = Type! attributes.fetch(:finalize_step_id), Integer, NilClass
|
102
102
|
|
103
|
-
@execution_plan = Type!(attributes.fetch(:execution_plan),
|
104
|
-
ExecutionPlan) if phase? Plan, Present
|
105
|
-
@trigger = Type! attributes.fetch(:trigger), Action, NilClass if phase? Plan
|
103
|
+
@execution_plan = Type!(attributes.fetch(:execution_plan), ExecutionPlan) if phase? Present
|
106
104
|
|
107
105
|
getter =-> key, required do
|
108
106
|
required ? attributes.fetch(key) : attributes.fetch(key, {})
|
@@ -142,6 +140,12 @@ module Dynflow
|
|
142
140
|
end
|
143
141
|
end
|
144
142
|
|
143
|
+
def set_plan_context(execution_plan, trigger)
|
144
|
+
phase! Plan
|
145
|
+
@execution_plan = Type! execution_plan, ExecutionPlan
|
146
|
+
@trigger = Type! trigger, Action, NilClass
|
147
|
+
end
|
148
|
+
|
145
149
|
def trigger
|
146
150
|
phase! Plan
|
147
151
|
@trigger
|
@@ -143,7 +143,8 @@ module Dynflow
|
|
143
143
|
|
144
144
|
def prepare(action_class)
|
145
145
|
save
|
146
|
-
@root_plan_step =
|
146
|
+
@root_plan_step = add_plan_step(action_class)
|
147
|
+
@root_plan_step.save
|
147
148
|
end
|
148
149
|
|
149
150
|
def plan(*args)
|
@@ -225,8 +226,10 @@ module Dynflow
|
|
225
226
|
current_run_flow.add_and_resolve(@dependency_graph, new_flow) if current_run_flow
|
226
227
|
end
|
227
228
|
|
228
|
-
def add_plan_step(action_class, planned_by)
|
229
|
-
add_step(Steps::PlanStep, action_class, generate_action_id, planned_by.plan_step_id)
|
229
|
+
def add_plan_step(action_class, planned_by = nil)
|
230
|
+
add_step(Steps::PlanStep, action_class, generate_action_id, planned_by && planned_by.plan_step_id).tap do |step|
|
231
|
+
step.initialize_action
|
232
|
+
end
|
230
233
|
end
|
231
234
|
|
232
235
|
def add_run_step(action)
|
@@ -37,25 +37,17 @@ module Dynflow
|
|
37
37
|
|
38
38
|
# @return [Action]
|
39
39
|
def execute(execution_plan, trigger, *args)
|
40
|
+
unless @action
|
41
|
+
raise "The action was not initialized, you might forgot to call initialize_action method"
|
42
|
+
end
|
43
|
+
@action.set_plan_context(execution_plan, trigger)
|
40
44
|
Type! execution_plan, ExecutionPlan
|
41
|
-
|
42
|
-
|
43
|
-
step: self,
|
44
|
-
plan_step_id: self.id,
|
45
|
-
run_step_id: nil,
|
46
|
-
finalize_step_id: nil,
|
47
|
-
phase: phase,
|
48
|
-
execution_plan: execution_plan,
|
49
|
-
trigger: trigger }
|
50
|
-
action = action_class.new(attributes, execution_plan.world)
|
51
|
-
persistence.save_action(execution_plan_id, action)
|
52
|
-
|
53
|
-
with_meta_calculation(action) do
|
54
|
-
action.execute(*args)
|
45
|
+
with_meta_calculation(@action) do
|
46
|
+
@action.execute(*args)
|
55
47
|
end
|
56
48
|
|
57
|
-
persistence.save_action(execution_plan_id, action)
|
58
|
-
return action
|
49
|
+
persistence.save_action(execution_plan_id, @action)
|
50
|
+
return @action
|
59
51
|
end
|
60
52
|
|
61
53
|
def self.state_transitions
|
@@ -83,6 +75,19 @@ module Dynflow
|
|
83
75
|
hash[:real_time],
|
84
76
|
hash[:children]
|
85
77
|
end
|
78
|
+
|
79
|
+
def initialize_action
|
80
|
+
attributes = { execution_plan_id: execution_plan_id,
|
81
|
+
id: action_id,
|
82
|
+
step: self,
|
83
|
+
plan_step_id: self.id,
|
84
|
+
run_step_id: nil,
|
85
|
+
finalize_step_id: nil,
|
86
|
+
phase: phase}
|
87
|
+
@action = action_class.new(attributes, world)
|
88
|
+
persistence.save_action(execution_plan_id, @action)
|
89
|
+
@action
|
90
|
+
end
|
86
91
|
end
|
87
92
|
end
|
88
93
|
end
|
@@ -9,15 +9,15 @@ module Dynflow
|
|
9
9
|
step = DummyStep.new
|
10
10
|
action_class.new(
|
11
11
|
{ step: DummyStep.new,
|
12
|
-
execution_plan: execution_plan,
|
13
|
-
trigger: trigger,
|
14
12
|
execution_plan_id: execution_plan.id,
|
15
13
|
id: Testing.get_id,
|
16
14
|
phase: Action::Plan,
|
17
15
|
plan_step_id: step.id,
|
18
16
|
run_step_id: nil,
|
19
17
|
finalize_step_id: nil },
|
20
|
-
execution_plan.world)
|
18
|
+
execution_plan.world).tap do |action|
|
19
|
+
action.set_plan_context(execution_plan, trigger)
|
20
|
+
end
|
21
21
|
end
|
22
22
|
|
23
23
|
def create_action_presentation(action_class)
|
data/lib/dynflow/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dynflow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-07-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|