rplex 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +2 -0
- data/README.txt +1 -1
- data/lib/rplex/client.rb +11 -0
- data/lib/rplex/jobs.rb +8 -0
- data/lib/rplex/server.rb +11 -0
- data/lib/rplex.rb +1 -1
- data/test/test_jobs.rb +16 -0
- data/test/test_server.rb +12 -0
- metadata +57 -89
data/History.txt
CHANGED
data/README.txt
CHANGED
data/lib/rplex/client.rb
CHANGED
@@ -30,6 +30,17 @@ module Rplex
|
|
30
30
|
raise ClientError, $!.message
|
31
31
|
end
|
32
32
|
|
33
|
+
def reset workers
|
34
|
+
if workers && !workers.empty?
|
35
|
+
response=RestClient.post(@service, {"workers"=>workers}, :content_type => :json, :accept => :json)
|
36
|
+
return JSON.parse(response)
|
37
|
+
else
|
38
|
+
return []
|
39
|
+
end
|
40
|
+
rescue
|
41
|
+
raise ClientError, $!.message
|
42
|
+
end
|
43
|
+
|
33
44
|
def backlog
|
34
45
|
response=RestClient.get(@service,:accept => :json)
|
35
46
|
unless response.empty?
|
data/lib/rplex/jobs.rb
CHANGED
data/lib/rplex/server.rb
CHANGED
@@ -36,6 +36,17 @@ module Rplex
|
|
36
36
|
[200,{'Content-Type' => 'application/json'},@overseer.backlog.to_json]
|
37
37
|
end
|
38
38
|
|
39
|
+
post '/reset' do
|
40
|
+
begin
|
41
|
+
reply={}
|
42
|
+
workers= params["workers"] ? params["workers"] : @overseer.workers
|
43
|
+
@overseer.reset(workers)
|
44
|
+
[200,{'Content-Type' => 'application/json'},@overseer.backlog.to_json]
|
45
|
+
rescue
|
46
|
+
status 500
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
39
50
|
def self.define_settings cfg={}
|
40
51
|
cfg||={}
|
41
52
|
#the settings that are not public
|
data/lib/rplex.rb
CHANGED
data/test/test_jobs.rb
CHANGED
@@ -34,4 +34,20 @@ class TestOverseer < Test::Unit::TestCase
|
|
34
34
|
ov<<job_data
|
35
35
|
assert_equal([['worker1',1],['worker2',1]], ov.backlog)
|
36
36
|
end
|
37
|
+
|
38
|
+
def test_reset
|
39
|
+
ov=Rplex::Overseer.new
|
40
|
+
assert(ov.backlog.empty?)
|
41
|
+
jd1={"identifier"=>"8888","data"=>{:foo=>"bar",:bar=>"foo"}}
|
42
|
+
jd2={"identifier"=>"9999","data"=>{:foo=>"bar",:bar=>"foo"}}
|
43
|
+
ov['worker1']
|
44
|
+
ov['worker2']
|
45
|
+
ov<<jd1
|
46
|
+
ov<<jd2
|
47
|
+
assert_equal([['worker1',2],['worker2',2]], ov.backlog)
|
48
|
+
ov.reset(['worker2'])
|
49
|
+
assert_equal([['worker1',2],['worker2',0]], ov.backlog)
|
50
|
+
ov.reset(['worker1'])
|
51
|
+
assert_equal([['worker1',0],['worker2',0]], ov.backlog)
|
52
|
+
end
|
37
53
|
end
|
data/test/test_server.rb
CHANGED
@@ -39,4 +39,16 @@ class ServerTest < Test::Unit::TestCase
|
|
39
39
|
get '/backlog'
|
40
40
|
assert_equal(200, last_response.status)
|
41
41
|
end
|
42
|
+
|
43
|
+
def test_reset
|
44
|
+
get '/job/worker'
|
45
|
+
payload={"identifier"=>"8888","data"=>{"url"=>"http://foo.bar/drops","revision"=>"8888"}}
|
46
|
+
post '/job', payload
|
47
|
+
post '/job', payload
|
48
|
+
get '/backlog'
|
49
|
+
assert_equal([["worker",2]], JSON.parse(last_response.body))
|
50
|
+
post '/reset',{"workers"=>['worker']}
|
51
|
+
get '/backlog'
|
52
|
+
assert_equal([["worker",0]], JSON.parse(last_response.body))
|
53
|
+
end
|
42
54
|
end
|
metadata
CHANGED
@@ -1,103 +1,79 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: rplex
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 2
|
10
|
-
version: 0.0.2
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Vassilis Rizopoulos
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-04-20 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: sinatra
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &2153566880 !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
18
|
+
requirements:
|
26
19
|
- - ~>
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
hash: 25
|
29
|
-
segments:
|
30
|
-
- 1
|
31
|
-
- 3
|
32
|
-
- 1
|
20
|
+
- !ruby/object:Gem::Version
|
33
21
|
version: 1.3.1
|
34
22
|
type: :runtime
|
35
|
-
version_requirements: *id001
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: rest-client
|
38
23
|
prerelease: false
|
39
|
-
|
24
|
+
version_requirements: *2153566880
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rest-client
|
27
|
+
requirement: &2153565980 !ruby/object:Gem::Requirement
|
40
28
|
none: false
|
41
|
-
requirements:
|
29
|
+
requirements:
|
42
30
|
- - ~>
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
hash: 1
|
45
|
-
segments:
|
46
|
-
- 1
|
47
|
-
- 6
|
48
|
-
- 7
|
31
|
+
- !ruby/object:Gem::Version
|
49
32
|
version: 1.6.7
|
50
33
|
type: :runtime
|
51
|
-
version_requirements: *id002
|
52
|
-
- !ruby/object:Gem::Dependency
|
53
|
-
name: rdoc
|
54
34
|
prerelease: false
|
55
|
-
|
35
|
+
version_requirements: *2153565980
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rdoc
|
38
|
+
requirement: &2153565160 !ruby/object:Gem::Requirement
|
56
39
|
none: false
|
57
|
-
requirements:
|
40
|
+
requirements:
|
58
41
|
- - ~>
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
|
61
|
-
segments:
|
62
|
-
- 3
|
63
|
-
- 10
|
64
|
-
version: "3.10"
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '3.10'
|
65
44
|
type: :development
|
66
|
-
version_requirements: *id003
|
67
|
-
- !ruby/object:Gem::Dependency
|
68
|
-
name: hoe
|
69
45
|
prerelease: false
|
70
|
-
|
46
|
+
version_requirements: *2153565160
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: hoe
|
49
|
+
requirement: &2153564380 !ruby/object:Gem::Requirement
|
71
50
|
none: false
|
72
|
-
requirements:
|
51
|
+
requirements:
|
73
52
|
- - ~>
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
|
76
|
-
segments:
|
77
|
-
- 2
|
78
|
-
- 12
|
79
|
-
version: "2.12"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.12'
|
80
55
|
type: :development
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *2153564380
|
58
|
+
description: ! 'https://github.com/damphyr/rplex
|
59
|
+
|
60
|
+
|
85
61
|
== DESCRIPTION:
|
86
|
-
|
62
|
+
|
63
|
+
|
87
64
|
Simple asynchronous data based job management
|
88
|
-
|
89
|
-
|
90
|
-
|
65
|
+
|
66
|
+
|
67
|
+
== INSTALL:'
|
68
|
+
email:
|
91
69
|
- var@zuehlke.com
|
92
70
|
executables: []
|
93
|
-
|
94
71
|
extensions: []
|
95
|
-
|
96
|
-
extra_rdoc_files:
|
72
|
+
extra_rdoc_files:
|
97
73
|
- History.txt
|
98
74
|
- Manifest.txt
|
99
75
|
- README.txt
|
100
|
-
files:
|
76
|
+
files:
|
101
77
|
- Gemfile
|
102
78
|
- History.txt
|
103
79
|
- lib/rplex.rb
|
@@ -113,39 +89,31 @@ files:
|
|
113
89
|
- .gemtest
|
114
90
|
homepage: http://github.com/damphyr/rplex
|
115
91
|
licenses: []
|
116
|
-
|
117
92
|
post_install_message:
|
118
|
-
rdoc_options:
|
93
|
+
rdoc_options:
|
119
94
|
- --main
|
120
95
|
- README.txt
|
121
|
-
require_paths:
|
96
|
+
require_paths:
|
122
97
|
- lib
|
123
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
98
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
124
99
|
none: false
|
125
|
-
requirements:
|
126
|
-
- -
|
127
|
-
- !ruby/object:Gem::Version
|
128
|
-
|
129
|
-
|
130
|
-
- 0
|
131
|
-
version: "0"
|
132
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ! '>='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
133
105
|
none: false
|
134
|
-
requirements:
|
135
|
-
- -
|
136
|
-
- !ruby/object:Gem::Version
|
137
|
-
|
138
|
-
segments:
|
139
|
-
- 0
|
140
|
-
version: "0"
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
141
110
|
requirements: []
|
142
|
-
|
143
111
|
rubyforge_project: rplex
|
144
|
-
rubygems_version: 1.8.
|
112
|
+
rubygems_version: 1.8.12
|
145
113
|
signing_key:
|
146
114
|
specification_version: 3
|
147
115
|
summary: rplex multiplexes jobs across multiple workers
|
148
|
-
test_files:
|
116
|
+
test_files:
|
149
117
|
- test/test_jobs.rb
|
150
118
|
- test/test_rplex.rb
|
151
119
|
- test/test_server.rb
|