sfpagent 0.2.4 → 0.2.5
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/bin/init_script +51 -0
- data/lib/sfpagent/agent.rb +25 -3
- data/lib/sfpagent/module.rb +7 -5
- data/lib/sfpagent/runtime.rb +1 -1
- metadata +4 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.5
|
data/bin/init_script
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
#! /bin/sh
|
2
|
+
|
3
|
+
### BEGIN INIT INFO
|
4
|
+
# Provides: sfpagent
|
5
|
+
# Required-Start:
|
6
|
+
# Required-Stop:
|
7
|
+
# Default-Start: 2 3 4 5
|
8
|
+
# Default-Stop:
|
9
|
+
# Short-Description: SFP Agent Daemon
|
10
|
+
### END INIT INFO
|
11
|
+
|
12
|
+
set -e
|
13
|
+
|
14
|
+
bin="/home/herry/workspace/sfp/sfpagent/bin/sfpagent"
|
15
|
+
|
16
|
+
test -x $bin || exit 0
|
17
|
+
|
18
|
+
umask 022
|
19
|
+
|
20
|
+
. /lib/lsb/init-functions
|
21
|
+
|
22
|
+
if [ `/usr/bin/id -u` != "0" ]; then
|
23
|
+
log_daemon_msg "Error: must be run with root"
|
24
|
+
exit 1
|
25
|
+
fi
|
26
|
+
|
27
|
+
export PATH="${PATH:+$PATH:}/usr/sbin:/sbin:/usr/local/bin"
|
28
|
+
|
29
|
+
case "$1" in
|
30
|
+
start)
|
31
|
+
log_daemon_msg "Starting SFP Agent daemon" "sfpagent" || true
|
32
|
+
$bin -s
|
33
|
+
;;
|
34
|
+
stop)
|
35
|
+
log_daemon_msg "Stopping SFP Agent daemon" "sfpagent" || true
|
36
|
+
$bin -t
|
37
|
+
;;
|
38
|
+
restart)
|
39
|
+
log_daemon_msg "Restarting SFP Agent daemon" "sfpagent" || true
|
40
|
+
$bin -r
|
41
|
+
;;
|
42
|
+
status)
|
43
|
+
$bin -a && exit 0 || exit $?
|
44
|
+
;;
|
45
|
+
|
46
|
+
*)
|
47
|
+
log_action_msg "Usage: /etc/init.d/sfpagent {start|stop|restart|status}" || true
|
48
|
+
exit 1
|
49
|
+
esac
|
50
|
+
|
51
|
+
exit 0
|
data/lib/sfpagent/agent.rb
CHANGED
@@ -168,8 +168,11 @@ module Sfp
|
|
168
168
|
end
|
169
169
|
|
170
170
|
def self.get_cache_model(name)
|
171
|
-
|
172
|
-
|
171
|
+
if File.exist?(CacheModelFile)
|
172
|
+
model = JSON[File.read(CacheModelFile)]
|
173
|
+
return model[name] if model.has_key?(name)
|
174
|
+
end
|
175
|
+
nil
|
173
176
|
end
|
174
177
|
|
175
178
|
def self.set_cache_model(p={})
|
@@ -181,7 +184,7 @@ module Sfp
|
|
181
184
|
if p[:name]
|
182
185
|
if p[:model]
|
183
186
|
model[p[:name]] = p[:model]
|
184
|
-
Sfp::Agent.logger.info "
|
187
|
+
Sfp::Agent.logger.info "Saving cache model for #{p[:name]}..."
|
185
188
|
else
|
186
189
|
model.delete(p[:name]) if model.has_key?(p[:name])
|
187
190
|
Sfp::Agent.logger.info "Deleting cache model for #{p[:name]}..."
|
@@ -312,6 +315,25 @@ module Sfp
|
|
312
315
|
false
|
313
316
|
end
|
314
317
|
|
318
|
+
def self.resolve_model(path)
|
319
|
+
return Sfp::Undefined.new if !defined?(@@runtime) or @@runtime.nil? or @@runtime.root.nil?
|
320
|
+
begin
|
321
|
+
path = path.simplify
|
322
|
+
value = @@runtime.model.at?(path)
|
323
|
+
if value.is_a?(Sfp::Unknown)
|
324
|
+
_, name, rest = path.split('.', 3)
|
325
|
+
model = get_cache_model(name)
|
326
|
+
if !model.nil? and model.has_key?('model')
|
327
|
+
return (rest.to_s.length <= 0 ? model['model'] : model['model'].at?("$.#{rest}"))
|
328
|
+
end
|
329
|
+
end
|
330
|
+
return value
|
331
|
+
rescue Exception => e
|
332
|
+
Sfp::Agent.logger.error "Resolve model #{path} [Failed] #{e}\n#{e.backtrace.join("\n")}"
|
333
|
+
end
|
334
|
+
Sfp::Undefined.new
|
335
|
+
end
|
336
|
+
|
315
337
|
def self.resolve(path, as_sfp=true)
|
316
338
|
return Sfp::Undefined.new if !defined?(@@runtime) or @@runtime.nil? or @@runtime.root.nil?
|
317
339
|
begin
|
data/lib/sfpagent/module.rb
CHANGED
@@ -27,10 +27,6 @@ module Sfp::Resource
|
|
27
27
|
model.each { |k,v| @model[k] = v }
|
28
28
|
end
|
29
29
|
|
30
|
-
def apply(p={})
|
31
|
-
true
|
32
|
-
end
|
33
|
-
|
34
30
|
def to_model
|
35
31
|
@state = {}
|
36
32
|
@model.each { |k,v| @state[k] = v }
|
@@ -39,7 +35,13 @@ module Sfp::Resource
|
|
39
35
|
alias_method :reset, :to_model
|
40
36
|
|
41
37
|
def resolve(path)
|
42
|
-
Sfp::Agent.resolve(path
|
38
|
+
Sfp::Agent.resolve(path)
|
39
|
+
end
|
40
|
+
|
41
|
+
alias_method :resolve_state, :resolve
|
42
|
+
|
43
|
+
def resolve_model(path)
|
44
|
+
Sfp::Agent.resolve_model(path)
|
43
45
|
end
|
44
46
|
|
45
47
|
protected
|
data/lib/sfpagent/runtime.rb
CHANGED
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.2.
|
4
|
+
version: 0.2.5
|
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: &12203820 !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: *12203820
|
25
25
|
description: A Ruby implementation of SFP agent.
|
26
26
|
email: herry13@gmail.com
|
27
27
|
executables:
|
@@ -34,6 +34,7 @@ files:
|
|
34
34
|
- README.md
|
35
35
|
- VERSION
|
36
36
|
- bin/cert.rb
|
37
|
+
- bin/init_script
|
37
38
|
- bin/install_module
|
38
39
|
- bin/sfpagent
|
39
40
|
- lib/sfpagent.rb
|