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
         |