rsf_services 0.9.3 → 0.9.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/rsf_services.rb +83 -69
- data.tar.gz.sig +0 -0
- metadata +32 -32
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2f526110312deb79dfeec5348890b9062075de464c7eae75a3fddd4ca4fdfbb1
|
4
|
+
data.tar.gz: 45b4961f92c1891897511881fa21c5add3de8ef80f31f57514c56c0e3265a684
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b03f92dd48e67fd465016fbd1c4e5ae10c518743eade8bd81bfa20615571f001d90f1cedab58424d96a30dc4372606d5dcbcd64303eea6915e31c26eb34d5124
|
7
|
+
data.tar.gz: 7d6bab11e70fceada0addf02c312c3afd8ce7c1b745af38429135568322e860c39ab96079cd577a2ad4d8a0dc22c67864fea5c3eda09fb0372a8bb439c4963ef
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/rsf_services.rb
CHANGED
@@ -5,41 +5,52 @@
|
|
5
5
|
#require 'rscript'
|
6
6
|
require 'app-mgr'
|
7
7
|
require 'dws-registry'
|
8
|
-
|
8
|
+
require 'rxfreader'
|
9
9
|
|
10
10
|
|
11
11
|
class RSFServices < RScriptRW
|
12
|
-
|
12
|
+
|
13
13
|
class PackageMethod
|
14
|
-
|
15
|
-
def initialize(parent, type: :get)
|
14
|
+
|
15
|
+
def initialize(parent, type: :get)
|
16
16
|
@parent = parent
|
17
17
|
@parent.type = type
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
private
|
21
|
-
|
21
|
+
|
22
22
|
def method_missing(method_name, *args)
|
23
23
|
Package.new @parent, method_name.to_s
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
27
|
-
|
28
|
-
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
29
|
class Package
|
30
|
-
|
30
|
+
|
31
31
|
def initialize(obj, package, debug: false)
|
32
32
|
|
33
|
+
|
34
|
+
puts 'inside Package#initialize' if debug
|
35
|
+
|
33
36
|
@obj, @package, @debug = obj, package, debug
|
34
37
|
|
35
38
|
@url = File.join(@obj.package_basepath, package + '.rsf')
|
36
|
-
|
37
|
-
|
39
|
+
|
40
|
+
puts 'before Rexle' if @debug
|
41
|
+
puts '@url: ' + @url.inspect if @debug
|
42
|
+
|
43
|
+
s, _ = RXFReader.read(@url)
|
44
|
+
puts 's: ' + s.inspect if @debug
|
45
|
+
|
46
|
+
doc = Rexle.new s
|
47
|
+
puts 'before xpath' if @debug
|
48
|
+
|
38
49
|
a = doc.root.xpath 'job/attribute::id'
|
39
|
-
|
50
|
+
|
40
51
|
a.each do |attr|
|
41
|
-
|
42
|
-
method_name = attr.value.gsub('-','_')
|
52
|
+
|
53
|
+
method_name = attr.value.gsub('-','_')
|
43
54
|
|
44
55
|
define_singleton_method method_name.to_sym do |*args|
|
45
56
|
run_job method_name, args
|
@@ -50,39 +61,39 @@ class RSFServices < RScriptRW
|
|
50
61
|
end
|
51
62
|
|
52
63
|
private
|
53
|
-
|
64
|
+
|
54
65
|
def run_job(method_name, *args)
|
55
|
-
|
66
|
+
|
56
67
|
puts 'inside Package::run_job: args: ' + args.inspect if @debug
|
57
|
-
|
68
|
+
|
58
69
|
args.flatten!(1)
|
59
70
|
params = args.find {|x| x.is_a? Hash} ? args.pop : {}
|
60
71
|
a = ['//job:' + method_name, @url, args].flatten(1)
|
61
|
-
|
72
|
+
|
62
73
|
if @debug then
|
63
74
|
puts 'a: ' + a.inspect
|
64
75
|
puts 'params: ' + params.inspect
|
65
76
|
end
|
66
|
-
|
77
|
+
|
67
78
|
@obj.run a, params
|
68
79
|
end
|
69
|
-
|
70
80
|
|
71
|
-
|
81
|
+
|
82
|
+
end
|
72
83
|
|
73
84
|
attr_reader :services, :package_basepath, :registry
|
74
85
|
|
75
|
-
def initialize(reg=nil, package_basepath: '', log: nil, debug: false,
|
86
|
+
def initialize(reg=nil, package_basepath: '', log: nil, debug: false,
|
76
87
|
app_rsf: nil)
|
77
|
-
|
88
|
+
|
78
89
|
@log, @debug = log, debug
|
79
|
-
|
90
|
+
|
80
91
|
puts 'inside RSF_services' if @debug
|
81
92
|
|
82
93
|
super(log: log, debug: debug)
|
83
94
|
|
84
95
|
@package_basepath, @services = package_basepath, {}
|
85
|
-
|
96
|
+
|
86
97
|
@initialized = {}
|
87
98
|
|
88
99
|
if reg then
|
@@ -92,62 +103,63 @@ class RSFServices < RScriptRW
|
|
92
103
|
else
|
93
104
|
reg
|
94
105
|
end
|
95
|
-
|
106
|
+
|
96
107
|
# load the system/startup RSF jobs
|
97
108
|
|
98
109
|
startup = reg.get_key('system/startup')
|
99
|
-
|
110
|
+
|
100
111
|
jobs = startup.xpath('*[load="1"]').inject({}) do |r, job|
|
101
112
|
settings = reg.get_keys("system/packages/#{job.name}/*")\
|
102
113
|
.inject({}){|r,x| r.merge(x.name.to_sym => x.text) }
|
103
114
|
r.merge(job.name => settings)
|
104
115
|
end
|
105
|
-
|
106
|
-
jobs.each do |package, settings|
|
107
|
-
r = run_job(package.to_s, 'load', settings,
|
116
|
+
|
117
|
+
jobs.each do |package, settings|
|
118
|
+
r = run_job(package.to_s, 'load', settings,
|
108
119
|
package_path: settings[:url])
|
109
120
|
end
|
110
121
|
end
|
111
|
-
|
122
|
+
|
112
123
|
@app = AppMgr.new(rsf: app_rsf, reg: reg, rsc: self) if app_rsf
|
113
124
|
|
114
125
|
end
|
115
|
-
|
116
|
-
|
126
|
+
|
127
|
+
|
117
128
|
def delete()
|
118
129
|
PackageMethod.new self, type: :delete
|
119
|
-
end
|
120
|
-
|
130
|
+
end
|
131
|
+
|
121
132
|
def get()
|
122
133
|
PackageMethod.new self
|
123
|
-
end
|
124
|
-
|
134
|
+
end
|
135
|
+
|
125
136
|
def put()
|
126
137
|
PackageMethod.new self, type: :put
|
127
|
-
end
|
128
|
-
|
138
|
+
end
|
139
|
+
|
129
140
|
def post()
|
130
141
|
PackageMethod.new self, type: :post
|
131
142
|
end
|
132
143
|
|
133
144
|
def run_job(package, jobs, params={}, *qargs)
|
134
|
-
|
145
|
+
|
135
146
|
puts 'inside run_job' #if @debug
|
136
147
|
|
137
148
|
package_path = "%s/%s.rsf" % [@package_basepath, package]
|
138
|
-
|
149
|
+
|
139
150
|
if @log or @debug then
|
140
|
-
msg = 'RSFServices/run job: ' +
|
151
|
+
msg = 'RSFServices/run job: ' +
|
141
152
|
("package: %s jobs: %s params: %s qargs: %s " + \
|
142
153
|
" package_path: %s" % [package, jobs, params, qargs, package_path])
|
143
154
|
@log.info msg if @log
|
144
155
|
puts msg if @debug
|
145
156
|
end
|
146
|
-
|
147
|
-
yield(params) if block_given?
|
148
|
-
|
157
|
+
|
158
|
+
yield(params) if block_given?
|
159
|
+
|
149
160
|
a = [package_path, jobs.split(/\s/).map{|x| "//job:%s" % x} ,qargs].flatten(2)
|
150
|
-
|
161
|
+
@log.info 'RSFServices/run job: a: ' + a.inspect if @log
|
162
|
+
|
151
163
|
puts 'a: ' + a.inspect if @debug
|
152
164
|
|
153
165
|
c, args, _ = read(a)
|
@@ -155,51 +167,53 @@ class RSFServices < RScriptRW
|
|
155
167
|
rws, reg, app = self, @registry, @app
|
156
168
|
|
157
169
|
begin
|
158
|
-
|
170
|
+
|
159
171
|
@log.info 'RSFServices/run job: code: ' + c if @log and c.is_a? String
|
160
172
|
|
161
|
-
# if there is a job id called *initialize* then execute if it hasn't
|
173
|
+
# if there is a job id called *initialize* then execute if it hasn't
|
162
174
|
# already been executed
|
163
175
|
|
164
|
-
if self.jobs(package_path).include? :initialize and
|
176
|
+
if self.jobs(package_path).include? :initialize and
|
165
177
|
!@initialized[package_path] and jobs != 'initialize' then
|
166
178
|
run_job(package, 'initialize')
|
167
179
|
@initialized[package_path] = true
|
168
180
|
end
|
169
181
|
|
170
|
-
r =
|
182
|
+
r = instance_eval c
|
171
183
|
puts 'r: ' + r.inspect if @debug
|
172
184
|
#thread = Thread.new {Thread.current[:v] = eval c}
|
173
185
|
#thread.join
|
174
|
-
#r = thread[:v]
|
175
|
-
|
186
|
+
#r = thread[:v]
|
187
|
+
|
176
188
|
@log.info 'RSFServices/run job: result: ' + r if @log and r.is_a? String
|
177
|
-
|
189
|
+
|
178
190
|
return r
|
179
191
|
|
180
|
-
rescue Exception => e
|
181
|
-
|
192
|
+
rescue Exception => e
|
193
|
+
|
182
194
|
params = {}
|
183
|
-
err_label = e.message.to_s + " :: \n" + e.backtrace.join("\n")
|
195
|
+
err_label = e.message.to_s + " :: \n" + e.backtrace.join("\n")
|
184
196
|
@log.debug 'RSFServices/run_job/error: ' + err_label if @log
|
185
197
|
|
186
198
|
end
|
187
|
-
|
199
|
+
|
188
200
|
end
|
189
|
-
|
201
|
+
|
190
202
|
def package_methods(package)
|
191
|
-
|
192
|
-
url = File.join(@package_basepath, package + '.rsf')
|
193
|
-
doc = Rexle.new open(url, 'UserAgent' => 'ClientRscript').read
|
203
|
+
|
204
|
+
url = File.join(@package_basepath, package + '.rsf')
|
205
|
+
doc = Rexle.new URI.open(url, 'UserAgent' => 'ClientRscript').read
|
194
206
|
doc.root.xpath('job/attribute::id').map {|x| x.value.to_s.gsub('-','_') }
|
195
207
|
|
196
208
|
end
|
197
|
-
|
209
|
+
|
198
210
|
private
|
199
|
-
|
200
|
-
def
|
211
|
+
|
212
|
+
def method_missing(method_name, *args)
|
213
|
+
|
214
|
+
puts 'inside method_missing' if @debug
|
201
215
|
self.type = :get
|
202
216
|
Package.new self, method_name.to_s, debug: @debug
|
203
|
-
end
|
204
|
-
|
217
|
+
end
|
218
|
+
|
205
219
|
end
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rsf_services
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -11,52 +11,52 @@ cert_chain:
|
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
13
|
MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
/
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
14
|
+
YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjExMTE4MTEyMDIxWhcN
|
15
|
+
MjIxMTE4MTEyMDIxWjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
|
16
|
+
cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDK496w
|
17
|
+
8Wo4lOqJB1ND/vi4gyws3E8jHUqWt1YyV2YHL/+P2UUiili7z4qohHstpgBUUQtY
|
18
|
+
ve6g602bAmxayqqRYUTugyi/R6LRL5GSiKBFpfxWj5tUJh41frNoVjZk6AKoti4K
|
19
|
+
gU0ZdMhcz56zaDNQM/QDH8vaMrbs/+AcsTVKeZ+Sw930NI2QPuzyF3vgp1lGAqY8
|
20
|
+
j8BmT9mWzyXjjsrGV1hfzFYwoObk9SE6clyF5K6CrCsoqVzhwOhGvJShOr0kQWUo
|
21
|
+
x0MalRtTvMnUrtjveFmQTJhEGNjIkPiYsiSP+50otwlRqvUbY2NRkL9bq/YPQj9s
|
22
|
+
clxIRLdok0XE6Z6C83yHKbhSFp0WfygOM2oGFiVM1Fsaok6XKimTNj8Q5koS523a
|
23
|
+
pega/q9X9tHyPzeAMGTKymJteEcR7qdDYrXxOcHWVna68btSL5gaIlWCQPvyLZ+P
|
24
|
+
f7UVDsRCQttoB+arcmEy4JmiwHnG/6tWs+bfyhPf86uEErNBm24IkEgPLnMCAwEA
|
25
|
+
AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUT1Vuql+w
|
26
|
+
8qUbu0Amwqd3msON9YswJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
|
27
27
|
c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
28
|
+
BgkqhkiG9w0BAQsFAAOCAYEAUQLpouWyYhkD5a18Z7qbypaOD3nnc4YXMdUdB9Qy
|
29
|
+
01NARPgklfbwJKImoq2VMT96JbBZX9nOdC2MAjo+0cK9duApEA6Sm+0n71Fub5Xn
|
30
|
+
9K43tJLAe3DPsW5CY4b/e1nxEiSQYntRF6tSQvjjpEHdSNyPYsvt7dN9ZwjaMo8U
|
31
|
+
8DeKxPlN+7fHcGZP3p4oYlRg0bRGwueO7aX8BYGzuOYrsmoq3swsE2/rz6zlC0DX
|
32
|
+
QyaSxFtZFOYYc4GrcixS2kX5i54MYZNpiRYMVJT3/ICbyIwtorKezJxkO7vKQiQj
|
33
|
+
OosD65e1Gn1rhQW6mAcblsvvMHvdfFA/uTvD77A8MgCYQa5llIZEx0Bd7ExPDPZn
|
34
|
+
e86Mje12aZQAyilVfeqbv5u3EZlw6kLbigLmw7BlUk7Zi2X84+iz7W8EdU3GSv8a
|
35
|
+
y347QSdvzPRHMpmi1wAJh+koAo4s8Noi64GU5+4xUDRUh02AV/sXFxRdJne2WDW0
|
36
|
+
4wvjYJ8JEXo2AHNQSXG3FQmn
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date:
|
38
|
+
date: 2022-02-22 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: dws-registry
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
|
-
- - ">="
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: 0.5.0
|
47
44
|
- - "~>"
|
48
45
|
- !ruby/object:Gem::Version
|
49
46
|
version: '0.5'
|
47
|
+
- - ">="
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 0.5.0
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
|
-
- - ">="
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version: 0.5.0
|
57
54
|
- - "~>"
|
58
55
|
- !ruby/object:Gem::Version
|
59
56
|
version: '0.5'
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: 0.5.0
|
60
60
|
- !ruby/object:Gem::Dependency
|
61
61
|
name: app-mgr
|
62
62
|
requirement: !ruby/object:Gem::Requirement
|
@@ -78,7 +78,7 @@ dependencies:
|
|
78
78
|
- !ruby/object:Gem::Version
|
79
79
|
version: 0.3.1
|
80
80
|
description:
|
81
|
-
email:
|
81
|
+
email: digital.robertson@gmail.com
|
82
82
|
executables: []
|
83
83
|
extensions: []
|
84
84
|
extra_rdoc_files: []
|
@@ -103,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
103
103
|
- !ruby/object:Gem::Version
|
104
104
|
version: '0'
|
105
105
|
requirements: []
|
106
|
-
rubygems_version: 3.
|
106
|
+
rubygems_version: 3.2.22
|
107
107
|
signing_key:
|
108
108
|
specification_version: 4
|
109
109
|
summary: Runs within a DRb server to run RSF jobs, as well as other services.
|
metadata.gz.sig
CHANGED
Binary file
|