rubber 2.5.3 → 2.5.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +29 -2
- data/CHANGELOG +23 -1
- data/Gemfile +2 -1
- data/Gemfile.1.8.7 +8 -0
- data/lib/rubber/cloud/aws.rb +9 -4
- data/lib/rubber/cloud/base.rb +5 -3
- data/lib/rubber/cloud/digital_ocean.rb +2 -0
- data/lib/rubber/cloud/generic.rb +1 -0
- data/lib/rubber/instance.rb +8 -0
- data/lib/rubber/recipes/rubber.rb +3 -3
- data/lib/rubber/recipes/rubber/instances.rb +1 -1
- data/lib/rubber/recipes/rubber/volumes.rb +5 -2
- data/lib/rubber/version.rb +1 -1
- data/templates/apache/config/rubber/role/web_tools/tools-apache-vhost.conf +1 -1
- data/templates/base/config/rubber/deploy-setup.rb +5 -2
- data/templates/base/config/rubber/rubber-ruby.yml +4 -2
- data/templates/base/config/rubber/rubber.yml +11 -8
- data/templates/passenger_nginx/config/rubber/role/passenger_nginx/application.conf +0 -1
- data/templates/passenger_nginx/config/rubber/rubber-passenger_nginx.yml +1 -0
- data/templates/redis/config/rubber/deploy-redis.rb +5 -5
- data/templates/redis/config/rubber/rubber-redis.yml +1 -1
- data/test/cloud/aws_test.rb +17 -0
- data/test/cloud/digital_ocean_test.rb +19 -4
- data/test/cloud/generic_test.rb +20 -0
- data/test/dns/zerigo_test.rb +6 -1
- data/test/encryption_test.rb +0 -8
- data/test/environment_test.rb +0 -2
- data/test/test_helper.rb +4 -0
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5eee7ca6b10464295c9a962aef561ca84f03579d
|
4
|
+
data.tar.gz: 7e592fc7c63e42e11a5d05aa7e031fbca679a46b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 29bb8877ceb4e3542829197561418cd1a07e8d5872ffb94a0a2459bb64c7caea67584dd4cf41d6da380381a250f80da213a38636235f2d0477a70f7f280568b6
|
7
|
+
data.tar.gz: fe9a45483916c0c9812a5c28c325d0c119cbb351e135f07dcf5404faa9e4a54e8adc4a857df59dc4847db76ee97151deb9489907aa2a242c91acb8ba4563f565
|
data/.travis.yml
CHANGED
@@ -1,4 +1,9 @@
|
|
1
1
|
language: ruby
|
2
|
+
|
3
|
+
gemfile:
|
4
|
+
- Gemfile
|
5
|
+
- Gemfile.1.8.7
|
6
|
+
|
2
7
|
rvm:
|
3
8
|
- 1.8.7
|
4
9
|
- 1.9.2
|
@@ -12,13 +17,35 @@ rvm:
|
|
12
17
|
- rbx-19mode
|
13
18
|
|
14
19
|
matrix:
|
15
|
-
|
20
|
+
exclude:
|
21
|
+
- rvm: 1.8.7
|
22
|
+
gemfile: Gemfile
|
23
|
+
- rvm: 1.9.2
|
24
|
+
gemfile: Gemfile.1.8.7
|
25
|
+
- rvm: 1.9.3
|
26
|
+
gemfile: Gemfile.1.8.7
|
27
|
+
- rvm: 2.0.0
|
28
|
+
gemfile: Gemfile.1.8.7
|
29
|
+
- rvm: ruby-head
|
30
|
+
gemfile: Gemfile.1.8.7
|
31
|
+
- rvm: jruby-18mode
|
32
|
+
gemfile: Gemfile
|
33
|
+
- rvm: jruby-19mode
|
34
|
+
gemfile: Gemfile.1.8.7
|
35
|
+
- rvm: jruby-head
|
36
|
+
gemfile: Gemfile.1.8.7
|
16
37
|
- rvm: rbx-18mode
|
38
|
+
gemfile: Gemfile
|
17
39
|
- rvm: rbx-19mode
|
40
|
+
gemfile: Gemfile.1.8.7
|
41
|
+
|
42
|
+
allow_failures:
|
43
|
+
- rvm: ruby-head
|
18
44
|
|
19
45
|
# script: bundle exec rspec spec
|
20
46
|
env:
|
21
|
-
|
47
|
+
global:
|
48
|
+
- JAVA_OPTS="-server -Djruby.cext.enabled=false -Djruby.compile.invokedynamic=false"
|
22
49
|
|
23
50
|
notifications:
|
24
51
|
irc: "irc.freenode.net#rubberec2"
|
data/CHANGELOG
CHANGED
@@ -1,3 +1,25 @@
|
|
1
|
+
2.5.4 (09/26/2013)
|
2
|
+
|
3
|
+
Improvements:
|
4
|
+
============
|
5
|
+
|
6
|
+
[base] Upgdate AWS region options <9857010>
|
7
|
+
[base] Upgrade ruby-build to 20130923 <5c053cb>
|
8
|
+
[core] Far more efficient multi-port IPTables rules <1b13728, e15eb86>
|
9
|
+
[core] Handle new platforms, such as Mac, more gracefully <74d5831>
|
10
|
+
[redis] Upgraded redis from 2.6.13 to 2.6.16 <b18a89f>
|
11
|
+
[web_tools] Handle more redirect scenarios for proxied services <c73bcce>
|
12
|
+
|
13
|
+
Bug Fixes:
|
14
|
+
=========
|
15
|
+
|
16
|
+
[core] Fixed fail-fast behavior with nohup on AWS operations <cc1e299>
|
17
|
+
[core] Wait up until 2 minutes for EC2 tag creation <3b6819a>
|
18
|
+
[core] Set AWS region options for S3 <3bd20cd>
|
19
|
+
[passenger_nginx] Removed conflicting passenger_min_instances configuration <cd7b006>
|
20
|
+
[redis] Fixed redis download link <8a2a47d>
|
21
|
+
|
22
|
+
|
1
23
|
2.5.3 (07/11/2013)
|
2
24
|
|
3
25
|
Improvements:
|
@@ -12,7 +34,7 @@ Bug Fixes:
|
|
12
34
|
=========
|
13
35
|
|
14
36
|
[core] Allow the Vagrant plugin to interact with the local ruby installation when RVM is used. <98a061a>
|
15
|
-
[core] Make sure we note the
|
37
|
+
[core] Make sure we note the Vagrant provider was used in the instance file. <d1573fe>
|
16
38
|
|
17
39
|
|
18
40
|
2.5.2 (06/13/2013)
|
data/Gemfile
CHANGED
data/Gemfile.1.8.7
ADDED
data/lib/rubber/cloud/aws.rb
CHANGED
@@ -26,6 +26,8 @@ module Rubber
|
|
26
26
|
|
27
27
|
compute_credentials[:provider] = 'AWS' # We need to set the provider after the SimpleDB init because it fails if the provider value is specified.
|
28
28
|
|
29
|
+
storage_credentials[:region] = env.region
|
30
|
+
|
29
31
|
env['compute_credentials'] = compute_credentials
|
30
32
|
env['storage_credentials'] = storage_credentials
|
31
33
|
super(env, capistrano)
|
@@ -75,7 +77,7 @@ module Rubber
|
|
75
77
|
def after_create_instance(instance)
|
76
78
|
# Sometimes tag creation will fail, indicating that the instance doesn't exist yet even though it does. It seems to
|
77
79
|
# be a propagation delay on Amazon's end, so the best we can do is wait and try again.
|
78
|
-
Rubber::Util.retry_on_failure(StandardError, :retry_sleep =>
|
80
|
+
Rubber::Util.retry_on_failure(StandardError, :retry_sleep => 1, :retry_count => 120) do
|
79
81
|
Rubber::Tag::update_instance_tags(instance.name)
|
80
82
|
end
|
81
83
|
end
|
@@ -83,7 +85,7 @@ module Rubber
|
|
83
85
|
def after_refresh_instance(instance)
|
84
86
|
# Sometimes tag creation will fail, indicating that the instance doesn't exist yet even though it does. It seems to
|
85
87
|
# be a propagation delay on Amazon's end, so the best we can do is wait and try again.
|
86
|
-
Rubber::Util.retry_on_failure(StandardError, :retry_sleep =>
|
88
|
+
Rubber::Util.retry_on_failure(StandardError, :retry_sleep => 1, :retry_count => 120) do
|
87
89
|
Rubber::Tag::update_instance_tags(instance.name)
|
88
90
|
end
|
89
91
|
end
|
@@ -135,14 +137,17 @@ module Rubber
|
|
135
137
|
export RUBYLIB=/usr/lib/site_ruby/
|
136
138
|
unset RUBYOPT
|
137
139
|
nohup ec2-bundle-vol --batch -d /mnt -k #{ec2_pk_dest} -c #{ec2_cert_dest} -u #{env.account} -p #{image_name} -r #{arch} &> /tmp/ec2-bundle-vol.log &
|
140
|
+
bg_pid=$!
|
138
141
|
sleep 1
|
139
142
|
|
140
143
|
echo "Creating image from instance volume..."
|
141
|
-
while
|
142
|
-
if ! ps ax | grep -q "[e]c2-bundle-vol"; then exit; fi
|
144
|
+
while kill -0 $bg_pid &> /dev/null; do
|
143
145
|
echo -n .
|
144
146
|
sleep 5
|
145
147
|
done
|
148
|
+
|
149
|
+
# this returns exit code even if pid has already died, and thus triggers fail fast shell error
|
150
|
+
wait $bg_pid
|
146
151
|
CMD
|
147
152
|
|
148
153
|
capistrano.sudo_script "register_bundle", <<-CMD
|
data/lib/rubber/cloud/base.rb
CHANGED
@@ -132,9 +132,11 @@ module Rubber
|
|
132
132
|
source_ips = rule['source_ips']
|
133
133
|
|
134
134
|
if protocol && from_port && to_port && source_ips
|
135
|
-
|
136
|
-
|
137
|
-
script << "\niptables -A INPUT -p #{protocol} --dport #{
|
135
|
+
source_ips.each do |source|
|
136
|
+
if from_port != to_port
|
137
|
+
script << "\niptables -A INPUT -p #{protocol} --dport #{from_port}:#{to_port} --source #{source} -j ACCEPT -m comment --comment '#{group_name}'"
|
138
|
+
else
|
139
|
+
script << "\niptables -A INPUT -p #{protocol} --dport #{to_port} --source #{source} -j ACCEPT -m comment --comment '#{group_name}'"
|
138
140
|
end
|
139
141
|
end
|
140
142
|
end
|
data/lib/rubber/cloud/generic.rb
CHANGED
@@ -13,6 +13,7 @@ module Rubber
|
|
13
13
|
:aws_access_key_id => env.cloud_providers.aws.access_key,
|
14
14
|
:aws_secret_access_key => env.cloud_providers.aws.secret_access_key
|
15
15
|
}
|
16
|
+
storage_credentials[:region] = env.cloud_providers.aws.region
|
16
17
|
|
17
18
|
env['storage_credentials'] = storage_credentials
|
18
19
|
end
|
data/lib/rubber/instance.rb
CHANGED
@@ -13,7 +13,7 @@ namespace :rubber do
|
|
13
13
|
# Disable connecting to any Windows instance.
|
14
14
|
alias :original_task :task
|
15
15
|
def task(name, options={}, &block)
|
16
|
-
original_task(name, options.merge(:
|
16
|
+
original_task(name, options.merge(:only => { :platform => 'linux' }), &block)
|
17
17
|
end
|
18
18
|
|
19
19
|
# advise capistrano's task method so that tasks for non-existent roles don't
|
@@ -26,7 +26,7 @@ namespace :rubber do
|
|
26
26
|
alias :required_task :task
|
27
27
|
def task(name, options={}, &block)
|
28
28
|
# Disable connecting to any Windows instance.
|
29
|
-
required_task(name, options.merge(:
|
29
|
+
required_task(name, options.merge(:only => { :platform => 'linux' })) do
|
30
30
|
# define empty roles for the case when a task has a role that we don't define anywhere
|
31
31
|
unless options[:roles].respond_to?(:call)
|
32
32
|
[*options[:roles]].each do |r|
|
@@ -57,7 +57,7 @@ namespace :rubber do
|
|
57
57
|
# use a pty so we don't get "stdin: is not a tty" error output
|
58
58
|
default_run_options[:pty] = true if default_run_options[:pty].nil?
|
59
59
|
default_run_options[:shell] = "/bin/bash -l" if default_run_options[:shell].nil?
|
60
|
-
default_run_options[:
|
60
|
+
default_run_options[:only] ||= { :platform => 'linux' }
|
61
61
|
|
62
62
|
set :cloud, Rubber.cloud(self)
|
63
63
|
|
@@ -367,7 +367,7 @@ namespace :rubber do
|
|
367
367
|
instance_item.root_device_type = instance[:root_device_type]
|
368
368
|
rubber_instances.save()
|
369
369
|
|
370
|
-
|
370
|
+
if instance_item.linux?
|
371
371
|
# weird cap/netssh bug, sometimes just hangs forever on initial connect, so force a timeout
|
372
372
|
begin
|
373
373
|
Timeout::timeout(30) do
|
@@ -215,14 +215,17 @@ namespace :rubber do
|
|
215
215
|
# zero out parition for performance (see amazon DevGuide)
|
216
216
|
echo "Zeroing out raid partitions to improve performance, this may take a while"
|
217
217
|
#{zero_script}
|
218
|
+
bg_pid=$!
|
218
219
|
sleep 1
|
219
220
|
|
220
221
|
echo "Waiting for partitions to zero out"
|
221
|
-
while
|
222
|
-
if ! ps ax | grep -q "[d]d.*/dev/zero"; then exit; fi
|
222
|
+
while kill -0 $bg_pid &> /dev/null; do
|
223
223
|
echo -n .
|
224
224
|
sleep 5
|
225
225
|
done
|
226
|
+
|
227
|
+
# this returns exit code even if pid has already died, and thus triggers fail fast shell error
|
228
|
+
wait $bg_pid
|
226
229
|
ENDSCRIPT
|
227
230
|
end
|
228
231
|
_zero_partitions
|
data/lib/rubber/version.rb
CHANGED
@@ -117,6 +117,6 @@ NameVirtualHost *:<%= rubber_env.web_tools_ssl_port %>
|
|
117
117
|
</Location>
|
118
118
|
|
119
119
|
# Fix any redirects occurring on the backend server, since we're communicating with it via HTTP.
|
120
|
-
Header edit Location ^
|
120
|
+
Header edit Location ^https?://([^/]+)/ https://<%= host_and_port %>/
|
121
121
|
</VirtualHost>
|
122
122
|
<% end %>
|
@@ -41,13 +41,16 @@ namespace :rubber do
|
|
41
41
|
echo "Compiling and installing ruby $desired_ruby_ver. This may take a while ..."
|
42
42
|
|
43
43
|
nohup ruby-build #{rubber_env.ruby_version} #{rubber_env.ruby_path} &> /tmp/install_ruby.log &
|
44
|
+
bg_pid=$!
|
44
45
|
sleep 1
|
45
46
|
|
46
|
-
while
|
47
|
-
if ! ps ax | grep -q "[r]uby-build"; then break; fi
|
47
|
+
while kill -0 $bg_pid &> /dev/null; do
|
48
48
|
echo -n .
|
49
49
|
sleep 5
|
50
50
|
done
|
51
|
+
|
52
|
+
# this returns exit code even if pid has already died, and thus triggers fail fast shell error
|
53
|
+
wait $bg_pid
|
51
54
|
|
52
55
|
echo "export RUBYOPT=rubygems\nexport PATH=#{rubber_env.ruby_path}/bin:$PATH" > /etc/profile.d/ruby.sh
|
53
56
|
echo "--- \ngem: --no-ri --no-rdoc" > /etc/gemrc
|
@@ -11,10 +11,12 @@
|
|
11
11
|
packages: [build-essential, git-core, subversion, curl, autoconf, bison, ruby, zlib1g-dev, libssl-dev, libreadline6-dev, libxml2-dev, libyaml-dev]
|
12
12
|
|
13
13
|
# REQUIRED: The version of ruby-build to use for building ruby.
|
14
|
-
|
14
|
+
# It must be one of the versions from https://github.com/sstephenson/ruby-build/blob/master/CHANGELOG.md
|
15
|
+
ruby_build_version: 20130923
|
15
16
|
|
16
17
|
# REQUIRED: Set to the version string for the ruby version you wish to use
|
17
|
-
# Run "ruby-build --definitions" to see the list of possible options
|
18
|
+
# Run "ruby-build --definitions" to see the list of possible options or look through the list of
|
19
|
+
# recipes online at https://github.com/sstephenson/ruby-build/tree/master/share/ruby-build
|
18
20
|
ruby_version: 1.9.3-p448
|
19
21
|
|
20
22
|
# REQUIRED: Installation path for ruby.
|
@@ -43,16 +43,19 @@ domain: foo.com
|
|
43
43
|
cloud_providers:
|
44
44
|
aws:
|
45
45
|
# REQUIRED The AWS region that you want to use.
|
46
|
-
#
|
46
|
+
#
|
47
47
|
# Options include
|
48
|
-
#
|
49
|
-
#
|
50
|
-
# ap-
|
51
|
-
#
|
52
|
-
#
|
48
|
+
# ap-northeast-1 # Asia Pacific (Tokyo) Region
|
49
|
+
# ap-southeast-1 # Asia Pacific (Singapore) Region
|
50
|
+
# ap-southeast-2 # Asia Pacific (Sydney) Region
|
51
|
+
# eu-west-1 # EU (Ireland) Region
|
52
|
+
# sa-east-1 # South America (Sao Paulo) Region
|
53
|
+
# us-east-1 # US East (Northern Virginia) Region
|
54
|
+
# us-west-1 # US West (Northern California) Region
|
55
|
+
# us-west-2 # US West (Oregon) Region
|
53
56
|
#
|
54
57
|
region: us-east-1
|
55
|
-
|
58
|
+
|
56
59
|
# REQUIRED The amazon keys and account ID (digits only, no dashes) used to access the AWS API
|
57
60
|
#
|
58
61
|
access_key: XXX
|
@@ -129,7 +132,7 @@ cloud_providers:
|
|
129
132
|
cloud_provider: aws
|
130
133
|
|
131
134
|
# OPTIONAL: Where to store instance data.
|
132
|
-
#
|
135
|
+
#
|
133
136
|
# Allowed forms are:
|
134
137
|
# filesystem: "file:#{Rubber.root}/config/rubber/instance-#{Rubber.env}.yml"
|
135
138
|
# cloud storage (s3): "storage:#{cloud_providers.aws.backup_bucket}/RubberInstances_#{app_name}/instance-#{Rubber.env}.yml"
|
@@ -10,7 +10,7 @@ namespace :rubber do
|
|
10
10
|
rubber.sudo_script 'install_redis', <<-ENDSCRIPT
|
11
11
|
if ! redis-server --version | grep "#{rubber_env.redis_server_version}" &> /dev/null; then
|
12
12
|
# Fetch the sources.
|
13
|
-
wget http://redis.
|
13
|
+
wget http://download.redis.io/releases/redis-#{rubber_env.redis_server_version}.tar.gz
|
14
14
|
tar -zxf redis-#{rubber_env.redis_server_version}.tar.gz
|
15
15
|
|
16
16
|
# Build the binaries.
|
@@ -36,19 +36,19 @@ namespace :rubber do
|
|
36
36
|
task :bootstrap, :roles => :redis do
|
37
37
|
exists = capture("echo $(ls #{rubber_env.redis_db_dir} 2> /dev/null)")
|
38
38
|
if exists.strip.size == 0
|
39
|
-
|
39
|
+
|
40
40
|
rubber.sudo_script 'bootstrap_redis', <<-ENDSCRIPT
|
41
41
|
mkdir -p #{rubber_env.redis_db_dir}
|
42
42
|
chown -R redis:redis #{rubber_env.redis_db_dir}
|
43
43
|
ENDSCRIPT
|
44
|
-
|
44
|
+
|
45
45
|
# After everything installed on machines, we need the source tree
|
46
46
|
# on hosts in order to run rubber:config for bootstrapping the db
|
47
47
|
rubber.update_code_for_bootstrap
|
48
|
-
|
48
|
+
|
49
49
|
# Gen just the conf for redis.
|
50
50
|
rubber.run_config(:file => "role/redis/", :force => true, :deploy_path => release_path)
|
51
|
-
|
51
|
+
|
52
52
|
restart
|
53
53
|
end
|
54
54
|
end
|
data/test/cloud/aws_test.rb
CHANGED
@@ -28,6 +28,23 @@ class AwsTest < Test::Unit::TestCase
|
|
28
28
|
should "create instance" do
|
29
29
|
assert @cloud.create_instance('', '', '', '', '', '')
|
30
30
|
end
|
31
|
+
end
|
31
32
|
|
33
|
+
context "aws with alternative region" do
|
34
|
+
|
35
|
+
setup do
|
36
|
+
@region = "ap-southeast-2"
|
37
|
+
env = {'access_key' => "XXX", 'secret_access_key' => "YYY", 'region' => @region}
|
38
|
+
env = Rubber::Configuration::Environment::BoundEnv.new(env, nil, nil, nil)
|
39
|
+
@cloud = Rubber::Cloud::Aws.new(env, nil)
|
40
|
+
end
|
41
|
+
|
42
|
+
should "set region on compute provider" do
|
43
|
+
assert_equal @cloud.compute_provider.region, @region
|
44
|
+
end
|
45
|
+
|
46
|
+
should "set region on storage provider" do
|
47
|
+
assert_equal @cloud.storage_provider.region, @region
|
48
|
+
end
|
32
49
|
end
|
33
50
|
end
|
@@ -19,12 +19,12 @@ class DigitalOceanTest < Test::Unit::TestCase
|
|
19
19
|
|
20
20
|
context '#create_instance' do
|
21
21
|
should 'create instance' do
|
22
|
-
assert @cloud.create_instance('my-instance', 'Ubuntu 12.04 x64
|
22
|
+
assert @cloud.create_instance('my-instance', 'Ubuntu 12.04 x64', '512MB', [], '', 'New York 1')
|
23
23
|
end
|
24
24
|
|
25
25
|
should 'raise error if invalid region' do
|
26
26
|
begin
|
27
|
-
@cloud.create_instance('my-instance', 'Ubuntu 12.04 x64
|
27
|
+
@cloud.create_instance('my-instance', 'Ubuntu 12.04 x64', '512MB', [], '', 'Mars 1')
|
28
28
|
rescue => e
|
29
29
|
assert_equal 'Invalid region for DigitalOcean: Mars 1', e.message
|
30
30
|
else
|
@@ -34,7 +34,7 @@ class DigitalOceanTest < Test::Unit::TestCase
|
|
34
34
|
|
35
35
|
should 'raise an error if invalid image type' do
|
36
36
|
begin
|
37
|
-
@cloud.create_instance('my-instance', 'Ubuntu 12.04 x64
|
37
|
+
@cloud.create_instance('my-instance', 'Ubuntu 12.04 x64', 'm1.small', [], '', 'New York 1')
|
38
38
|
rescue => e
|
39
39
|
assert_equal 'Invalid image type for DigitalOcean: m1.small', e.message
|
40
40
|
else
|
@@ -58,7 +58,7 @@ class DigitalOceanTest < Test::Unit::TestCase
|
|
58
58
|
env = Rubber::Configuration::Environment::BoundEnv.new(env, nil, nil, nil)
|
59
59
|
cloud = Rubber::Cloud::DigitalOcean.new(env, nil)
|
60
60
|
|
61
|
-
cloud.create_instance('my-instance', 'Ubuntu 12.04 x64
|
61
|
+
cloud.create_instance('my-instance', 'Ubuntu 12.04 x64', '512MB', [], '', 'New York 1')
|
62
62
|
rescue => e
|
63
63
|
assert_equal 'Missing key_file for DigitalOcean', e.message
|
64
64
|
else
|
@@ -67,4 +67,19 @@ class DigitalOceanTest < Test::Unit::TestCase
|
|
67
67
|
end
|
68
68
|
end
|
69
69
|
end
|
70
|
+
|
71
|
+
context 'digital ocean with aws storage' do
|
72
|
+
|
73
|
+
setup do
|
74
|
+
env = {'client_key' => "XXX", 'api_key' => "YYY", 'region' => 'New York 1', 'key_file' => "#{File.dirname(__FILE__)}/../fixtures/basic/test.pem"}
|
75
|
+
@aws_region = "ap-southeast-2"
|
76
|
+
env['cloud_providers'] = {'aws' => {'access_key' => "XXX", 'secret_access_key' => "YYY", 'region' => @aws_region}}
|
77
|
+
env = Rubber::Configuration::Environment::BoundEnv.new(env, nil, nil, nil)
|
78
|
+
@cloud = Rubber::Cloud::DigitalOcean.new(env, nil)
|
79
|
+
end
|
80
|
+
|
81
|
+
should 'set the region on the aws storage provider' do
|
82
|
+
assert_equal @cloud.storage_provider.region, @aws_region
|
83
|
+
end
|
84
|
+
end
|
70
85
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require File.expand_path(File.join(__FILE__, '../..', 'test_helper'))
|
2
|
+
require 'rubber/cloud/generic'
|
3
|
+
require 'ostruct'
|
4
|
+
|
5
|
+
class GenericTest < Test::Unit::TestCase
|
6
|
+
|
7
|
+
context "generic with aws storage with alternative region" do
|
8
|
+
|
9
|
+
setup do
|
10
|
+
@aws_region = "ap-southeast-2"
|
11
|
+
env = {'cloud_providers' => {'aws' => {'access_key' => "XXX", 'secret_access_key' => "YYY", 'region' => @aws_region}}}
|
12
|
+
env = Rubber::Configuration::Environment::BoundEnv.new(env, nil, nil, nil)
|
13
|
+
@cloud = Rubber::Cloud::Generic.new(env, nil)
|
14
|
+
end
|
15
|
+
|
16
|
+
should "set region on storage provider" do
|
17
|
+
assert_equal @cloud.storage_provider.region, @aws_region
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/test/dns/zerigo_test.rb
CHANGED
@@ -3,6 +3,11 @@ require 'rubber/dns/zerigo'
|
|
3
3
|
|
4
4
|
class ZerigoTest < Test::Unit::TestCase
|
5
5
|
|
6
|
+
# This entire test is disabled because the Zerigo mocks in fog are utterly broken, currently. The following fix
|
7
|
+
# needs to be made upstream before these will run again:
|
8
|
+
# https://github.com/fog/fog/commit/6f8c0e61201f1f46d568f8e1ebbc1aa0e2c65d32
|
9
|
+
|
10
|
+
=begin
|
6
11
|
context "fog zerigo dns" do
|
7
12
|
|
8
13
|
setup do
|
@@ -182,5 +187,5 @@ class ZerigoTest < Test::Unit::TestCase
|
|
182
187
|
end
|
183
188
|
|
184
189
|
end
|
185
|
-
|
190
|
+
=end
|
186
191
|
end
|
data/test/encryption_test.rb
CHANGED
@@ -18,8 +18,6 @@ class EncryptionTest < Test::Unit::TestCase
|
|
18
18
|
end
|
19
19
|
|
20
20
|
should "encrypt data" do
|
21
|
-
pend('This is not yet working on JRuby.') if defined?(JRUBY_VERSION)
|
22
|
-
|
23
21
|
data = "hello"
|
24
22
|
e = encrypt(data, @key)
|
25
23
|
assert e
|
@@ -28,8 +26,6 @@ class EncryptionTest < Test::Unit::TestCase
|
|
28
26
|
end
|
29
27
|
|
30
28
|
should "decrypt data" do
|
31
|
-
pend('This is not yet working on JRuby.') if defined?(JRUBY_VERSION)
|
32
|
-
|
33
29
|
data = "hello"
|
34
30
|
e = encrypt(data, @key)
|
35
31
|
d = decrypt(e, @key)
|
@@ -37,16 +33,12 @@ class EncryptionTest < Test::Unit::TestCase
|
|
37
33
|
end
|
38
34
|
|
39
35
|
should "pretty print large data" do
|
40
|
-
pend('This is not yet working on JRuby.') if defined?(JRUBY_VERSION)
|
41
|
-
|
42
36
|
data = "foo" * 100
|
43
37
|
e = encrypt(data, @key)
|
44
38
|
assert e =~ /\n/
|
45
39
|
end
|
46
40
|
|
47
41
|
should "roundtrip large data" do
|
48
|
-
pend('This is not yet working on JRuby.') if defined?(JRUBY_VERSION)
|
49
|
-
|
50
42
|
data = "foo" * 100
|
51
43
|
e = encrypt(data, @key)
|
52
44
|
d = decrypt(e, @key)
|
data/test/environment_test.rb
CHANGED
@@ -140,8 +140,6 @@ class EnvironmentTest < Test::Unit::TestCase
|
|
140
140
|
end
|
141
141
|
|
142
142
|
def test_obfuscated_secret_env
|
143
|
-
pend('This is not yet working on JRuby.') if defined?(JRUBY_VERSION)
|
144
|
-
|
145
143
|
env = Rubber::Configuration::Environment.new("#{File.dirname(__FILE__)}/fixtures/basic", 'test')
|
146
144
|
e = env.bind()
|
147
145
|
assert_nil e['rubber_secret'], 'env should not have secret set'
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.5.
|
4
|
+
version: 2.5.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Conway
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-09-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: capistrano
|
@@ -198,6 +198,7 @@ files:
|
|
198
198
|
- .travis.yml
|
199
199
|
- CHANGELOG
|
200
200
|
- Gemfile
|
201
|
+
- Gemfile.1.8.7
|
201
202
|
- LICENSE
|
202
203
|
- README.md
|
203
204
|
- Rakefile
|
@@ -629,6 +630,7 @@ files:
|
|
629
630
|
- test/cloud/digital_ocean_test.rb
|
630
631
|
- test/cloud/fog_storage_test.rb
|
631
632
|
- test/cloud/fog_test.rb
|
633
|
+
- test/cloud/generic_test.rb
|
632
634
|
- test/command_test.rb
|
633
635
|
- test/commands/cron_test.rb
|
634
636
|
- test/commands/util_test.rb
|
@@ -685,7 +687,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
685
687
|
version: '0'
|
686
688
|
requirements: []
|
687
689
|
rubyforge_project: rubber
|
688
|
-
rubygems_version: 2.0.
|
690
|
+
rubygems_version: 2.0.3
|
689
691
|
signing_key:
|
690
692
|
specification_version: 4
|
691
693
|
summary: A capistrano plugin for managing multi-instance deployments to the cloud
|