sfpagent 0.3.5 → 0.3.6
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.
- checksums.yaml +7 -0
- data/Rakefile +3 -3
- data/VERSION +1 -1
- data/lib/sfpagent/module.rb +11 -16
- data/lib/sfpagent/runtime.rb +2 -2
- data/lib/sfpagent/template.rb +30 -11
- data/sfpagent.gemspec +6 -6
- metadata +21 -17
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: fe2ede39bf427923db9d74e08feb35a2f73804d2
|
4
|
+
data.tar.gz: 57b4f30d742a9850c04db2b2cde793ce6e8ac744
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: a441bf2082df51400315fb8146b6b115c0df4defd57353e7487d5f1131618d4e6f95c00318717a652869d38f7c5291a5e88c0f3c20796ac95c469e8f6f443bc3
|
7
|
+
data.tar.gz: ea2716ccce08b9672b6ab5c5a40f36c6be0a200652304b874d1925840aeee1b186b9a672983695cff590feeb36b2cfb6e5320aca947ec09f4ed970af1bed7fec
|
data/Rakefile
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
def name
|
2
|
-
|
2
|
+
@name ||= Dir['*.gemspec'].first.split('.').first
|
3
3
|
end
|
4
4
|
|
5
5
|
def version
|
6
|
-
|
6
|
+
File.read('VERSION').strip
|
7
7
|
end
|
8
8
|
|
9
9
|
def date
|
10
|
-
|
10
|
+
Date.today.to_s
|
11
11
|
end
|
12
12
|
|
13
13
|
def test_script
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.6
|
data/lib/sfpagent/module.rb
CHANGED
@@ -8,11 +8,9 @@ module Sfp::Resource
|
|
8
8
|
attr_reader :state, :model
|
9
9
|
|
10
10
|
def init(model={})
|
11
|
-
@model = {}
|
12
11
|
@state = {}
|
12
|
+
@model = (model.length <= 0 ? {} : Sfp.to_ruby(model))
|
13
13
|
@synchronized = []
|
14
|
-
|
15
|
-
update_model(model)
|
16
14
|
end
|
17
15
|
|
18
16
|
def update_state
|
@@ -30,30 +28,21 @@ module Sfp::Resource
|
|
30
28
|
end
|
31
29
|
|
32
30
|
protected
|
33
|
-
def
|
34
|
-
@model = Sfp.to_ruby(model)
|
35
|
-
end
|
36
|
-
|
37
|
-
def reset
|
31
|
+
def to_model
|
38
32
|
@state = {}
|
39
33
|
@model.each { |k,v| @state[k] = v }
|
40
34
|
end
|
41
35
|
|
42
|
-
def
|
36
|
+
def resolve_state(path)
|
43
37
|
Sfp::Agent.resolve(path)
|
44
38
|
end
|
45
39
|
|
46
|
-
alias_method :
|
40
|
+
alias_method :resolve, :resolve_state
|
47
41
|
|
48
42
|
def resolve_model(path)
|
49
43
|
Sfp::Agent.resolve_model(path)
|
50
44
|
end
|
51
45
|
|
52
|
-
def exec_seq(*commands)
|
53
|
-
commands = [commands.to_s] if not commands.is_a?(Array)
|
54
|
-
commands.each { |c| raise Exception, "Error on executing '#{c}'" if !shell(c) }
|
55
|
-
end
|
56
|
-
|
57
46
|
def log
|
58
47
|
Sfp::Agent.logger
|
59
48
|
end
|
@@ -66,7 +55,13 @@ module Sfp::Resource
|
|
66
55
|
shell "cp -rf #{source} #{destination}"
|
67
56
|
end
|
68
57
|
|
69
|
-
def render(
|
58
|
+
def render(string, map={})
|
59
|
+
model = @model.clone
|
60
|
+
map.each { |k,v| model[k] = v }
|
61
|
+
::Sfp::Template.render_file(file, model)
|
62
|
+
end
|
63
|
+
|
64
|
+
def render_file(file, map={})
|
70
65
|
model = @model.clone
|
71
66
|
map.each { |k,v| model[k] = v }
|
72
67
|
::Sfp::Template.render_file(file, model)
|
data/lib/sfpagent/runtime.rb
CHANGED
@@ -97,12 +97,12 @@ class Sfp::Runtime
|
|
97
97
|
|
98
98
|
def update_model(model, root, path)
|
99
99
|
object = {}
|
100
|
-
if model['_context'] == 'object' and model['_isa'].to_s.isref and model['_isa'].to_s != '$.Object'
|
100
|
+
if model['_context'] == 'object' and model['_isa'].to_s.isref #and model['_isa'].to_s != '$.Object'
|
101
101
|
object[:_self] = instantiate_sfp_object(model, root)
|
102
102
|
end
|
103
103
|
|
104
104
|
model.each do |key,child|
|
105
|
-
if key[0,1] != '_' and child.is_a?(Hash) and child['_context'] == 'object' and child['_isa'].to_s != '$.Object'
|
105
|
+
if key[0,1] != '_' and child.is_a?(Hash) and child['_context'] == 'object' #and child['_isa'].to_s != '$.Object'
|
106
106
|
object[key] = update_model(child, root, path.push(key))
|
107
107
|
end
|
108
108
|
end
|
data/lib/sfpagent/template.rb
CHANGED
@@ -2,19 +2,39 @@ require 'erb'
|
|
2
2
|
require 'ostruct'
|
3
3
|
|
4
4
|
class Sfp::Template < OpenStruct
|
5
|
-
def
|
6
|
-
|
5
|
+
def initialize(resolver=nil)
|
6
|
+
@resolver = resolver
|
7
7
|
end
|
8
8
|
|
9
|
-
def
|
10
|
-
|
11
|
-
|
9
|
+
def resolve(path)
|
10
|
+
(@resolver.nil? ? nil : @resolver.resolve(path))
|
11
|
+
end
|
12
|
+
|
13
|
+
# Render given template string, and then return the result
|
14
|
+
# @template template string to be rendered
|
15
|
+
#
|
16
|
+
def render(template)
|
17
|
+
ERB.new(template).result(binding)
|
12
18
|
end
|
13
19
|
|
20
|
+
# Render given file, and then save the result back to the file
|
21
|
+
# @file target file that will be rendered
|
22
|
+
#
|
14
23
|
def render_file(file)
|
15
|
-
|
24
|
+
File.open(file, File::RDWR|File::CREAT) do |f|
|
25
|
+
f.flock(File::LOCK_EX)
|
26
|
+
result = render(f.read)
|
27
|
+
f.rewind
|
28
|
+
f.write(result)
|
29
|
+
f.flush
|
30
|
+
f.truncate(f.pos)
|
31
|
+
end
|
16
32
|
end
|
17
33
|
|
34
|
+
# Render given template string, and then return the result
|
35
|
+
# @template template string to be rendered
|
36
|
+
# @map a Hash of accessible variables in the template
|
37
|
+
#
|
18
38
|
def self.render(template, map)
|
19
39
|
if map.is_a?(Hash)
|
20
40
|
renderer = ::Sfp::Template.new(map)
|
@@ -26,11 +46,10 @@ class Sfp::Template < OpenStruct
|
|
26
46
|
end
|
27
47
|
end
|
28
48
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
49
|
+
# Render given file, and then save the result back to the file
|
50
|
+
# @file target file to be rendered
|
51
|
+
# @map a Hash of accessible variables in the template
|
52
|
+
#
|
34
53
|
def self.render_file(file, map)
|
35
54
|
renderer = ::Sfp::Template.new(map)
|
36
55
|
renderer.render_file(file)
|
data/sfpagent.gemspec
CHANGED
@@ -1,22 +1,22 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'sfpagent'
|
3
|
-
s.version = File.read(File.
|
4
|
-
s.date = '
|
3
|
+
s.version = File.read(File.dirname(__FILE__) + '/VERSION').strip
|
4
|
+
s.date = File.mtime(File.dirname(__FILE__) + '/VERSION').strftime("%Y-%m-%d")
|
5
5
|
s.summary = 'SFP Agent'
|
6
6
|
s.description = 'A Ruby implementation of SFP agent.'
|
7
7
|
s.authors = ['Herry']
|
8
8
|
s.email = 'herry13@gmail.com'
|
9
9
|
|
10
|
-
s.executables
|
10
|
+
s.executables << 'sfpagent'
|
11
11
|
s.files = `git ls-files`.split("\n").select { |n| !(n =~ /^(modules|test)\/.*/) }
|
12
12
|
|
13
13
|
s.require_paths = ['lib']
|
14
|
-
s.license
|
14
|
+
s.license = 'BSD'
|
15
15
|
|
16
|
-
s.homepage
|
16
|
+
s.homepage = 'https://github.com/herry13/sfpagent'
|
17
17
|
s.rubyforge_project = 'sfpagent'
|
18
18
|
|
19
|
-
s.add_dependency 'sfp', '~> 0.3.
|
19
|
+
s.add_dependency 'sfp', '~> 0.3.17'
|
20
20
|
|
21
21
|
s.add_development_dependency 'rake'
|
22
22
|
end
|
metadata
CHANGED
@@ -1,38 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sfpagent
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.6
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Herry
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-11-01 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: sfp
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.3.
|
19
|
+
version: 0.3.17
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.3.17
|
25
27
|
- !ruby/object:Gem::Dependency
|
26
28
|
name: rake
|
27
|
-
requirement:
|
28
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
|
-
- -
|
31
|
+
- - '>='
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: '0'
|
33
34
|
type: :development
|
34
35
|
prerelease: false
|
35
|
-
version_requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
36
41
|
description: A Ruby implementation of SFP agent.
|
37
42
|
email: herry13@gmail.com
|
38
43
|
executables:
|
@@ -65,26 +70,25 @@ files:
|
|
65
70
|
homepage: https://github.com/herry13/sfpagent
|
66
71
|
licenses:
|
67
72
|
- BSD
|
73
|
+
metadata: {}
|
68
74
|
post_install_message:
|
69
75
|
rdoc_options: []
|
70
76
|
require_paths:
|
71
77
|
- lib
|
72
78
|
required_ruby_version: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
79
|
requirements:
|
75
|
-
- -
|
80
|
+
- - '>='
|
76
81
|
- !ruby/object:Gem::Version
|
77
82
|
version: '0'
|
78
83
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
79
|
-
none: false
|
80
84
|
requirements:
|
81
|
-
- -
|
85
|
+
- - '>='
|
82
86
|
- !ruby/object:Gem::Version
|
83
87
|
version: '0'
|
84
88
|
requirements: []
|
85
89
|
rubyforge_project: sfpagent
|
86
|
-
rubygems_version: 1.
|
90
|
+
rubygems_version: 2.1.10
|
87
91
|
signing_key:
|
88
|
-
specification_version:
|
92
|
+
specification_version: 4
|
89
93
|
summary: SFP Agent
|
90
94
|
test_files: []
|