rhoconnect 3.0.6 → 3.1.0.beta1
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/CHANGELOG.md +9 -0
- data/Gemfile +3 -3
- data/Gemfile.lock +38 -17
- data/Rakefile +0 -10
- data/bench/benchapp/Gemfile.lock +1 -0
- data/bench/distr_bench/distr_bench_main +94 -27
- data/bench/distr_bench/run_test_query_script.sh +22 -18
- data/bench/lib/bench/aws_utils.rb +326 -0
- data/bench/lib/bench/bench_result_processor.rb +268 -75
- data/bench/lib/bench/cli.rb +1 -0
- data/bench/lib/bench/distr_runner.rb +102 -0
- data/bench/lib/bench/utils.rb +127 -0
- data/bench/lib/bench.rb +16 -15
- data/bench/prepare_bench +3 -11
- data/bench/scripts/test_query_script.rb +6 -7
- data/bin/rhoconnect-benchmark +257 -5
- data/doc/benchmarks-running.txt +140 -0
- data/doc/client-java.txt +236 -0
- data/doc/client-objc.txt +41 -1
- data/doc/client.txt +12 -0
- data/doc/command-line.txt +12 -3
- data/doc/cud-conflicts.txt +68 -0
- data/doc/deploying.txt +1 -70
- data/doc/hosting-rhohub.txt +3 -0
- data/doc/install.txt +50 -13
- data/doc/java-plugin.txt +217 -177
- data/doc/net-plugin.txt +97 -64
- data/doc/plugin-intro.txt +4 -2
- data/doc/preparing-production.txt +63 -0
- data/doc/rhoconnect-redis-stack.txt +252 -0
- data/doc/source-adapters.txt +3 -1
- data/doc/tutorial.txt +111 -49
- data/examples/simple/dump.rdb +0 -0
- data/installer/unix-like/rho_connect_install_constants.rb +6 -5
- data/installer/unix-like/rho_connect_install_installers.rb +6 -2
- data/installer/utils/nix_install_test.rb +2 -0
- data/installer/utils/package_upload/auto-repo.rb +136 -0
- data/installer/utils/package_upload/repos.rake +6 -3
- data/installer/utils/package_upload/s3_upload.rb +11 -6
- data/installer/windows/rhosync.nsi +5 -5
- data/lib/rhoconnect/client_sync.rb +2 -2
- data/lib/rhoconnect/document.rb +12 -0
- data/lib/rhoconnect/jobs/source_job.rb +2 -2
- data/lib/rhoconnect/predefined_adapters/bench_adapter.rb +61 -0
- data/lib/rhoconnect/source.rb +5 -0
- data/lib/rhoconnect/source_adapter.rb +10 -1
- data/lib/rhoconnect/source_sync.rb +161 -88
- data/lib/rhoconnect/store.rb +48 -0
- data/lib/rhoconnect/test_methods.rb +6 -6
- data/lib/rhoconnect/version.rb +1 -1
- data/lib/rhoconnect.rb +25 -2
- data/spec/apps/rhotestapp/sources/sample_adapter.rb +29 -0
- data/spec/jobs/source_job_spec.rb +5 -5
- data/spec/source_adapter_spec.rb +10 -0
- data/spec/source_sync_spec.rb +114 -33
- data/spec/spec_helper.rb +21 -2
- data/spec/store_spec.rb +29 -0
- data/spec/support/shared_examples.rb +1 -1
- data/spec/test_methods_spec.rb +4 -4
- data/tasks/redis.rake +2 -2
- metadata +59 -59
- data/bench/benchapp/log/passenger.3000.log +0 -1
- data/bench/benchapp/log/passenger.9292.log +0 -59
- data/bench/benchapp/tmp/pids/passenger.3000.pid.lock +0 -0
- data/bench/benchapp/tmp/pids/passenger.9292.pid.lock +0 -0
- data/bench/lib/testdata/0-data.txt +0 -0
- data/bench/lib/testdata/1-data.txt +0 -0
- data/bench/lib/testdata/10-data.txt +0 -15
- data/bench/lib/testdata/2-data.txt +0 -3
- data/bench/lib/testdata/25-data.txt +0 -39
- data/bench/lib/testdata/250-data.txt +0 -353
- data/bench/lib/testdata/3-data.txt +0 -4
- data/bench/lib/testdata/50-data.txt +0 -70
- data/bench/lib/testdata/500-data.txt +0 -711
data/spec/source_sync_spec.rb
CHANGED
@@ -121,27 +121,27 @@ describe "SourceSync" do
|
|
121
121
|
|
122
122
|
describe "create" do
|
123
123
|
it "should do create where adapter.create returns nil" do
|
124
|
-
|
125
|
-
@ss.create
|
124
|
+
set_zstate({@s.docname(:create) => {'2'=>@product2}}, @c.id, true)
|
125
|
+
@ss.create
|
126
|
+
verify_zresult(@s.docname(:create) => [])
|
126
127
|
verify_result(@c.docname(:create_errors) => {},
|
127
|
-
@c.docname(:create_links) => {}
|
128
|
-
@c.docname(:create) => {})
|
128
|
+
@c.docname(:create_links) => {})
|
129
129
|
end
|
130
130
|
|
131
131
|
it "should do create where adapter.create returns object link" do
|
132
132
|
@product4['link'] = 'test link'
|
133
|
-
|
134
|
-
@ss.create
|
133
|
+
set_zstate({@s.docname(:create) => {'4'=>@product4}},@c.id,true)
|
134
|
+
@ss.create
|
135
|
+
verify_zresult(@s.docname(:create) => [])
|
135
136
|
verify_result(@c.docname(:create_errors) => {},
|
136
|
-
@c.docname(:create_links) => {'4'=>{'l'=>'backend_id'}}
|
137
|
-
@c.docname(:create) => {})
|
137
|
+
@c.docname(:create_links) => {'4'=>{'l'=>'backend_id'}})
|
138
138
|
end
|
139
139
|
|
140
140
|
it "should raise exception on adapter.create" do
|
141
141
|
msg = "Error creating record"
|
142
142
|
data = add_error_object({'4'=>@product4,'2'=>@product2},msg)
|
143
|
-
|
144
|
-
@ss.create
|
143
|
+
set_zstate({@s.docname(:create) => data},@c.id, true)
|
144
|
+
@ss.create
|
145
145
|
verify_result(@c.docname(:create_errors) =>
|
146
146
|
{"#{ERROR}-error"=>{"message"=>msg},ERROR=>data[ERROR]})
|
147
147
|
end
|
@@ -149,44 +149,46 @@ describe "SourceSync" do
|
|
149
149
|
|
150
150
|
describe "update" do
|
151
151
|
it "should do update with no errors" do
|
152
|
-
|
153
|
-
@ss.update
|
154
|
-
|
155
|
-
|
152
|
+
set_zstate({@s.docname(:update) => {'4'=> { 'price' => '199.99' }}},@c.id,true)
|
153
|
+
@ss.update
|
154
|
+
verify_zresult(@s.docname(:update) => [])
|
155
|
+
verify_result(@c.docname(:update_errors) => {})
|
156
156
|
end
|
157
157
|
|
158
158
|
it "should do update with errors" do
|
159
159
|
msg = "Error updating record"
|
160
160
|
data = add_error_object({'4'=> { 'price' => '199.99' }},msg)
|
161
|
-
|
162
|
-
|
161
|
+
set_zstate({@s.docname(:update) => data},@c.id,true)
|
162
|
+
set_state(@c.docname(:cd) => { ERROR => { 'price' => '99.99' } }
|
163
163
|
)
|
164
|
-
@ss.update
|
164
|
+
@ss.update
|
165
|
+
update_data,client_ids = Store.get_zdata(@s.docname(:update))
|
166
|
+
update_data.should == [{'4'=> { 'price' => '199.99'}}]
|
167
|
+
client_ids.should == [@c.id]
|
165
168
|
verify_result(
|
166
169
|
@c.docname(:update_errors) =>
|
167
170
|
{"#{ERROR}-error"=>{"message"=>msg}, ERROR=>data[ERROR]},
|
168
|
-
@c.docname(:update) => {'4'=> { 'price' => '199.99'}},
|
169
171
|
@c.docname(:update_rollback) => {ERROR=>{"price"=>"99.99"}})
|
170
172
|
end
|
171
173
|
end
|
172
174
|
|
173
175
|
describe "delete" do
|
174
176
|
it "should do delete with no errors" do
|
175
|
-
|
176
|
-
|
177
|
+
set_zstate({@s.docname(:delete) => {'4'=>@product4}}, @c.id, true)
|
178
|
+
set_state(@s.docname(:md) => {'4'=>@product4,'3'=>@product3},
|
177
179
|
@c.docname(:cd) => {'4'=>@product4,'3'=>@product3})
|
178
|
-
@ss.delete
|
180
|
+
@ss.delete
|
181
|
+
verify_zresult(@s.docname(:delete) => [])
|
179
182
|
verify_result(@c.docname(:delete_errors) => {},
|
180
183
|
@s.docname(:md) => {'3'=>@product3},
|
181
|
-
@c.docname(:cd) => {'3'=>@product3}
|
182
|
-
@c.docname(:delete) => {})
|
184
|
+
@c.docname(:cd) => {'3'=>@product3})
|
183
185
|
end
|
184
186
|
|
185
187
|
it "should do delete with errors" do
|
186
188
|
msg = "Error delete record"
|
187
189
|
data = add_error_object({'2'=>@product2},msg)
|
188
|
-
|
189
|
-
@ss.delete
|
190
|
+
set_zstate({@s.docname(:delete) => data}, @c.id, true)
|
191
|
+
@ss.delete
|
190
192
|
|
191
193
|
# FIXME: Failed for jruby, ruby 1.9.2
|
192
194
|
# verify_result(@c.docname(:delete_errors) =>
|
@@ -211,10 +213,89 @@ describe "SourceSync" do
|
|
211
213
|
describe "cud" do
|
212
214
|
it "should do process_cud" do
|
213
215
|
@ss.should_receive(:_auth_op).twice.and_return(true)
|
214
|
-
@ss.should_receive(:create).once
|
215
|
-
@ss.should_receive(:update).once
|
216
|
-
@ss.should_receive(:delete).once
|
217
|
-
@ss.process_cud
|
216
|
+
@ss.should_receive(:create).once
|
217
|
+
@ss.should_receive(:update).once
|
218
|
+
@ss.should_receive(:delete).once
|
219
|
+
@ss.process_cud
|
220
|
+
end
|
221
|
+
end
|
222
|
+
|
223
|
+
describe "cud conflicts" do
|
224
|
+
it "should detect create conflict and skip the duplicate record creation, but properly update the links" do
|
225
|
+
set_zstate({@s.docname(:create) => {'4'=> { 'name' => 'Android', 'link' => '1' }}},@c.id,true)
|
226
|
+
set_zstate({@s.docname(:create) => {'5'=> { 'name' => 'Android', 'link' => '1', 'duplicate_of_cid' => @c.id, 'duplicate_of_key' => '4', 'duplicate_of_queue_index' => '0' }}},@c.id,true)
|
227
|
+
@ss.process_cud
|
228
|
+
|
229
|
+
verify_zresult(@s.docname(:create) => [])
|
230
|
+
verify_result(@c.docname(:create_errors) => {})
|
231
|
+
verify_result(@c.docname(:create_links) => {'4'=> { 'l' => 'backend_id' }, '5' => { 'l' => 'backend_id'}})
|
232
|
+
end
|
233
|
+
|
234
|
+
it "should detect create conflict and skip the duplicate record creation, but properly update the errors page" do
|
235
|
+
create_doc1 = { 'name' => 'wrongname', 'link' => '1', 'an_attribute' => "Create Sample Adapter Error" }
|
236
|
+
create_doc2 = { 'name' => 'wrongname', 'link' => '1', 'duplicate_of_cid' => @c.id, 'duplicate_of_key' => '4', 'duplicate_of_queue_index' => '0'}
|
237
|
+
set_zstate({@s.docname(:create) => {'4' => create_doc1}},@c.id,true)
|
238
|
+
set_zstate({@s.docname(:create) => {'5' => create_doc2}},@c.id,true)
|
239
|
+
@ss.process_cud
|
240
|
+
|
241
|
+
verify_zresult(@s.docname(:create) => [])
|
242
|
+
verify_result(@c.docname(:create_errors) => {"4-error"=>{"message"=>"Create Sample Adapter Error"},
|
243
|
+
'4' => create_doc1,
|
244
|
+
"5-error"=>{"message"=>"Create Sample Adapter Error"},
|
245
|
+
'5' => create_doc2})
|
246
|
+
verify_result(@c.docname(:create_links) => {})
|
247
|
+
end
|
248
|
+
|
249
|
+
it "should detect create conflict and force and error" do
|
250
|
+
set_zstate({@s.docname(:create) => {'4'=> { 'name' => 'Android', 'link' => true }}},@c.id,true)
|
251
|
+
set_zstate({@s.docname(:create) => {'5'=> { 'name' => 'Android', 'link' => '1', 'force_duplicate_error' => '1' }}},@c.id,true)
|
252
|
+
@ss.process_cud
|
253
|
+
verify_zresult(@s.docname(:create) => [])
|
254
|
+
verify_result(@c.docname(:create_errors) => {"5-error"=>{"message"=>"Error during create: object confict detected"}, "5"=>{"name"=>"Android", "link"=>"1", 'force_duplicate_error' => '1'}} )
|
255
|
+
end
|
256
|
+
|
257
|
+
it "should detect update conflict and skip the duplicate record update" do
|
258
|
+
set_state(@c.docname(:cd) => {'4'=> {'name' => 'Apple'}})
|
259
|
+
set_zstate({@s.docname(:update) => {'4'=> { 'name' => 'Android' }}},@c.id,true)
|
260
|
+
set_zstate({@s.docname(:update) => {'4'=> { 'name' => 'InvalidName', 'duplicate_of_cid' => @c.id, 'duplicate_of_key' => '4', 'duplicate_of_queue_index' => '0'}}},@c.id,true)
|
261
|
+
@ss.process_cud
|
262
|
+
|
263
|
+
verify_zresult(@s.docname(:update) => [])
|
264
|
+
verify_result(@c.docname(:update_errors) => {})
|
265
|
+
verify_result(@c.docname(:update_rollback) => {})
|
266
|
+
end
|
267
|
+
|
268
|
+
it "should detect update conflict and force an error on duplicate record update" do
|
269
|
+
set_state(@c.docname(:cd) => {'4'=> {'name' => 'Apple'}})
|
270
|
+
set_zstate({@s.docname(:update) => {'4'=> { 'name' => 'Android' }}},@c.id,true)
|
271
|
+
set_zstate({@s.docname(:update) => {'4'=> { 'name' => 'ErrorName', 'force_duplicate_error' => '1' }}},@c.id,true)
|
272
|
+
@ss.process_cud
|
273
|
+
|
274
|
+
verify_zresult(@s.docname(:update) => [])
|
275
|
+
verify_result(@c.docname(:update_errors) => {"4-error"=>{"message"=>"Error during update: object confict detected"}, "4"=>{"name"=>"ErrorName", 'force_duplicate_error' => '1'}})
|
276
|
+
verify_result(@c.docname(:update_rollback) => {'4'=> {'name' => 'Apple'}})
|
277
|
+
end
|
278
|
+
|
279
|
+
it "should detect delete conflict and skip the duplicate record delete" do
|
280
|
+
set_state(@c.docname(:cd) => {'4'=> {'name' => 'Apple'}})
|
281
|
+
set_zstate({@s.docname(:delete) => {'4'=> { 'name' => 'Apple' }}},@c.id,true)
|
282
|
+
set_zstate({@s.docname(:delete) => {'4'=> { 'name' => 'Apple', 'duplicate_of_cid' => @c.id, 'duplicate_of_key' => '4', 'duplicate_of_queue_index' => '0'}}},@c.id,true)
|
283
|
+
@ss.process_cud
|
284
|
+
|
285
|
+
verify_zresult(@s.docname(:delete) => [])
|
286
|
+
verify_result(@c.docname(:cd) => {})
|
287
|
+
verify_result(@c.docname(:cd_size) => '0')
|
288
|
+
verify_result(@c.docname(:delete_errors) => {})
|
289
|
+
end
|
290
|
+
|
291
|
+
it "should detect delete conflict and force an error on duplicate record delete" do
|
292
|
+
set_state(@c.docname(:cd) => {'4'=> {'name' => 'Apple'}})
|
293
|
+
set_zstate({@s.docname(:delete) => {'4'=> { 'name' => 'Apple' }}},@c.id,true)
|
294
|
+
set_zstate({@s.docname(:delete) => {'4'=> { 'name' => 'Apple', 'force_duplicate_error' => '1'}}},@c.id,true)
|
295
|
+
@ss.process_cud
|
296
|
+
|
297
|
+
verify_zresult(@s.docname(:delete) => [])
|
298
|
+
verify_result(@c.docname(:delete_errors) => {"4-error"=>{"message"=>"Error during delete: object confict detected"}, "4"=>{"name"=>"Apple", 'force_duplicate_error' => '1'}})
|
218
299
|
end
|
219
300
|
end
|
220
301
|
|
@@ -334,7 +415,7 @@ describe "SourceSync" do
|
|
334
415
|
@s.read_state.refresh_time.should > prev_refresh_time
|
335
416
|
end
|
336
417
|
end
|
337
|
-
|
418
|
+
|
338
419
|
describe "search" do
|
339
420
|
it "should do search with no exception" do
|
340
421
|
verify_read_operation('search')
|
@@ -418,16 +499,16 @@ describe "SourceSync" do
|
|
418
499
|
|
419
500
|
it "should enqueue process_cud SourceJob" do
|
420
501
|
@s.cud_queue = :cud
|
421
|
-
@ss.process_cud
|
502
|
+
@ss.process_cud
|
422
503
|
Resque.peek(:cud).should == {"args"=>
|
423
|
-
["cud", @s.name, @a.name, @u.login,
|
504
|
+
["cud", @s.name, @a.name, @u.login, nil], "class"=>"Rhoconnect::SourceJob"}
|
424
505
|
end
|
425
506
|
|
426
507
|
it "should enqueue process_query SourceJob" do
|
427
508
|
@s.query_queue = :abc
|
428
509
|
@ss.process_query({'foo'=>'bar'})
|
429
510
|
Resque.peek(:abc).should == {"args"=>
|
430
|
-
["query", @s.name, @a.name, @u.login,
|
511
|
+
["query", @s.name, @a.name, @u.login, {'foo'=>'bar'}], "class"=>"Rhoconnect::SourceJob"}
|
431
512
|
end
|
432
513
|
end
|
433
514
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -83,16 +83,22 @@ module TestHelpers
|
|
83
83
|
JSON.parse(data.to_json)
|
84
84
|
end
|
85
85
|
|
86
|
-
def set_state(state)
|
86
|
+
def set_state(state,append=false)
|
87
87
|
state.each do |dockey,data|
|
88
88
|
if data.is_a?(Hash) or data.is_a?(Array)
|
89
|
-
Store.put_data(dockey,data)
|
89
|
+
Store.put_data(dockey,data,append)
|
90
90
|
else
|
91
91
|
Store.put_value(dockey,data)
|
92
92
|
end
|
93
93
|
end
|
94
94
|
end
|
95
95
|
|
96
|
+
def set_zstate(state,assoc_key,append=false)
|
97
|
+
state.each do |dockey,data|
|
98
|
+
Store.put_zdata(dockey,assoc_key,data,append)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
96
102
|
def set_test_data(dockey,data,error_message=nil,error_name='wrongname')
|
97
103
|
if error_message
|
98
104
|
error = {'an_attribute'=>error_message,'name'=>error_name}
|
@@ -120,6 +126,19 @@ module TestHelpers
|
|
120
126
|
end
|
121
127
|
end
|
122
128
|
|
129
|
+
def verify_zresult(result)
|
130
|
+
result.keys.sort.each do |dockey|
|
131
|
+
expected = result[dockey]
|
132
|
+
begin
|
133
|
+
data,assoc_keys = Store.get_zdata(dockey)
|
134
|
+
data.should == expected
|
135
|
+
rescue RSpec::Expectations::ExpectationNotMetError => e
|
136
|
+
message = "\nVerifying `#{dockey}`\n\n" + e.to_s
|
137
|
+
Kernel::raise(RSpec::Expectations::ExpectationNotMetError.new(message))
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
123
142
|
def validate_db(bulk_data,data)
|
124
143
|
validate_db_file(bulk_data.dbfile,bulk_data.sources.members,data)
|
125
144
|
end
|
data/spec/store_spec.rb
CHANGED
@@ -194,6 +194,35 @@ describe "Store" do
|
|
194
194
|
Store.put_data(expected[1],@data)
|
195
195
|
Store.get_keys('doc1:1:1:1:*').sort.should == expected
|
196
196
|
end
|
197
|
+
|
198
|
+
it "should put_zdata and get_zdata" do
|
199
|
+
create_doc = {'1' => {'foo' => 'bar'}}
|
200
|
+
assoc_key = 'my_assoc_key'
|
201
|
+
Store.put_zdata('doc1',assoc_key,create_doc)
|
202
|
+
zdata,keys = Store.get_zdata('doc1')
|
203
|
+
zdata.should == [create_doc]
|
204
|
+
keys.should == [assoc_key]
|
205
|
+
end
|
206
|
+
|
207
|
+
it "should append duplicate data in put_zdata" do
|
208
|
+
create_doc = {'1' => {'foo' => 'bar'}}
|
209
|
+
assoc_key = 'my_assoc_key'
|
210
|
+
Store.put_zdata('doc1',assoc_key,create_doc)
|
211
|
+
Store.put_zdata('doc1',assoc_key,create_doc, true)
|
212
|
+
zdata,keys = Store.get_zdata('doc1')
|
213
|
+
zdata.should == [create_doc,create_doc]
|
214
|
+
keys.should == [assoc_key,assoc_key]
|
215
|
+
end
|
216
|
+
|
217
|
+
it "should flush_zdata" do
|
218
|
+
create_doc = {'1' => {'foo' => 'bar'}}
|
219
|
+
assoc_key = 'my_assoc_key'
|
220
|
+
Store.put_zdata('doc1',assoc_key,create_doc)
|
221
|
+
Store.flush_zdata('doc1')
|
222
|
+
zdata,keys = Store.get_zdata('doc1')
|
223
|
+
zdata.should == []
|
224
|
+
keys.should == []
|
225
|
+
end
|
197
226
|
|
198
227
|
if defined?(JRUBY_VERSION)
|
199
228
|
# FIXME:
|
data/spec/test_methods_spec.rb
CHANGED
@@ -86,14 +86,14 @@ describe "TestMethods" do
|
|
86
86
|
it "should include test_update helper" do
|
87
87
|
record = {'4'=> { 'price' => '199.99' }}
|
88
88
|
test_update(record)
|
89
|
-
|
89
|
+
verify_zresult(@s.docname(:update) => [])
|
90
90
|
end
|
91
91
|
|
92
92
|
it "should include test_update helper when pass through" do
|
93
93
|
record = {'4'=> { 'price' => '199.99' }}
|
94
94
|
@s.pass_through = 'true'
|
95
95
|
test_update(record).should == {'processed' => ["4"]}.to_json
|
96
|
-
|
96
|
+
verify_zresult(@s.docname(:update) => [])
|
97
97
|
end
|
98
98
|
|
99
99
|
it "should include update_errors helper" do
|
@@ -105,14 +105,14 @@ describe "TestMethods" do
|
|
105
105
|
it "should include test_delete helper" do
|
106
106
|
record = {'4'=> { 'price' => '199.99' }}
|
107
107
|
test_delete(record)
|
108
|
-
|
108
|
+
verify_zresult(@s.docname(:delete) => [])
|
109
109
|
end
|
110
110
|
|
111
111
|
it "should include test_delete helper when pass through" do
|
112
112
|
record = {'4'=> { 'price' => '199.99' }}
|
113
113
|
@s.pass_through = 'true'
|
114
114
|
test_delete(record).should == {'processed' => ["4"]}.to_json
|
115
|
-
|
115
|
+
verify_zresult(@s.docname(:delete) => [])
|
116
116
|
end
|
117
117
|
|
118
118
|
it "should include delete_errors helper" do
|
data/tasks/redis.rake
CHANGED
@@ -7,7 +7,7 @@ def windows?
|
|
7
7
|
end
|
8
8
|
|
9
9
|
if windows?
|
10
|
-
$redis_ver = "redis-2.4.
|
10
|
+
$redis_ver = "redis-2.4.5"
|
11
11
|
$redis_zip = "C:/#{$redis_ver}.zip"
|
12
12
|
$redis_dest = "C:/"
|
13
13
|
end
|
@@ -181,7 +181,7 @@ namespace :redis do
|
|
181
181
|
else
|
182
182
|
sh 'rm -rf /tmp/redis/' if File.exists?("#{RedisRunner.redisdir}")
|
183
183
|
sh 'git clone git://github.com/antirez/redis.git /tmp/redis -n'
|
184
|
-
sh "cd #{RedisRunner.redisdir} && git reset --hard && git checkout 2.4.
|
184
|
+
sh "cd #{RedisRunner.redisdir} && git reset --hard && git checkout 2.4.5"
|
185
185
|
end
|
186
186
|
end
|
187
187
|
|
metadata
CHANGED
@@ -1,13 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rhoconnect
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 62196433
|
5
|
+
prerelease: 6
|
6
6
|
segments:
|
7
7
|
- 3
|
8
|
+
- 1
|
8
9
|
- 0
|
9
|
-
-
|
10
|
-
|
10
|
+
- beta
|
11
|
+
- 1
|
12
|
+
version: 3.1.0.beta1
|
11
13
|
platform: ruby
|
12
14
|
authors:
|
13
15
|
- Rhomobile
|
@@ -15,12 +17,12 @@ autorequire:
|
|
15
17
|
bindir: bin
|
16
18
|
cert_chain: []
|
17
19
|
|
18
|
-
date: 2011-
|
20
|
+
date: 2011-12-29 00:00:00 Z
|
19
21
|
dependencies:
|
20
22
|
- !ruby/object:Gem::Dependency
|
21
|
-
type: :runtime
|
22
23
|
prerelease: false
|
23
|
-
|
24
|
+
name: bundler
|
25
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
24
26
|
none: false
|
25
27
|
requirements:
|
26
28
|
- - ~>
|
@@ -30,12 +32,12 @@ dependencies:
|
|
30
32
|
- 1
|
31
33
|
- 0
|
32
34
|
version: "1.0"
|
33
|
-
version_requirements: *id001
|
34
|
-
name: bundler
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
35
|
type: :runtime
|
36
|
+
requirement: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
37
38
|
prerelease: false
|
38
|
-
|
39
|
+
name: sinatra
|
40
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
39
41
|
none: false
|
40
42
|
requirements:
|
41
43
|
- - ~>
|
@@ -45,12 +47,12 @@ dependencies:
|
|
45
47
|
- 1
|
46
48
|
- 3
|
47
49
|
version: "1.3"
|
48
|
-
version_requirements: *id002
|
49
|
-
name: sinatra
|
50
|
-
- !ruby/object:Gem::Dependency
|
51
50
|
type: :runtime
|
51
|
+
requirement: *id002
|
52
|
+
- !ruby/object:Gem::Dependency
|
52
53
|
prerelease: false
|
53
|
-
|
54
|
+
name: rake
|
55
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
54
56
|
none: false
|
55
57
|
requirements:
|
56
58
|
- - ~>
|
@@ -61,12 +63,12 @@ dependencies:
|
|
61
63
|
- 9
|
62
64
|
- 2
|
63
65
|
version: 0.9.2
|
64
|
-
version_requirements: *id003
|
65
|
-
name: rake
|
66
|
-
- !ruby/object:Gem::Dependency
|
67
66
|
type: :runtime
|
67
|
+
requirement: *id003
|
68
|
+
- !ruby/object:Gem::Dependency
|
68
69
|
prerelease: false
|
69
|
-
|
70
|
+
name: json
|
71
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
70
72
|
none: false
|
71
73
|
requirements:
|
72
74
|
- - ~>
|
@@ -77,12 +79,12 @@ dependencies:
|
|
77
79
|
- 5
|
78
80
|
- 0
|
79
81
|
version: 1.5.0
|
80
|
-
version_requirements: *id004
|
81
|
-
name: json
|
82
|
-
- !ruby/object:Gem::Dependency
|
83
82
|
type: :runtime
|
83
|
+
requirement: *id004
|
84
|
+
- !ruby/object:Gem::Dependency
|
84
85
|
prerelease: false
|
85
|
-
|
86
|
+
name: rubyzip
|
87
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
86
88
|
none: false
|
87
89
|
requirements:
|
88
90
|
- - ~>
|
@@ -93,12 +95,12 @@ dependencies:
|
|
93
95
|
- 9
|
94
96
|
- 4
|
95
97
|
version: 0.9.4
|
96
|
-
version_requirements: *id005
|
97
|
-
name: rubyzip
|
98
|
-
- !ruby/object:Gem::Dependency
|
99
98
|
type: :runtime
|
99
|
+
requirement: *id005
|
100
|
+
- !ruby/object:Gem::Dependency
|
100
101
|
prerelease: false
|
101
|
-
|
102
|
+
name: uuidtools
|
103
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
102
104
|
none: false
|
103
105
|
requirements:
|
104
106
|
- - ">="
|
@@ -109,12 +111,12 @@ dependencies:
|
|
109
111
|
- 1
|
110
112
|
- 1
|
111
113
|
version: 2.1.1
|
112
|
-
version_requirements: *id006
|
113
|
-
name: uuidtools
|
114
|
-
- !ruby/object:Gem::Dependency
|
115
114
|
type: :runtime
|
115
|
+
requirement: *id006
|
116
|
+
- !ruby/object:Gem::Dependency
|
116
117
|
prerelease: false
|
117
|
-
|
118
|
+
name: redis
|
119
|
+
version_requirements: &id007 !ruby/object:Gem::Requirement
|
118
120
|
none: false
|
119
121
|
requirements:
|
120
122
|
- - ">="
|
@@ -125,12 +127,12 @@ dependencies:
|
|
125
127
|
- 2
|
126
128
|
- 0
|
127
129
|
version: 2.2.0
|
128
|
-
version_requirements: *id007
|
129
|
-
name: redis
|
130
|
-
- !ruby/object:Gem::Dependency
|
131
130
|
type: :runtime
|
131
|
+
requirement: *id007
|
132
|
+
- !ruby/object:Gem::Dependency
|
132
133
|
prerelease: false
|
133
|
-
|
134
|
+
name: resque
|
135
|
+
version_requirements: &id008 !ruby/object:Gem::Requirement
|
134
136
|
none: false
|
135
137
|
requirements:
|
136
138
|
- - ~>
|
@@ -141,12 +143,12 @@ dependencies:
|
|
141
143
|
- 19
|
142
144
|
- 0
|
143
145
|
version: 1.19.0
|
144
|
-
version_requirements: *id008
|
145
|
-
name: resque
|
146
|
-
- !ruby/object:Gem::Dependency
|
147
146
|
type: :runtime
|
147
|
+
requirement: *id008
|
148
|
+
- !ruby/object:Gem::Dependency
|
148
149
|
prerelease: false
|
149
|
-
|
150
|
+
name: rest-client
|
151
|
+
version_requirements: &id009 !ruby/object:Gem::Requirement
|
150
152
|
none: false
|
151
153
|
requirements:
|
152
154
|
- - ~>
|
@@ -157,12 +159,12 @@ dependencies:
|
|
157
159
|
- 6
|
158
160
|
- 1
|
159
161
|
version: 1.6.1
|
160
|
-
version_requirements: *id009
|
161
|
-
name: rest-client
|
162
|
-
- !ruby/object:Gem::Dependency
|
163
162
|
type: :runtime
|
163
|
+
requirement: *id009
|
164
|
+
- !ruby/object:Gem::Dependency
|
164
165
|
prerelease: false
|
165
|
-
|
166
|
+
name: templater
|
167
|
+
version_requirements: &id010 !ruby/object:Gem::Requirement
|
166
168
|
none: false
|
167
169
|
requirements:
|
168
170
|
- - ~>
|
@@ -173,8 +175,8 @@ dependencies:
|
|
173
175
|
- 0
|
174
176
|
- 0
|
175
177
|
version: 1.0.0
|
176
|
-
|
177
|
-
|
178
|
+
type: :runtime
|
179
|
+
requirement: *id010
|
178
180
|
description: RhoConnect App Integration Server and related command-line utilities
|
179
181
|
email: dev@rhomobile.com
|
180
182
|
executables:
|
@@ -201,8 +203,6 @@ files:
|
|
201
203
|
- bench/benchapp/config.ru
|
202
204
|
- bench/benchapp/Gemfile
|
203
205
|
- bench/benchapp/Gemfile.lock
|
204
|
-
- bench/benchapp/log/passenger.3000.log
|
205
|
-
- bench/benchapp/log/passenger.9292.log
|
206
206
|
- bench/benchapp/Rakefile
|
207
207
|
- bench/benchapp/settings/license.key
|
208
208
|
- bench/benchapp/settings/settings.yml
|
@@ -211,8 +211,6 @@ files:
|
|
211
211
|
- bench/benchapp/spec/sources/mock_adapter_spec.rb
|
212
212
|
- bench/benchapp/spec/sources/queue_mock_adapter_spec.rb
|
213
213
|
- bench/benchapp/spec/spec_helper.rb
|
214
|
-
- bench/benchapp/tmp/pids/passenger.3000.pid.lock
|
215
|
-
- bench/benchapp/tmp/pids/passenger.9292.pid.lock
|
216
214
|
- bench/blobapp/application.rb
|
217
215
|
- bench/blobapp/config.ru
|
218
216
|
- bench/blobapp/Gemfile
|
@@ -227,8 +225,10 @@ files:
|
|
227
225
|
- bench/distr_bench/distr_bench_main
|
228
226
|
- bench/distr_bench/run_distr_client.sh
|
229
227
|
- bench/distr_bench/run_test_query_script.sh
|
228
|
+
- bench/lib/bench/aws_utils.rb
|
230
229
|
- bench/lib/bench/bench_result_processor.rb
|
231
230
|
- bench/lib/bench/cli.rb
|
231
|
+
- bench/lib/bench/distr_runner.rb
|
232
232
|
- bench/lib/bench/logging.rb
|
233
233
|
- bench/lib/bench/mock_client.rb
|
234
234
|
- bench/lib/bench/result.rb
|
@@ -239,17 +239,8 @@ files:
|
|
239
239
|
- bench/lib/bench/timer.rb
|
240
240
|
- bench/lib/bench/utils.rb
|
241
241
|
- bench/lib/bench.rb
|
242
|
-
- bench/lib/testdata/0-data.txt
|
243
|
-
- bench/lib/testdata/1-data.txt
|
244
|
-
- bench/lib/testdata/10-data.txt
|
245
242
|
- bench/lib/testdata/100-data.txt
|
246
|
-
- bench/lib/testdata/2-data.txt
|
247
|
-
- bench/lib/testdata/25-data.txt
|
248
|
-
- bench/lib/testdata/250-data.txt
|
249
|
-
- bench/lib/testdata/3-data.txt
|
250
243
|
- bench/lib/testdata/5-data.txt
|
251
|
-
- bench/lib/testdata/50-data.txt
|
252
|
-
- bench/lib/testdata/500-data.txt
|
253
244
|
- bench/lib/testdata/images/icon.ico
|
254
245
|
- bench/lib/testdata/images/icon.png
|
255
246
|
- bench/lib/testdata/images/loading-Landscape.png
|
@@ -286,16 +277,20 @@ files:
|
|
286
277
|
- doc/adapters-intro.txt
|
287
278
|
- doc/async-jobs.txt
|
288
279
|
- doc/authentication.txt
|
280
|
+
- doc/benchmarks-running.txt
|
289
281
|
- doc/benchmarks.txt
|
290
282
|
- doc/blob-sync.txt
|
291
283
|
- doc/bulk-sync.txt
|
284
|
+
- doc/client-java.txt
|
292
285
|
- doc/client-objc.txt
|
293
286
|
- doc/client.txt
|
294
287
|
- doc/command-line.txt
|
295
288
|
- doc/contributing.txt
|
289
|
+
- doc/cud-conflicts.txt
|
296
290
|
- doc/deploying.txt
|
297
291
|
- doc/extending-rhoconnect-server.txt
|
298
292
|
- doc/heroku-addon.txt
|
293
|
+
- doc/hosting-rhohub.txt
|
299
294
|
- doc/install.txt
|
300
295
|
- doc/introduction.txt
|
301
296
|
- doc/java-plugin.txt
|
@@ -304,6 +299,7 @@ files:
|
|
304
299
|
- doc/migration.txt
|
305
300
|
- doc/net-plugin.txt
|
306
301
|
- doc/plugin-intro.txt
|
302
|
+
- doc/preparing-production.txt
|
307
303
|
- doc/public/css/print.css
|
308
304
|
- doc/public/css/screen.css
|
309
305
|
- doc/public/css/style.css
|
@@ -311,6 +307,7 @@ files:
|
|
311
307
|
- doc/rails-plugin.txt
|
312
308
|
- doc/release.txt
|
313
309
|
- doc/rest-api.txt
|
310
|
+
- doc/rhoconnect-redis-stack.txt
|
314
311
|
- doc/settings.txt
|
315
312
|
- doc/source-adapters.txt
|
316
313
|
- doc/stats-middleware.txt
|
@@ -319,6 +316,7 @@ files:
|
|
319
316
|
- doc/web-console.txt
|
320
317
|
- examples/simple/application.rb
|
321
318
|
- examples/simple/config.ru
|
319
|
+
- examples/simple/dump.rdb
|
322
320
|
- examples/simple/Rakefile
|
323
321
|
- examples/simple/settings/license.key
|
324
322
|
- examples/simple/settings/settings.yml
|
@@ -352,6 +350,7 @@ files:
|
|
352
350
|
- installer/utils/constants.rb
|
353
351
|
- installer/utils/nix_install_test.rb
|
354
352
|
- installer/utils/nix_installation.rake
|
353
|
+
- installer/utils/package_upload/auto-repo.rb
|
355
354
|
- installer/utils/package_upload/repos.rake
|
356
355
|
- installer/utils/package_upload/s3_upload.rb
|
357
356
|
- installer/windows/configUi.ini
|
@@ -479,6 +478,7 @@ files:
|
|
479
478
|
- lib/rhoconnect/ping/apple.rb
|
480
479
|
- lib/rhoconnect/ping/blackberry.rb
|
481
480
|
- lib/rhoconnect/ping.rb
|
481
|
+
- lib/rhoconnect/predefined_adapters/bench_adapter.rb
|
482
482
|
- lib/rhoconnect/read_state.rb
|
483
483
|
- lib/rhoconnect/rho_indifferent_access.rb
|
484
484
|
- lib/rhoconnect/server/views/index.erb
|
@@ -617,7 +617,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
617
617
|
requirements: []
|
618
618
|
|
619
619
|
rubyforge_project:
|
620
|
-
rubygems_version: 1.8.
|
620
|
+
rubygems_version: 1.8.13
|
621
621
|
signing_key:
|
622
622
|
specification_version: 3
|
623
623
|
summary: RhoConnect App Integration Server
|
@@ -1 +0,0 @@
|
|
1
|
-
2011/10/24 15:33:01 [error] 35864#0: *4 "/Users/mzverev/Projects/master/rhoconnect/bench/benchapp/public/index.html" is not found (2: No such file or directory), client: 127.0.0.1, server: _, request: "HEAD / HTTP/1.1", host: "0.0.0.0"
|