rubber 2.5.3 → 2.5.4
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.
- 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
|