sfpagent 0.1.10 → 0.1.11
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of sfpagent might be problematic. Click here for more details.
- data/VERSION +1 -1
- data/lib/sfpagent/bsig.rb +35 -14
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.11
|
data/lib/sfpagent/bsig.rb
CHANGED
@@ -46,8 +46,11 @@ class Sfp::BSig
|
|
46
46
|
disable
|
47
47
|
}
|
48
48
|
}
|
49
|
+
|
49
50
|
register_satisfier_thread(:reset)
|
50
51
|
|
52
|
+
system("rm -f #{CachedDir}/operator.*.lock")
|
53
|
+
|
51
54
|
Sfp::Agent.logger.info "[#{@mode}] BSig engine is running."
|
52
55
|
|
53
56
|
puts "BSig Engine is running with PID #{$$}"
|
@@ -117,16 +120,16 @@ class Sfp::BSig
|
|
117
120
|
operator = select_operator(flaws, operators, pi)
|
118
121
|
return :failure if operator.nil?
|
119
122
|
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
}
|
124
|
-
Sfp::Agent.logger.info "[#{@mode}] Selected operator: #{operator['name']}" #{JSON.generate(operator)}"
|
123
|
+
#Sfp::Agent.logger.info "[#{@mode}] Flaws: #{JSON.generate(flaws)}"
|
124
|
+
|
125
|
+
return :ongoing if not lock_operator(operator)
|
125
126
|
|
126
|
-
|
127
|
+
Sfp::Agent.logger.info "[#{@mode}] Selected operator: #{operator['name']}"
|
128
|
+
|
129
|
+
next_pi = operator['pi'] + 1
|
127
130
|
pre_local, pre_remote = split_preconditions(operator)
|
128
131
|
|
129
|
-
Sfp::Agent.logger.info "[#{@mode}] local-flaws: #{JSON.generate(pre_local)}, remote-flaws: #{JSON.generate(pre_remote)}"
|
132
|
+
#Sfp::Agent.logger.info "[#{@mode}] local-flaws: #{JSON.generate(pre_local)}, remote-flaws: #{JSON.generate(pre_remote)}"
|
130
133
|
|
131
134
|
status = nil
|
132
135
|
tries = MaxTries
|
@@ -143,16 +146,16 @@ Sfp::Agent.logger.info "[#{@mode}] local-flaws: #{JSON.generate(pre_local)}, rem
|
|
143
146
|
tries -= 1
|
144
147
|
end until tries <= 0
|
145
148
|
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
+
if status != :no_flaw or
|
150
|
+
not achieve_remote_goal(id, pre_remote, next_pi) or
|
151
|
+
not invoke(operator)
|
149
152
|
|
150
|
-
|
153
|
+
unlock_operator(operator) if not operator.nil?
|
154
|
+
return :failure
|
155
|
+
end
|
151
156
|
|
157
|
+
unlock_operator(operator) if not operator.nil?
|
152
158
|
:repaired
|
153
|
-
|
154
|
-
ensure
|
155
|
-
@lock.synchronize { operator['selected'] = false } if not operator.nil?
|
156
159
|
end
|
157
160
|
|
158
161
|
def achieve_remote_goal(id, goal, pi)
|
@@ -220,6 +223,22 @@ Sfp::Agent.logger.info "[#{@mode}] local-flaws: #{JSON.generate(pre_local)}, rem
|
|
220
223
|
}
|
221
224
|
end
|
222
225
|
|
226
|
+
def lock_operator(operator)
|
227
|
+
@lock.synchronize {
|
228
|
+
operator_lock_file = "#{CachedDir}/operator.#{operator['name']}.lock"
|
229
|
+
return false if File.exist?(operator_lock_file)
|
230
|
+
File.open(operator_lock_file, 'w') { |f| f.write('1') }
|
231
|
+
return true
|
232
|
+
}
|
233
|
+
end
|
234
|
+
|
235
|
+
def unlock_operator(operator)
|
236
|
+
@lock.synchronize {
|
237
|
+
operator_lock_file = "#{CachedDir}/operator.#{operator['name']}.lock"
|
238
|
+
File.delete(operator_lock_file) if File.exist?(operator_lock_file)
|
239
|
+
}
|
240
|
+
end
|
241
|
+
|
223
242
|
def split_goal_by_agent(goal)
|
224
243
|
agents = Sfp::Agent.get_agents
|
225
244
|
agent_goal = {}
|
@@ -236,6 +255,8 @@ Sfp::Agent.logger.info "[#{@mode}] local-flaws: #{JSON.generate(pre_local)}, rem
|
|
236
255
|
data = {'id' => id,
|
237
256
|
'goal' => JSON.generate(g),
|
238
257
|
'pi' => pi}
|
258
|
+
Sfp::Agent.logger.info "[#{@mode}] Request goal to: #{agent_name} [WAIT]"
|
259
|
+
|
239
260
|
code, _ = put_data(agent['sfpAddress'], agent['sfpPort'], SatisfierPath, data)
|
240
261
|
|
241
262
|
Sfp::Agent.logger.info "[#{@mode}] Request goal to: #{agent_name} - status: " + code.to_s
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sfpagent
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.11
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2013-08-13 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sfp
|
16
|
-
requirement: &
|
16
|
+
requirement: &7616500 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
version: 0.3.12
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *7616500
|
25
25
|
description: A Ruby implementation of SFP agent.
|
26
26
|
email: herry13@gmail.com
|
27
27
|
executables:
|