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 CHANGED
@@ -1 +1 @@
1
- 0.2.4
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
@@ -168,8 +168,11 @@ module Sfp
168
168
  end
169
169
 
170
170
  def self.get_cache_model(name)
171
- model = JSON[File.read(CacheModelFile)]
172
- (model.has_key?(name) ? model[name] : nil)
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 "Setting cache model for #{p[:name]}..."
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
@@ -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.simplify)
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
@@ -1,7 +1,7 @@
1
1
  require 'thread'
2
2
 
3
3
  class Sfp::Runtime
4
- attr_reader :root, :cloudfinder
4
+ attr_reader :root, :model, :cloudfinder
5
5
 
6
6
  def initialize(model)
7
7
  @mutex_procedure = Mutex.new
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
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: &7796160 !ruby/object:Gem::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: *7796160
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