rhoconnect 3.1.0 → 3.1.1
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 +3 -0
- data/Gemfile.lock +4 -4
- data/bench/bench_runner.rb +26 -14
- data/bench/benchapp/Gemfile +1 -1
- data/bench/benchapp/Gemfile.lock +7 -7
- data/bench/run_bench.sh +8 -4
- data/installer/unix-like/create_texts.rb +2 -1
- data/installer/utils/constants.rb +2 -2
- data/installer/utils/nix_install_test.rb +24 -19
- data/installer/utils/package_upload/repos.rake +17 -8
- data/lib/rhoconnect/version.rb +1 -1
- data/rhoconnect.gemspec +1 -1
- metadata +8 -8
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
## 3.1.1 (2012-02-07)
|
2
|
+
* Fix Zendesk issue: Rack 1.4.1 and Sinatra 1.3.2 produce 502 error with Heroku deployment (tickets 2147, 2155, 2153)
|
3
|
+
|
1
4
|
## 3.1.0 (2012-01-31)
|
2
5
|
* #23977723 - Bug fix (Rspec examples fails for both Ruby 1.8.7 and ree-2011.12 (p357))
|
3
6
|
* #23982399 - Add to RhoConnect installer support for ree 2012.01
|
data/Gemfile.lock
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
rhoconnect (3.1.
|
4
|
+
rhoconnect (3.1.1)
|
5
5
|
bundler (~> 1.0)
|
6
6
|
json (~> 1.6.0)
|
7
|
-
rack (~> 1.
|
7
|
+
rack (~> 1.3.6)
|
8
8
|
rake (~> 0.9.2)
|
9
9
|
redis (>= 2.2.0)
|
10
10
|
resque (~> 1.19.0)
|
@@ -49,7 +49,7 @@ GEM
|
|
49
49
|
json
|
50
50
|
highline (1.6.11)
|
51
51
|
jdbc-sqlite3 (3.7.2)
|
52
|
-
jruby-jars (1.6.
|
52
|
+
jruby-jars (1.6.6)
|
53
53
|
jruby-openssl (0.7.5)
|
54
54
|
bouncy-castle-java (>= 1.5.0146.1)
|
55
55
|
jruby-rack (1.1.3)
|
@@ -62,7 +62,7 @@ GEM
|
|
62
62
|
net-ssh (2.3.0)
|
63
63
|
nokogiri (1.5.0)
|
64
64
|
nokogiri (1.5.0-java)
|
65
|
-
rack (1.
|
65
|
+
rack (1.3.6)
|
66
66
|
rack-protection (1.2.0)
|
67
67
|
rack
|
68
68
|
rack-test (0.6.1)
|
data/bench/bench_runner.rb
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
#LOG_FILE = '/var/log/bench_runner.log'
|
4
|
-
# orig_stdout = $stdout # redirect stdout to LOG_FILE
|
5
|
-
# $stdout = File.new(LOG_FILE, 'a')
|
6
|
-
|
2
|
+
#
|
7
3
|
RHOCONNECT_PATH = ARGV[0]
|
4
|
+
LOG_FILE = ARGV[1]
|
5
|
+
orig_stdout = $stdout # redirect stdout to LOG_FILE
|
6
|
+
orig_stderr = $sdterr
|
7
|
+
$stdout = $sdterr = File.new(LOG_FILE, 'a')
|
8
|
+
|
8
9
|
puts "Script #{$0} is started at #{Time.now.to_s}"
|
9
10
|
|
10
11
|
begin
|
@@ -32,7 +33,7 @@ begin
|
|
32
33
|
|
33
34
|
puts "Starting bench application ..."
|
34
35
|
t = Thread.new do
|
35
|
-
log = `bundle exec rackup -D -P /tmp/benchapp.pid -s thin config.ru`
|
36
|
+
log = `bundle exec rackup -D -P /tmp/benchapp.pid -s thin config.ru 2>&1`
|
36
37
|
puts log
|
37
38
|
end
|
38
39
|
t.join
|
@@ -55,19 +56,27 @@ begin
|
|
55
56
|
end
|
56
57
|
=end
|
57
58
|
|
58
|
-
|
59
|
-
|
59
|
+
count = 0
|
60
|
+
unless File.exist? '/tmp/benchapp.pid'
|
61
|
+
sleep 1
|
62
|
+
count += 1
|
63
|
+
# Throw exception after waiting at least 20 sec.
|
64
|
+
raise "Error: Bench application failed to start. File /tmp/benchapp.pid does not exist." if count >= 10
|
65
|
+
end
|
60
66
|
|
61
67
|
pid = `cat /tmp/benchapp.pid`
|
62
68
|
puts "Bench application is up and running with pid #{pid}"
|
63
69
|
puts
|
64
70
|
|
71
|
+
# puts `echo 'yes' | rake rhoconnect:reset 2>&1`
|
72
|
+
# puts
|
73
|
+
|
65
74
|
Dir.chdir "../"
|
66
75
|
bench_errors = {}
|
67
76
|
puts "Running bench scripts ..."
|
68
77
|
%w[ cud_script query_only_script query_script query_md_script ].each do |script|
|
69
78
|
puts "Script #{script} ..."
|
70
|
-
log = `"./run_#{script}.sh"`
|
79
|
+
log = `"./run_#{script}.sh" 2>&1`
|
71
80
|
|
72
81
|
count = 0
|
73
82
|
stats_found = nil
|
@@ -95,18 +104,21 @@ begin
|
|
95
104
|
puts "#{script}:"
|
96
105
|
errors.each { |err| puts " #{err}" }
|
97
106
|
end
|
107
|
+
exit -1
|
98
108
|
end
|
99
|
-
|
109
|
+
|
100
110
|
rescue Exception => e
|
101
111
|
puts e.message
|
112
|
+
exit -1
|
102
113
|
ensure
|
103
114
|
if File.exist? '/tmp/benchapp.pid'
|
104
115
|
pid = `cat /tmp/benchapp.pid`
|
105
116
|
res = `kill -9 #{pid}` if pid.to_i > 0 # `kill -s SIGINT #{pid}`
|
106
117
|
File.delete '/tmp/benchapp.pid'
|
118
|
+
puts "Bench application killed ..."
|
107
119
|
end
|
120
|
+
puts "Script #{$0} is finished at #{Time.now.to_s}"
|
121
|
+
puts ""
|
122
|
+
$stdout = orig_stdout #restore stdout
|
123
|
+
$sdterr = orig_stderr #restore stderr
|
108
124
|
end
|
109
|
-
|
110
|
-
puts "Script #{$0} is finished at #{Time.now.to_s}"
|
111
|
-
puts ""
|
112
|
-
# $stdout = orig_stdout #restore stdout
|
data/bench/benchapp/Gemfile
CHANGED
data/bench/benchapp/Gemfile.lock
CHANGED
@@ -2,7 +2,7 @@ GEM
|
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
4
|
SystemTimer (1.2.3)
|
5
|
-
daemons (1.1.
|
5
|
+
daemons (1.1.8)
|
6
6
|
diff-lcs (1.1.3)
|
7
7
|
eventmachine (0.12.10)
|
8
8
|
extlib (0.9.15)
|
@@ -10,7 +10,7 @@ GEM
|
|
10
10
|
json (1.6.5)
|
11
11
|
mime-types (1.17.2)
|
12
12
|
multi_json (1.0.4)
|
13
|
-
rack (1.
|
13
|
+
rack (1.3.6)
|
14
14
|
rack-protection (1.2.0)
|
15
15
|
rack
|
16
16
|
rack-test (0.6.1)
|
@@ -26,10 +26,10 @@ GEM
|
|
26
26
|
vegas (~> 0.1.2)
|
27
27
|
rest-client (1.6.7)
|
28
28
|
mime-types (>= 1.16)
|
29
|
-
rhoconnect (3.1.
|
29
|
+
rhoconnect (3.1.1)
|
30
30
|
bundler (~> 1.0)
|
31
31
|
json (~> 1.6.0)
|
32
|
-
rack (~> 1.
|
32
|
+
rack (~> 1.3.6)
|
33
33
|
rake (~> 0.9.2)
|
34
34
|
redis (>= 2.2.0)
|
35
35
|
resque (~> 1.19.0)
|
@@ -48,9 +48,9 @@ GEM
|
|
48
48
|
rspec-mocks (2.6.0)
|
49
49
|
rubyzip (0.9.5)
|
50
50
|
sinatra (1.3.2)
|
51
|
-
rack (
|
51
|
+
rack (~> 1.3, >= 1.3.6)
|
52
52
|
rack-protection (~> 1.2)
|
53
|
-
tilt (
|
53
|
+
tilt (~> 1.3, >= 1.3.3)
|
54
54
|
sqlite3 (1.3.5)
|
55
55
|
templater (1.0.0)
|
56
56
|
diff-lcs (>= 1.1.2)
|
@@ -75,7 +75,7 @@ DEPENDENCIES
|
|
75
75
|
jdbc-sqlite3 (>= 3.7.2)
|
76
76
|
jruby-openssl (>= 0.7.4)
|
77
77
|
rack-test (>= 0.5.3)
|
78
|
-
rhoconnect (~> 3.1.0
|
78
|
+
rhoconnect (~> 3.1.0)
|
79
79
|
rspec (~> 2.6.0)
|
80
80
|
sqlite3 (>= 1.3.3)
|
81
81
|
thin
|
data/bench/run_bench.sh
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
#!/bin/
|
2
|
-
|
1
|
+
#!/bin/bash
|
3
2
|
#
|
4
3
|
# Add the following line to crontab to execute benchmarks as a cron job on workdays at 1AM
|
5
4
|
#
|
@@ -29,15 +28,20 @@ git reset --hard HEAD | tee -a /tmp/bench.log 2>&1
|
|
29
28
|
git pull origin master | tee -a /tmp/bench.log 2>&1
|
30
29
|
echo '' | tee -a /tmp/bench.log
|
31
30
|
|
31
|
+
echo 'Flush Redis DB' | tee -a /tmp/bench.log
|
32
|
+
redis-cli flushdb > /dev/null
|
33
|
+
|
32
34
|
# Run benchmarks for ruby 1.8.7, ree, 1.9.2, and 1.9.3
|
33
35
|
# TODO: 'jruby'
|
34
|
-
for ruby in '1.9.3' '1.
|
36
|
+
for ruby in '1.9.3' '1.8.7' 'ree'
|
35
37
|
do
|
36
38
|
rvm use $ruby > /dev/null
|
37
39
|
ruby_version=$(rvm current)
|
38
40
|
echo "Running benchmarks for $ruby_version ..." | tee -a /tmp/bench.log
|
39
41
|
echo "" | tee -a /tmp/bench.log
|
40
|
-
|
42
|
+
|
43
|
+
ruby ./bench/bench_runner.rb $RHOCONNECT_HOME /tmp/bench.log
|
44
|
+
if (($?)) ; then echo "Benchmarks for $ruby_version failed"; exit 1; fi
|
41
45
|
done
|
42
46
|
|
43
47
|
|
@@ -394,7 +394,8 @@ end
|
|
394
394
|
def generate_common_info
|
395
395
|
|
396
396
|
readme = <<_README_
|
397
|
-
|
397
|
+
|
398
|
+
Thank you for choosing Rhoconnect for your mobile app sync needs!
|
398
399
|
To finish this setup, please complete the following...
|
399
400
|
|
400
401
|
1) Add necessary bins to the path(s) of the users who will
|
@@ -13,13 +13,13 @@ module Constants
|
|
13
13
|
SSH_KEY = "#{HOME_DIR}/.ssh/#{PEM_FILE}"
|
14
14
|
ACCESS_KEY_FILE = "#{HOME_DIR}/.ec2"
|
15
15
|
UBUNTU_STACK = { :image_id => 'ami-3d491a78',
|
16
|
-
:flavor_id => '
|
16
|
+
:flavor_id => 'c1.medium',
|
17
17
|
:key_name => 'alexdevkey',
|
18
18
|
:groups => 'load-test',
|
19
19
|
:user => 'ubuntu'}
|
20
20
|
|
21
21
|
CENTOS_STACK = { :image_id => 'ami-13346656',
|
22
|
-
:flavor_id => '
|
22
|
+
:flavor_id => 'c1.medium',
|
23
23
|
:key_name => 'alexdevkey',
|
24
24
|
:groups => 'load-test',
|
25
25
|
:user => 'root'}
|
@@ -3,6 +3,7 @@
|
|
3
3
|
$:.unshift File.expand_path(File.dirname(__FILE__))
|
4
4
|
$:.unshift File.expand_path(File.join(File.dirname(__FILE__), 'installer', 'utils'))
|
5
5
|
|
6
|
+
require 'rhoconnect'
|
6
7
|
require 'rubygems'
|
7
8
|
require 'fog'
|
8
9
|
require 'net/http'
|
@@ -16,23 +17,24 @@ require 'readline'
|
|
16
17
|
def cmd(cmd)
|
17
18
|
puts cmd
|
18
19
|
system(cmd)
|
19
|
-
|
20
|
-
$?
|
20
|
+
exit 1 if !$?.to_i == 0
|
21
21
|
end #cmd
|
22
22
|
|
23
|
-
# nightly_build?
|
24
|
-
# Return whether or not
|
25
|
-
def nightly_build?
|
26
|
-
ARGV.include? 'nightly'
|
27
|
-
end #nightly_build?
|
28
|
-
|
29
23
|
# ssh_cmd
|
30
24
|
# More easily issue commands over the ssh connection.
|
31
25
|
def ssh_cmd(cmd)
|
32
26
|
puts cmd
|
33
27
|
puts @ssh.run(cmd)[0].stdout
|
28
|
+
exit_code = @ssh.run('echo $?')[0].stdout
|
29
|
+
exit 1 if exit_code.to_i != 0
|
34
30
|
end #ssh_cmd
|
35
31
|
|
32
|
+
# nightly_build?
|
33
|
+
# Return whether or not
|
34
|
+
def nightly_build?
|
35
|
+
ARGV.include? 'nightly'
|
36
|
+
end #nightly_build?
|
37
|
+
|
36
38
|
# compile_stack_info
|
37
39
|
# Fills in all necessary information which is stack specific
|
38
40
|
def compile_stack_info
|
@@ -43,10 +45,15 @@ def compile_stack_info
|
|
43
45
|
|
44
46
|
# This part of the package name will always be the same
|
45
47
|
local_file = "#{`pwd`.strip}/pkg/"
|
48
|
+
|
49
|
+
# Determine whether or not the build is a nightly build.
|
50
|
+
bucket = nightly_build? ? 'rhoconnect' : 'rhoconnect-test'
|
51
|
+
|
52
|
+
# Determine which folder in the bucket to grab files from
|
53
|
+
packages = Rhoconnect::VERSION.include?('beta') ? 'beta-packages' : 'packages'
|
46
54
|
|
47
55
|
# Append the rest of the file name according to distribution
|
48
56
|
if @user == 'ubuntu'
|
49
|
-
nightly_build? ? packages = 'beta-packages' : packages = 'packages'
|
50
57
|
|
51
58
|
@dist = { :flavor => "ubuntu",
|
52
59
|
:package => "rhoconnect_#{Constants::RC_VERSION}_all.deb",
|
@@ -58,7 +65,7 @@ def compile_stack_info
|
|
58
65
|
:repo_src_file => '/etc/apt/sources.list',
|
59
66
|
:repo_str => '\n' +
|
60
67
|
'# This is the repository for rhoconnect packages\n' +
|
61
|
-
"deb http
|
68
|
+
"deb http://#{bucket}.s3.amazonaws.com/#{packages}/deb rhoconnect main" }
|
62
69
|
elsif @user == 'root'
|
63
70
|
@dist = { :flavor => "centos",
|
64
71
|
:package => "rhoconnect-#{Constants::RC_VERSION}.noarch.rpm",
|
@@ -70,7 +77,7 @@ def compile_stack_info
|
|
70
77
|
:repo_src_file => '/etc/yum.repos.d/rhoconnect.repo',
|
71
78
|
:repo_str => '[rhoconnect]\n' +
|
72
79
|
'name=Rhoconnect\n' +
|
73
|
-
"baseurl=http
|
80
|
+
"baseurl=http://#{bucket}.s3.amazonaws.com/#{packages}/rpm" +
|
74
81
|
'\nenabled=1\n' +
|
75
82
|
'gpgcheck=0\n' }
|
76
83
|
|
@@ -183,12 +190,6 @@ end #install_package
|
|
183
190
|
# Attempts to start redis and nginx servers
|
184
191
|
def start_servers
|
185
192
|
max_attempts = 100
|
186
|
-
puts "Waiting #{Constants::SLEEP} seconds for services to initialize."
|
187
|
-
Constants::SLEEP.times do |sec|
|
188
|
-
print '.'
|
189
|
-
STDOUT.flush
|
190
|
-
sleep 1
|
191
|
-
end #do
|
192
193
|
puts
|
193
194
|
|
194
195
|
['Redis', 'Nginx'].each do |program|
|
@@ -201,8 +202,9 @@ def start_servers
|
|
201
202
|
end #while
|
202
203
|
if attempts >= max_attempts
|
203
204
|
puts "#{program} failed to start."
|
205
|
+
exit 1
|
204
206
|
else
|
205
|
-
puts "#{program} start took #{attempts} attempts."
|
207
|
+
puts "#{program} start took #{attempts} attempts." if attempts > 1
|
206
208
|
end #if
|
207
209
|
puts
|
208
210
|
end #do
|
@@ -225,7 +227,7 @@ end #check_rc_service
|
|
225
227
|
# compute_time
|
226
228
|
# General time computation method
|
227
229
|
def compute_time(start_time, end_time)
|
228
|
-
time_delta = (end_time - start_time)
|
230
|
+
time_delta = (end_time - start_time).round 3
|
229
231
|
|
230
232
|
if time_delta >= 60
|
231
233
|
time_delta /= 60
|
@@ -245,6 +247,9 @@ end #compute_time
|
|
245
247
|
# Test Package installations
|
246
248
|
Constants::STACKS.each do |stack|
|
247
249
|
start_time = Time.now
|
250
|
+
|
251
|
+
|
252
|
+
|
248
253
|
begin
|
249
254
|
@stack = stack
|
250
255
|
compile_stack_info
|
@@ -1,5 +1,15 @@
|
|
1
|
+
require 'rake'
|
2
|
+
|
1
3
|
desc 'Creates and uploads apt and rpm repos.'
|
2
|
-
task "build:repos"
|
4
|
+
task "build:repos", :build_type do |t, args|
|
5
|
+
# Run dependent rake jobs first
|
6
|
+
Rake::Task['build:deb'].invoke
|
7
|
+
Rake::Task['build:rpm'].invoke
|
8
|
+
args.with_defaults :build_type => 'nightly-build'
|
9
|
+
puts args
|
10
|
+
# Exit if args are not valid args
|
11
|
+
exit 1 if !args[:build_type].eql? "nightly-build" and !args[:build_type].eql? "release-build"
|
12
|
+
|
3
13
|
require 'find'
|
4
14
|
require 'fileutils'
|
5
15
|
|
@@ -7,7 +17,7 @@ task "build:repos" => ['build:deb', 'build:rpm'] do
|
|
7
17
|
|
8
18
|
PKG_DIR = '/packages'
|
9
19
|
BETA_PKG_DIR = '/beta-packages'
|
10
|
-
BUCKET = 'rhoconnect'
|
20
|
+
BUCKET = args[:build_type].eql?('release-build') ? 'rhoconnect-test' : 'rhoconnect'
|
11
21
|
|
12
22
|
def cmd(cmd)
|
13
23
|
puts cmd unless @raked
|
@@ -58,7 +68,6 @@ task "build:repos" => ['build:deb', 'build:rpm'] do
|
|
58
68
|
def copy_files
|
59
69
|
# Copy the packages to their respective directory
|
60
70
|
Find.find('./pkg') do |file|
|
61
|
-
puts "File: #{file}"
|
62
71
|
if !FileTest.directory?(file)
|
63
72
|
dest_dir = File.extname(file)
|
64
73
|
dest_dir[0] = '' #get rid of '.' before extension name
|
@@ -85,19 +94,19 @@ task "build:repos" => ['build:deb', 'build:rpm'] do
|
|
85
94
|
|
86
95
|
# Call S3 upload script
|
87
96
|
['deb', 'rpm'].each do |dir|
|
88
|
-
beta =
|
97
|
+
beta = false
|
89
98
|
pkg_dir = PKG_DIR
|
90
99
|
Find.find("#{PKG_DIR}/#{dir}") do |file|
|
91
100
|
if File.extname(file) =~ /deb|rpm/
|
92
|
-
|
93
|
-
pkg_dir = BETA_PKG_DIR
|
101
|
+
beta = file.include?('beta') ? true : false
|
102
|
+
pkg_dir = BETA_PKG_DIR if beta
|
94
103
|
cmd "sudo mkdir #{BETA_PKG_DIR}" unless File.directory? BETA_PKG_DIR
|
95
104
|
cmd "sudo chmod 777 #{BETA_PKG_DIR}"
|
96
105
|
# If one beta pkg is found, break.
|
97
|
-
break
|
106
|
+
break if beta
|
98
107
|
end #if
|
99
108
|
end #do
|
100
|
-
cmd "sudo cp -rf #{PKG_DIR}/#{dir} #{BETA_PKG_DIR}/#{dir}"
|
109
|
+
cmd "sudo cp -rf #{PKG_DIR}/#{dir} #{BETA_PKG_DIR}/#{dir}" if pkg_dir == BETA_PKG_DIR
|
101
110
|
cmd "sudo ruby ./installer/utils/package_upload/s3_upload.rb #{pkg_dir}/#{dir} #{BUCKET} #{@raked}"
|
102
111
|
end #do
|
103
112
|
end #build:repos
|
data/lib/rhoconnect/version.rb
CHANGED
data/rhoconnect.gemspec
CHANGED
@@ -37,7 +37,7 @@ Gem::Specification.new do |s|
|
|
37
37
|
]
|
38
38
|
|
39
39
|
s.add_dependency('bundler', '~> 1.0')
|
40
|
-
s.add_dependency("rack", '~> 1.
|
40
|
+
s.add_dependency("rack", '~> 1.3.6')
|
41
41
|
s.add_dependency("sinatra", '~> 1.3')
|
42
42
|
s.add_dependency('rake', '~> 0.9.2')
|
43
43
|
s.add_dependency('json', '~> 1.6.0')
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rhoconnect
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 1
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 3
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 3.1.
|
9
|
+
- 1
|
10
|
+
version: 3.1.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Rhomobile
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-
|
18
|
+
date: 2012-02-07 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|
@@ -38,12 +38,12 @@ dependencies:
|
|
38
38
|
requirements:
|
39
39
|
- - ~>
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
hash:
|
41
|
+
hash: 23
|
42
42
|
segments:
|
43
43
|
- 1
|
44
|
-
-
|
45
|
-
-
|
46
|
-
version: 1.
|
44
|
+
- 3
|
45
|
+
- 6
|
46
|
+
version: 1.3.6
|
47
47
|
requirement: *id002
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|