bosh-cloudfoundry 0.3.0 → 0.4.0
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 +4 -0
 - data/Gemfile +4 -2
 - data/Guardfile +1 -1
 - data/README.md +15 -25
 - data/bosh-cloudfoundry.gemspec +0 -3
 - data/lib/bosh-cloudfoundry/bosh_release_manager.rb +1 -1
 - data/lib/bosh-cloudfoundry/config_options.rb +4 -0
 - data/lib/bosh-cloudfoundry/version.rb +1 -1
 - data/lib/bosh/cli/commands/cf.rb +22 -73
 - data/spec/unit/cf_command_spec.rb +57 -29
 - metadata +4 -52
 
    
        data/ChangeLog.md
    CHANGED
    
    
    
        data/Gemfile
    CHANGED
    
    
    
        data/Guardfile
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # A sample Guardfile
         
     | 
| 
       2 
2 
     | 
    
         
             
            # More info at https://github.com/guard/guard#readme
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
     | 
    
         
            -
            guard 'rspec' 
     | 
| 
      
 4 
     | 
    
         
            +
            guard 'rspec' do
         
     | 
| 
       5 
5 
     | 
    
         
             
              watch(%r{^spec/.+_spec\.rb$})
         
     | 
| 
       6 
6 
     | 
    
         
             
              watch(%r{^lib/bosh/cli/commands/cf.rb$})    { |m| "spec/unit/cf_command_spec.rb" }
         
     | 
| 
       7 
7 
     | 
    
         
             
              watch(%r{^lib/bosh-cloudfoundry/(.+)\.rb$}) { |m| "spec/unit/#{m[1]}_spec.rb" }
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -1,53 +1,42 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # Bosh::CloudFoundry
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            You want  
     | 
| 
      
 3 
     | 
    
         
            +
            You want Cloud Foundry? You can now create, scale, upgrade and patch one or more Cloud Foundry deployments using very simple, easy to learn and remember CLI commands.
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
            Currently supports AWS  
     | 
| 
      
 5 
     | 
    
         
            +
            Currently supports AWS and OpenStack only. vSphere and vCloud support will require someone to tell me that they really want it.
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
            ##  
     | 
| 
      
 7 
     | 
    
         
            +
            ## Zero to Cloud Foundry in a few hours
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
      
 9 
     | 
    
         
            +
            If you have an AWS or OpenStack account then you can deploy a running Cloud Foundry VM by following this very simple tutorial. It first uses the very powerful [bosh-bootstrap](https://github.com/StarkAndWayne/bosh-bootstrap) tool to deploy a BOSH, and then using this project (a plugin for the BOSH CLI) it will do everything necessary to deploy Cloud Foundry via your shiny new, empty BOSH.
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
      
 11 
     | 
    
         
            +
            **You should not need to know anything before running this tutorial.** If you do this tutorial and you feel it was too complex or you needed to know something additional, please [create a ticket](https://github.com/StarkAndWayne/bosh-cloudfoundry/issues).
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         
             
            ```
         
     | 
| 
       14 
14 
     | 
    
         
             
            # on your laptop
         
     | 
| 
       15 
15 
     | 
    
         
             
            gem install bosh-bootstrap
         
     | 
| 
       16 
     | 
    
         
            -
            bosh-bootstrap deploy -- 
     | 
| 
      
 16 
     | 
    
         
            +
            bosh-bootstrap deploy --edge-deployer
         
     | 
| 
      
 17 
     | 
    
         
            +
            # prompts for AWS/OpenStack credentials
         
     | 
| 
      
 18 
     | 
    
         
            +
            # and some other fields that you can
         
     | 
| 
      
 19 
     | 
    
         
            +
            # just press Enter for.
         
     | 
| 
       17 
20 
     | 
    
         | 
| 
      
 21 
     | 
    
         
            +
            # SSH into inception VM
         
     | 
| 
       18 
22 
     | 
    
         
             
            bosh-bootstrap ssh
         
     | 
| 
       19 
23 
     | 
    
         | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
            # TODO - restore gem installation when rubygem security issue resolved
         
     | 
| 
       23 
     | 
    
         
            -
            # sudo gem install bosh-cloudfoundry
         
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
            cd /var/vcap/store/repos
         
     | 
| 
       26 
     | 
    
         
            -
            git clone git://github.com/StarkAndWayne/bosh-cloudfoundry.git
         
     | 
| 
       27 
     | 
    
         
            -
            cd bosh-cloudfoundry
         
     | 
| 
       28 
     | 
    
         
            -
            git checkout -b v0.3
         
     | 
| 
       29 
     | 
    
         
            -
            git pull origin v0.3
         
     | 
| 
       30 
     | 
    
         
            -
            rake install
         
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
      
 24 
     | 
    
         
            +
            sudo gem install bosh-cloudfoundry
         
     | 
| 
       32 
25 
     | 
    
         
             
            export TMPDIR=/var/vcap/store/tmp
         
     | 
| 
       33 
     | 
    
         
            -
            bosh cf  
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
            bosh cf prepare system production --release-name appcloud-dev
         
     | 
| 
      
 26 
     | 
    
         
            +
            bosh cf prepare system production
         
     | 
| 
       36 
27 
     | 
    
         
             
            # prompts for a DNS host for your CloudFoundry, such as mycompany.com
         
     | 
| 
       37 
28 
     | 
    
         
             
            # will generate a new IP address
         
     | 
| 
       38 
29 
     | 
    
         
             
            # now setup your DNS for *.mycompany.com => new IP address
         
     | 
| 
       39 
30 
     | 
    
         
             
            # the re-run:
         
     | 
| 
       40 
31 
     | 
    
         
             
            bosh cf prepare system production
         
     | 
| 
       41 
32 
     | 
    
         | 
| 
       42 
     | 
    
         
            -
            bosh  
     | 
| 
       43 
     | 
    
         
            -
            bosh cf merge gerrit 37/13137/4 84/13084/4 83/13583/1 09/13609/2
         
     | 
| 
       44 
     | 
    
         
            -
            bosh cf deploy
         
     | 
| 
      
 33 
     | 
    
         
            +
            bosh deploy
         
     | 
| 
       45 
34 
     | 
    
         | 
| 
       46 
35 
     | 
    
         
             
            # now we can grow our single VM deployment
         
     | 
| 
       47 
36 
     | 
    
         | 
| 
       48 
37 
     | 
    
         
             
            bosh cf change deas 1
         
     | 
| 
       49 
38 
     | 
    
         
             
            bosh cf add service postgresql
         
     | 
| 
       50 
     | 
    
         
            -
            bosh  
     | 
| 
      
 39 
     | 
    
         
            +
            bosh deploy
         
     | 
| 
       51 
40 
     | 
    
         
             
            ```
         
     | 
| 
       52 
41 
     | 
    
         | 
| 
       53 
42 
     | 
    
         
             
            Overtime, as you add more DEAs and other service nodes, your set of VMs might look like:
         
     | 
| 
         @@ -70,6 +59,7 @@ $ bosh vms 
     | 
|
| 
       70 
59 
     | 
    
         | 
| 
       71 
60 
     | 
    
         
             
            * Ruby 1.9
         
     | 
| 
       72 
61 
     | 
    
         
             
            * BOSH running on AWS (other CPIs coming)
         
     | 
| 
      
 62 
     | 
    
         
            +
            * Unix-based local system (Windows support for bosh-bootstrap is a priority)
         
     | 
| 
       73 
63 
     | 
    
         | 
| 
       74 
64 
     | 
    
         
             
            ## Usage
         
     | 
| 
       75 
65 
     | 
    
         | 
    
        data/bosh-cloudfoundry.gemspec
    CHANGED
    
    | 
         @@ -23,7 +23,4 @@ Gem::Specification.new do |gem| 
     | 
|
| 
       23 
23 
     | 
    
         
             
              gem.add_dependency "net-dns"
         
     | 
| 
       24 
24 
     | 
    
         
             
              gem.add_dependency "fog", ">= 1.8.0"
         
     | 
| 
       25 
25 
     | 
    
         
             
              gem.add_development_dependency "rspec"
         
     | 
| 
       26 
     | 
    
         
            -
              gem.add_development_dependency "ci_reporter"
         
     | 
| 
       27 
     | 
    
         
            -
              gem.add_development_dependency "debugger"
         
     | 
| 
       28 
     | 
    
         
            -
              gem.add_development_dependency "guard-rspec"
         
     | 
| 
       29 
26 
     | 
    
         
             
            end
         
     | 
| 
         @@ -77,7 +77,7 @@ module Bosh::CloudFoundry::BoshReleaseManager 
     | 
|
| 
       77 
77 
     | 
    
         
             
              def create_and_upload_dev_release(release_name=default_dev_release_name)
         
     | 
| 
       78 
78 
     | 
    
         
             
                chdir(cf_release_dir) do
         
     | 
| 
       79 
79 
     | 
    
         
             
                  write_dev_config_file(release_name)
         
     | 
| 
       80 
     | 
    
         
            -
                  sh "bosh create release --with-tarball --force"
         
     | 
| 
      
 80 
     | 
    
         
            +
                  sh "bosh -n --color create release --with-tarball --force"
         
     | 
| 
       81 
81 
     | 
    
         
             
                  sh "bosh -n --color upload release"
         
     | 
| 
       82 
82 
     | 
    
         
             
                end
         
     | 
| 
       83 
83 
     | 
    
         
             
                @bosh_releases = nil # reset cache
         
     | 
    
        data/lib/bosh/cli/commands/cf.rb
    CHANGED
    
    | 
         @@ -39,6 +39,10 @@ module Bosh::Cli::Command 
     | 
|
| 
       39 
39 
     | 
    
         
             
                option "--admin-emails email1,email2", Array, "Admin email accounts in created CloudFoundry"
         
     | 
| 
       40 
40 
     | 
    
         
             
                option "--skip-validations", "Skip all validations"
         
     | 
| 
       41 
41 
     | 
    
         
             
                def prepare_system(name=nil)
         
     | 
| 
      
 42 
     | 
    
         
            +
                  # FUTURE remove this when cf-release has a final release with
         
     | 
| 
      
 43 
     | 
    
         
            +
                  # all patches in https://github.com/StarkAndWayne/bosh-cloudfoundry/issues/42
         
     | 
| 
      
 44 
     | 
    
         
            +
                  options[:dev] = true
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
       42 
46 
     | 
    
         
             
                  setup_system_dir(name)
         
     | 
| 
       43 
47 
     | 
    
         
             
                  confirm_or_prompt_all_defaults
         
     | 
| 
       44 
48 
     | 
    
         
             
                  confirm_or_prompt_for_system_requirements
         
     | 
| 
         @@ -111,24 +115,30 @@ module Bosh::Cli::Command 
     | 
|
| 
       111 
115 
     | 
    
         | 
| 
       112 
116 
     | 
    
         
             
                usage "cf upload stemcell"
         
     | 
| 
       113 
117 
     | 
    
         
             
                desc "download/create stemcell & upload to BOSH"
         
     | 
| 
       114 
     | 
    
         
            -
                option "-- 
     | 
| 
      
 118 
     | 
    
         
            +
                # option "--stable", "Use latest stemcell; possibly not tagged stable"
         
     | 
| 
      
 119 
     | 
    
         
            +
                option "--latest", "Use latest stemcell; possibly not tagged stable [default]"
         
     | 
| 
       115 
120 
     | 
    
         
             
                option "--custom", "Create custom stemcell from BOSH git source"
         
     | 
| 
       116 
121 
     | 
    
         
             
                def upload_stemcell
         
     | 
| 
       117 
     | 
    
         
            -
                  stemcell_type = "stable"
         
     | 
| 
       118 
     | 
    
         
            -
                  stemcell_type = "latest" if options[:latest]
         
     | 
| 
      
 122 
     | 
    
         
            +
                  stemcell_type = "stable" if options[:stable]
         
     | 
| 
       119 
123 
     | 
    
         
             
                  stemcell_type = "custom" if options[:custom]
         
     | 
| 
      
 124 
     | 
    
         
            +
                  stemcell_type ||= "latest"
         
     | 
| 
       120 
125 
     | 
    
         
             
                  create_or_download_stemcell_then_upload(stemcell_type)
         
     | 
| 
       121 
126 
     | 
    
         
             
                end
         
     | 
| 
       122 
127 
     | 
    
         | 
| 
       123 
128 
     | 
    
         
             
                usage "cf upload release"
         
     | 
| 
       124 
129 
     | 
    
         
             
                desc "fetch & upload latest public cloudfoundry release to BOSH"
         
     | 
| 
       125 
     | 
    
         
            -
                option "--dev", "Create development release from very latest cf-release commits"
         
     | 
| 
      
 130 
     | 
    
         
            +
                # option "--dev", "Create development release from very latest cf-release commits & specific patches"
         
     | 
| 
      
 131 
     | 
    
         
            +
                option "--final", "Upload latest final release from very latest cf-release commits"
         
     | 
| 
       126 
132 
     | 
    
         
             
                def upload_release
         
     | 
| 
       127 
133 
     | 
    
         
             
                  clone_or_update_cf_release
         
     | 
| 
       128 
     | 
    
         
            -
                  if options.delete(: 
     | 
| 
       129 
     | 
    
         
            -
                    create_and_upload_dev_release
         
     | 
| 
       130 
     | 
    
         
            -
                  else
         
     | 
| 
      
 134 
     | 
    
         
            +
                  if options.delete(:final)
         
     | 
| 
       131 
135 
     | 
    
         
             
                    upload_final_release
         
     | 
| 
      
 136 
     | 
    
         
            +
                  else
         
     | 
| 
      
 137 
     | 
    
         
            +
                    # FUTURE once all patches from https://github.com/StarkAndWayne/bosh-cloudfoundry/issues/42
         
     | 
| 
      
 138 
     | 
    
         
            +
                    # are merged into cf-release, then no more gerrit merging required
         
     | 
| 
      
 139 
     | 
    
         
            +
                    options[:dev] = true
         
     | 
| 
      
 140 
     | 
    
         
            +
                    merge_gerrit(*%w[37/13137/4 84/13084/4])
         
     | 
| 
      
 141 
     | 
    
         
            +
                    # create_and_upload_dev_release
         
     | 
| 
       132 
142 
     | 
    
         
             
                  end
         
     | 
| 
       133 
143 
     | 
    
         
             
                end
         
     | 
| 
       134 
144 
     | 
    
         | 
| 
         @@ -153,7 +163,7 @@ module Bosh::Cli::Command 
     | 
|
| 
       153 
163 
     | 
    
         
             
                    end
         
     | 
| 
       154 
164 
     | 
    
         
             
                  end
         
     | 
| 
       155 
165 
     | 
    
         
             
                  apply_gerrit_patches
         
     | 
| 
       156 
     | 
    
         
            -
                  create_and_upload_dev_release
         
     | 
| 
      
 166 
     | 
    
         
            +
                  create_and_upload_dev_release(release_name)
         
     | 
| 
       157 
167 
     | 
    
         
             
                end
         
     | 
| 
       158 
168 
     | 
    
         | 
| 
       159 
169 
     | 
    
         
             
                usage "cf deploy"
         
     | 
| 
         @@ -249,32 +259,20 @@ module Bosh::Cli::Command 
     | 
|
| 
       249 
259 
     | 
    
         
             
                end
         
     | 
| 
       250 
260 
     | 
    
         | 
| 
       251 
261 
     | 
    
         
             
                # @return [String] label for the CPI being used by the target BOSH
         
     | 
| 
       252 
     | 
    
         
            -
                # * "aws" - AWS
         
     | 
| 
       253 
     | 
    
         
            -
                # 
         
     | 
| 
       254 
     | 
    
         
            -
                # Yet to be supported by bosh-cloudfoundry:
         
     | 
| 
       255 
     | 
    
         
            -
                # * "openstack" - VMWare vSphere
         
     | 
| 
       256 
     | 
    
         
            -
                # * "vsphere" - VMWare vSphere
         
     | 
| 
       257 
     | 
    
         
            -
                # * "vcloud" - VMWare vCloud
         
     | 
| 
       258 
262 
     | 
    
         
             
                def bosh_provider
         
     | 
| 
       259 
     | 
    
         
            -
                   
     | 
| 
       260 
     | 
    
         
            -
                    "aws"
         
     | 
| 
       261 
     | 
    
         
            -
                  elsif openstack?
         
     | 
| 
       262 
     | 
    
         
            -
                    "openstack"
         
     | 
| 
       263 
     | 
    
         
            -
                  else
         
     | 
| 
       264 
     | 
    
         
            -
                    err("Please implement cf.rb's bosh_provider for this IaaS")
         
     | 
| 
       265 
     | 
    
         
            -
                  end
         
     | 
| 
      
 263 
     | 
    
         
            +
                  system_config_setup? ? system_config.bosh_provider : bosh_cpi
         
     | 
| 
       266 
264 
     | 
    
         
             
                end
         
     | 
| 
       267 
265 
     | 
    
         | 
| 
       268 
266 
     | 
    
         
             
                # Deploying CloudFoundry to AWS?
         
     | 
| 
       269 
267 
     | 
    
         
             
                # Is the target BOSH's IaaS using the AWS CPI?
         
     | 
| 
       270 
268 
     | 
    
         
             
                def aws?
         
     | 
| 
       271 
     | 
    
         
            -
                   
     | 
| 
      
 269 
     | 
    
         
            +
                  bosh_provider == "aws"
         
     | 
| 
       272 
270 
     | 
    
         
             
                end
         
     | 
| 
       273 
271 
     | 
    
         | 
| 
       274 
272 
     | 
    
         
             
                # Deploying CloudFoundry to OpenStack?
         
     | 
| 
       275 
273 
     | 
    
         
             
                # Is the target BOSH's IaaS using the OpenStack CPI?
         
     | 
| 
       276 
274 
     | 
    
         
             
                def openstack?
         
     | 
| 
       277 
     | 
    
         
            -
                   
     | 
| 
      
 275 
     | 
    
         
            +
                  bosh_provider == "openstack"
         
     | 
| 
       278 
276 
     | 
    
         
             
                end
         
     | 
| 
       279 
277 
     | 
    
         | 
| 
       280 
278 
     | 
    
         
             
                # User is prompted for common values at the
         
     | 
| 
         @@ -550,7 +548,7 @@ module Bosh::Cli::Command 
     | 
|
| 
       550 
548 
     | 
    
         
             
                      err("Server flavor '#{flavor}' is not a valid OpenStack compute flavor")
         
     | 
| 
       551 
549 
     | 
    
         
             
                    end
         
     | 
| 
       552 
550 
     | 
    
         
             
                  else
         
     | 
| 
       553 
     | 
    
         
            -
                    err("Please implemenet cf.rb's validate_compute_flavor for  
     | 
| 
      
 551 
     | 
    
         
            +
                    err("Please implemenet cf.rb's validate_compute_flavor for #{bosh_provider.inspect}")
         
     | 
| 
       554 
552 
     | 
    
         
             
                  end
         
     | 
| 
       555 
553 
     | 
    
         
             
                end
         
     | 
| 
       556 
554 
     | 
    
         | 
| 
         @@ -569,31 +567,6 @@ module Bosh::Cli::Command 
     | 
|
| 
       569 
567 
     | 
    
         
             
                  renderer.perform
         
     | 
| 
       570 
568 
     | 
    
         
             
                end
         
     | 
| 
       571 
569 
     | 
    
         | 
| 
       572 
     | 
    
         
            -
                def generate_dea_servers(server_count, server_flavor)
         
     | 
| 
       573 
     | 
    
         
            -
                  director_uuid = "DIRECTOR_UUID"
         
     | 
| 
       574 
     | 
    
         
            -
                  release_name = "appcloud"
         
     | 
| 
       575 
     | 
    
         
            -
                  stemcell_version = "0.6.4"
         
     | 
| 
       576 
     | 
    
         
            -
                  if aws?
         
     | 
| 
       577 
     | 
    
         
            -
                    resource_pool_cloud_properties = "instance_type: #{server_flavor}"
         
     | 
| 
       578 
     | 
    
         
            -
                  else
         
     | 
| 
       579 
     | 
    
         
            -
                    err("Please implemenet cf.rb's generate_dea_servers for this IaaS")
         
     | 
| 
       580 
     | 
    
         
            -
                  end
         
     | 
| 
       581 
     | 
    
         
            -
                  dea_max_memory = 2048 # FIXME a value based on server flavor RAM?
         
     | 
| 
       582 
     | 
    
         
            -
                  nats_password = "mynats1234"
         
     | 
| 
       583 
     | 
    
         
            -
                  system_dir = File.join(base_systems_dir, system_name)
         
     | 
| 
       584 
     | 
    
         
            -
                  mkdir_p(system_dir)
         
     | 
| 
       585 
     | 
    
         
            -
                  chdir system_dir do
         
     | 
| 
       586 
     | 
    
         
            -
                    require 'bosh-cloudfoundry/generators/dea_generator'
         
     | 
| 
       587 
     | 
    
         
            -
                    Bosh::CloudFoundry::Generators::DeaGenerator.start([
         
     | 
| 
       588 
     | 
    
         
            -
                      system_name,
         
     | 
| 
       589 
     | 
    
         
            -
                      server_count, server_flavor,
         
     | 
| 
       590 
     | 
    
         
            -
                      director_uuid, release_name, stemcell_version,
         
     | 
| 
       591 
     | 
    
         
            -
                      resource_pool_cloud_properties,
         
     | 
| 
       592 
     | 
    
         
            -
                      dea_max_memory,
         
     | 
| 
       593 
     | 
    
         
            -
                      nats_password])
         
     | 
| 
       594 
     | 
    
         
            -
                  end
         
     | 
| 
       595 
     | 
    
         
            -
                end
         
     | 
| 
       596 
     | 
    
         
            -
             
     | 
| 
       597 
570 
     | 
    
         
             
                # Valdiate that +service_name+ is a known, supported service name
         
     | 
| 
       598 
571 
     | 
    
         
             
                def validate_service_name(service_name)
         
     | 
| 
       599 
572 
     | 
    
         
             
                  return true if skip_validations?
         
     | 
| 
         @@ -618,30 +591,6 @@ module Bosh::Cli::Command 
     | 
|
| 
       618 
591 
     | 
    
         
             
                  end
         
     | 
| 
       619 
592 
     | 
    
         
             
                end
         
     | 
| 
       620 
593 
     | 
    
         | 
| 
       621 
     | 
    
         
            -
                def generate_service_servers(service_name, server_count, server_flavor)
         
     | 
| 
       622 
     | 
    
         
            -
                  director_uuid = "DIRECTOR_UUID"
         
     | 
| 
       623 
     | 
    
         
            -
                  release_name = "appcloud"
         
     | 
| 
       624 
     | 
    
         
            -
                  stemcell_version = "0.6.4"
         
     | 
| 
       625 
     | 
    
         
            -
                  if aws?
         
     | 
| 
       626 
     | 
    
         
            -
                    resource_pool_cloud_properties = "instance_type: #{server_flavor}"
         
     | 
| 
       627 
     | 
    
         
            -
                  else
         
     | 
| 
       628 
     | 
    
         
            -
                    err("Please implemenet cf.rb's generate_service_servers for this IaaS")
         
     | 
| 
       629 
     | 
    
         
            -
                  end
         
     | 
| 
       630 
     | 
    
         
            -
                  persistent_disk = 16192
         
     | 
| 
       631 
     | 
    
         
            -
                  nats_password = "mynats1234"
         
     | 
| 
       632 
     | 
    
         
            -
                  system_dir = File.join(base_systems_dir, system_name)
         
     | 
| 
       633 
     | 
    
         
            -
                  mkdir_p(system_dir)
         
     | 
| 
       634 
     | 
    
         
            -
                  chdir system_dir do
         
     | 
| 
       635 
     | 
    
         
            -
                    require 'bosh-cloudfoundry/generators/service_generator'
         
     | 
| 
       636 
     | 
    
         
            -
                    Bosh::CloudFoundry::Generators::ServiceGenerator.start([
         
     | 
| 
       637 
     | 
    
         
            -
                      system_name,
         
     | 
| 
       638 
     | 
    
         
            -
                      service_name, server_count, server_flavor,
         
     | 
| 
       639 
     | 
    
         
            -
                      director_uuid, release_name, stemcell_version,
         
     | 
| 
       640 
     | 
    
         
            -
                      resource_pool_cloud_properties, persistent_disk,
         
     | 
| 
       641 
     | 
    
         
            -
                      nats_password])
         
     | 
| 
       642 
     | 
    
         
            -
                  end
         
     | 
| 
       643 
     | 
    
         
            -
                end
         
     | 
| 
       644 
     | 
    
         
            -
             
     | 
| 
       645 
594 
     | 
    
         
             
                def default_core_server_flavor
         
     | 
| 
       646 
595 
     | 
    
         
             
                  if aws?
         
     | 
| 
       647 
596 
     | 
    
         
             
                    "m1.large"
         
     | 
| 
         @@ -41,9 +41,14 @@ describe Bosh::Cli::Command::Base do 
     | 
|
| 
       41 
41 
     | 
    
         
             
                it "downloads stemcell and uploads it" do
         
     | 
| 
       42 
42 
     | 
    
         
             
                  @cmd.stub!(:bosh_target).and_return("http://9.8.7.6:25555")
         
     | 
| 
       43 
43 
     | 
    
         
             
                  @cmd.stub!(:bosh_target_uuid).and_return("DIRECTOR_UUID")
         
     | 
| 
      
 44 
     | 
    
         
            +
                  @cmd.stub!(:bosh_cpi).and_return("aws")
         
     | 
| 
       44 
45 
     | 
    
         
             
                  @cmd.should_receive(:`).
         
     | 
| 
       45 
     | 
    
         
            -
                    with("bosh public stemcells --tags aws 
     | 
| 
      
 46 
     | 
    
         
            +
                    with("bosh public stemcells --tags aws | grep ' bosh-stemcell-' | awk '{ print $2 }' | sort -r | head -n 1").
         
     | 
| 
       46 
47 
     | 
    
         
             
                    and_return("bosh-stemcell-aws-0.6.7.tgz")
         
     | 
| 
      
 48 
     | 
    
         
            +
                  # FIXME default to stable stemcells when 0.8.1 is marked stable
         
     | 
| 
      
 49 
     | 
    
         
            +
                  # @cmd.should_receive(:`).
         
     | 
| 
      
 50 
     | 
    
         
            +
                  #   with("bosh public stemcells --tags aws,stable | grep ' bosh-stemcell-' | awk '{ print $2 }' | sort -r | head -n 1").
         
     | 
| 
      
 51 
     | 
    
         
            +
                  #   and_return("bosh-stemcell-aws-0.6.7.tgz")
         
     | 
| 
       47 
52 
     | 
    
         
             
                  @cmd.should_receive(:sh).
         
     | 
| 
       48 
53 
     | 
    
         
             
                    with("bosh -n --color download public stemcell bosh-stemcell-aws-0.6.7.tgz")
         
     | 
| 
       49 
54 
     | 
    
         
             
                  @cmd.should_receive(:sh).
         
     | 
| 
         @@ -58,6 +63,7 @@ describe Bosh::Cli::Command::Base do 
     | 
|
| 
       58 
63 
     | 
    
         
             
                  mkdir_p(File.join(@repos_dir, "bosh", "agent"))
         
     | 
| 
       59 
64 
     | 
    
         
             
                  @cmd.stub!(:bosh_target).and_return("http://9.8.7.6:25555")
         
     | 
| 
       60 
65 
     | 
    
         
             
                  @cmd.stub!(:bosh_target_uuid).and_return("DIRECTOR_UUID")
         
     | 
| 
      
 66 
     | 
    
         
            +
                  @cmd.stub!(:bosh_cpi).and_return("aws")
         
     | 
| 
       61 
67 
     | 
    
         
             
                  @cmd.should_receive(:sh).with("git pull origin master")
         
     | 
| 
       62 
68 
     | 
    
         
             
                  @cmd.should_receive(:sh).with("bundle install --without development test")
         
     | 
| 
       63 
69 
     | 
    
         
             
                  @cmd.should_receive(:sh).with("sudo bundle exec rake stemcell:basic['aws']")
         
     | 
| 
         @@ -94,34 +100,38 @@ describe Bosh::Cli::Command::Base do 
     | 
|
| 
       94 
100 
     | 
    
         
             
                  @cmd.should_receive(:`).with("tail -n 1 releases/index.yml | awk '{print $2}'").
         
     | 
| 
       95 
101 
     | 
    
         
             
                    and_return("126")
         
     | 
| 
       96 
102 
     | 
    
         
             
                  @cmd.should_receive(:sh).with("bosh -n --color upload release releases/appcloud-126.yml")
         
     | 
| 
      
 103 
     | 
    
         
            +
                  @cmd.add_option(:final, true)
         
     | 
| 
       97 
104 
     | 
    
         
             
                  @cmd.upload_release
         
     | 
| 
       98 
105 
     | 
    
         
             
                end
         
     | 
| 
       99 
106 
     | 
    
         | 
| 
       100 
     | 
    
         
            -
                it "updates/creates/uploads development/edge cf-release"  
     | 
| 
       101 
     | 
    
         
            -
             
     | 
| 
       102 
     | 
    
         
            -
             
     | 
| 
       103 
     | 
    
         
            -
             
     | 
| 
       104 
     | 
    
         
            -
             
     | 
| 
       105 
     | 
    
         
            -
             
     | 
| 
       106 
     | 
    
         
            -
             
     | 
| 
       107 
     | 
    
         
            -
             
     | 
| 
       108 
     | 
    
         
            -
             
     | 
| 
       109 
     | 
    
         
            -
                   
     | 
| 
       110 
     | 
    
         
            -
             
     | 
| 
       111 
     | 
    
         
            -
             
     | 
| 
       112 
     | 
    
         
            -
             
     | 
| 
       113 
     | 
    
         
            -
             
     | 
| 
       114 
     | 
    
         
            -
             
     | 
| 
       115 
     | 
    
         
            -
             
     | 
| 
       116 
     | 
    
         
            -
             
     | 
| 
       117 
     | 
    
         
            -
             
     | 
| 
       118 
     | 
    
         
            -
             
     | 
| 
       119 
     | 
    
         
            -
             
     | 
| 
       120 
     | 
    
         
            -
             
     | 
| 
       121 
     | 
    
         
            -
             
     | 
| 
       122 
     | 
    
         
            -
                 
     | 
| 
      
 107 
     | 
    
         
            +
                it "updates/creates/uploads development/edge cf-release (requires system setup)" 
         
     | 
| 
      
 108 
     | 
    
         
            +
                # TODO turn this into a unit test for the specific methods
         
     | 
| 
      
 109 
     | 
    
         
            +
                # do
         
     | 
| 
      
 110 
     | 
    
         
            +
                #   cf_release_dir = File.join(@releases_dir, "cf-release")
         
     | 
| 
      
 111 
     | 
    
         
            +
                #   FileUtils.mkdir_p(cf_release_dir)
         
     | 
| 
      
 112 
     | 
    
         
            +
                #   @cmd.common_config.cf_release_dir = cf_release_dir
         
     | 
| 
      
 113 
     | 
    
         
            +
                #   @cmd.add_option(:dev, true)
         
     | 
| 
      
 114 
     | 
    
         
            +
                # 
         
     | 
| 
      
 115 
     | 
    
         
            +
                #   @cmd.should_receive(:sh).with("git pull origin master")
         
     | 
| 
      
 116 
     | 
    
         
            +
                #   script = <<-BASH.gsub(/^      /, '')
         
     | 
| 
      
 117 
     | 
    
         
            +
                #   grep -rI "github.com" * .gitmodules | awk 'BEGIN {FS=":"} { print($1) }' | uniq while read file
         
     | 
| 
      
 118 
     | 
    
         
            +
                #   do
         
     | 
| 
      
 119 
     | 
    
         
            +
                #     echo "changing - $file"
         
     | 
| 
      
 120 
     | 
    
         
            +
                #     sed -i 's#git://github.com#https://github.com#g' $file
         
     | 
| 
      
 121 
     | 
    
         
            +
                #     sed -i 's#git@github.com:#https://github.com:#g' $file
         
     | 
| 
      
 122 
     | 
    
         
            +
                #   done
         
     | 
| 
      
 123 
     | 
    
         
            +
                #   BASH
         
     | 
| 
      
 124 
     | 
    
         
            +
                #   @cmd.should_receive(:sh).with("sed -i 's#git@github.com:#https://github.com/#g' .gitmodules")
         
     | 
| 
      
 125 
     | 
    
         
            +
                #   @cmd.should_receive(:sh).with("sed -i 's#git://github.com#https://github.com#g' .gitmodules")
         
     | 
| 
      
 126 
     | 
    
         
            +
                #   @cmd.should_receive(:sh).with("git submodule update --init --recursive")
         
     | 
| 
      
 127 
     | 
    
         
            +
                #   @cmd.should_receive(:write_dev_config_file).with("appcloud-dev")
         
     | 
| 
      
 128 
     | 
    
         
            +
                #   @cmd.should_receive(:sh).with("bosh create release --with-tarball --force")
         
     | 
| 
      
 129 
     | 
    
         
            +
                #   @cmd.should_receive(:sh).with("bosh -n --color upload release")
         
     | 
| 
      
 130 
     | 
    
         
            +
                #   @cmd.upload_release
         
     | 
| 
      
 131 
     | 
    
         
            +
                # end
         
     | 
| 
       123 
132 
     | 
    
         | 
| 
       124 
133 
     | 
    
         
             
                def generate_new_system(cmd = nil)
         
     | 
| 
      
 134 
     | 
    
         
            +
                  needs_initial_release_uploaded = true
         
     | 
| 
       125 
135 
     | 
    
         
             
                  cmd ||= begin
         
     | 
| 
       126 
136 
     | 
    
         
             
                    cmd = Bosh::Cli::Command::CloudFoundry.new(nil)
         
     | 
| 
       127 
137 
     | 
    
         
             
                    cmd.add_option(:non_interactive, true)
         
     | 
| 
         @@ -134,13 +144,22 @@ describe Bosh::Cli::Command::Base do 
     | 
|
| 
       134 
144 
     | 
    
         | 
| 
       135 
145 
     | 
    
         
             
                  cmd.stub!(:bosh_target).and_return("http://9.8.7.6:25555")
         
     | 
| 
       136 
146 
     | 
    
         
             
                  cmd.stub!(:bosh_target_uuid).and_return("DIRECTOR_UUID")
         
     | 
| 
      
 147 
     | 
    
         
            +
                  cmd.stub!(:bosh_cpi).and_return("aws")
         
     | 
| 
       137 
148 
     | 
    
         
             
                  cmd.should_receive(:generate_common_password).and_return('c1oudc0wc1oudc0w')
         
     | 
| 
       138 
     | 
    
         
            -
                  cmd.should_receive(:bosh_releases).exactly(1).times.and_return([
         
     | 
| 
       139 
     | 
    
         
            -
                    {"name"=>"appcloud", "versions"=>["124", "126"], "in_use"=>[]},
         
     | 
| 
       140 
     | 
    
         
            -
                    {"name"=>"appcloud-dev", "versions"=>["124.1-dev", "126.1-dev"], "in_use"=>[]},
         
     | 
| 
       141 
     | 
    
         
            -
                  ])
         
     | 
| 
       142 
149 
     | 
    
         
             
                  cmd.should_receive(:validate_dns_a_record).with("api.mycompany.com", '1.2.3.4').and_return(true)
         
     | 
| 
       143 
150 
     | 
    
         
             
                  cmd.should_receive(:validate_dns_a_record).with("demoapp.mycompany.com", '1.2.3.4').and_return(true)
         
     | 
| 
      
 151 
     | 
    
         
            +
             
     | 
| 
      
 152 
     | 
    
         
            +
                  if needs_initial_release_uploaded
         
     | 
| 
      
 153 
     | 
    
         
            +
                    cmd.should_receive(:bosh_releases).exactly(1).times.and_return([])
         
     | 
| 
      
 154 
     | 
    
         
            +
                    cmd.should_receive(:clone_or_update_cf_release)
         
     | 
| 
      
 155 
     | 
    
         
            +
                    cmd.should_receive(:merge_gerrit).with(*%w[37/13137/4 84/13084/4 09/13609/2])
         
     | 
| 
      
 156 
     | 
    
         
            +
                  else
         
     | 
| 
      
 157 
     | 
    
         
            +
                    cmd.should_receive(:bosh_releases).exactly(1).times.and_return([
         
     | 
| 
      
 158 
     | 
    
         
            +
                      {"name"=>"appcloud", "versions"=>["124", "126"], "in_use"=>[]},
         
     | 
| 
      
 159 
     | 
    
         
            +
                      {"name"=>"appcloud-dev", "versions"=>["124.1-dev", "126.1-dev"], "in_use"=>[]},
         
     | 
| 
      
 160 
     | 
    
         
            +
                    ])
         
     | 
| 
      
 161 
     | 
    
         
            +
                  end
         
     | 
| 
      
 162 
     | 
    
         
            +
             
     | 
| 
       144 
163 
     | 
    
         
             
                  cmd.should_receive(:bosh_stemcell_versions).exactly(4).times.and_return(['0.6.4'])
         
     | 
| 
       145 
164 
     | 
    
         
             
                  cmd.should_receive(:render_system)
         
     | 
| 
       146 
165 
     | 
    
         | 
| 
         @@ -155,7 +174,7 @@ describe Bosh::Cli::Command::Base do 
     | 
|
| 
       155 
174 
     | 
    
         | 
| 
       156 
175 
     | 
    
         
             
                  cmd.add_option(:core_ip, '1.2.3.4')
         
     | 
| 
       157 
176 
     | 
    
         
             
                  cmd.add_option(:root_dns, 'mycompany.com')
         
     | 
| 
       158 
     | 
    
         
            -
                  cmd.add_option(:cf_release, 'appcloud')
         
     | 
| 
      
 177 
     | 
    
         
            +
                  # cmd.add_option(:cf_release, 'appcloud')
         
     | 
| 
       159 
178 
     | 
    
         
             
                  cmd.add_option(:core_server_flavor, 'm1.large')
         
     | 
| 
       160 
179 
     | 
    
         
             
                  cmd.add_option(:admin_emails, ['drnic@starkandwayne.com'])
         
     | 
| 
       161 
180 
     | 
    
         | 
| 
         @@ -174,6 +193,12 @@ describe Bosh::Cli::Command::Base do 
     | 
|
| 
       174 
193 
     | 
    
         
             
                  File.basename(@cmd.system).should == "production"
         
     | 
| 
       175 
194 
     | 
    
         
             
                end
         
     | 
| 
       176 
195 
     | 
    
         | 
| 
      
 196 
     | 
    
         
            +
                it "temporarily uploads latest stemcell & patched cf-release by default" do
         
     | 
| 
      
 197 
     | 
    
         
            +
                  generate_new_system(@cmd)
         
     | 
| 
      
 198 
     | 
    
         
            +
                  File.basename(@cmd.system).should == "production"
         
     | 
| 
      
 199 
     | 
    
         
            +
                  @cmd.system_config.release_name.should == "appcloud-dev"
         
     | 
| 
      
 200 
     | 
    
         
            +
                end
         
     | 
| 
      
 201 
     | 
    
         
            +
             
     | 
| 
       177 
202 
     | 
    
         
             
                it "new system has common random password" do
         
     | 
| 
       178 
203 
     | 
    
         
             
                  generate_new_system(@cmd)
         
     | 
| 
       179 
204 
     | 
    
         
             
                  @cmd.system_config.common_password.should == "c1oudc0wc1oudc0w"
         
     | 
| 
         @@ -184,6 +209,7 @@ describe Bosh::Cli::Command::Base do 
     | 
|
| 
       184 
209 
     | 
    
         | 
| 
       185 
210 
     | 
    
         
             
                  @cmd.should_receive(:render_system)
         
     | 
| 
       186 
211 
     | 
    
         | 
| 
      
 212 
     | 
    
         
            +
                  @cmd.stub!(:bosh_cpi).and_return("aws")
         
     | 
| 
       187 
213 
     | 
    
         
             
                  @cmd.stub!(:bosh_target).and_return("http://9.8.7.6:25555")
         
     | 
| 
       188 
214 
     | 
    
         
             
                  @cmd.add_option(:flavor, 'm1.xlarge')
         
     | 
| 
       189 
215 
     | 
    
         
             
                  @cmd.change_deas(3)
         
     | 
| 
         @@ -204,6 +230,7 @@ describe Bosh::Cli::Command::Base do 
     | 
|
| 
       204 
230 
     | 
    
         | 
| 
       205 
231 
     | 
    
         
             
                  @cmd.should_receive(:render_system)
         
     | 
| 
       206 
232 
     | 
    
         | 
| 
      
 233 
     | 
    
         
            +
                  @cmd.stub!(:bosh_cpi).and_return("aws")
         
     | 
| 
       207 
234 
     | 
    
         
             
                  @cmd.stub!(:bosh_target).and_return("http://9.8.7.6:25555")
         
     | 
| 
       208 
235 
     | 
    
         
             
                  @cmd.add_option(:flavor, 'm1.large')
         
     | 
| 
       209 
236 
     | 
    
         
             
                  @cmd.add_service_node("postgresql", 4)
         
     | 
| 
         @@ -219,6 +246,7 @@ describe Bosh::Cli::Command::Base do 
     | 
|
| 
       219 
246 
     | 
    
         | 
| 
       220 
247 
     | 
    
         
             
                  @cmd.should_receive(:render_system)
         
     | 
| 
       221 
248 
     | 
    
         | 
| 
      
 249 
     | 
    
         
            +
                  @cmd.stub!(:bosh_cpi).and_return("aws")
         
     | 
| 
       222 
250 
     | 
    
         
             
                  @cmd.stub!(:bosh_target).and_return("http://9.8.7.6:25555")
         
     | 
| 
       223 
251 
     | 
    
         
             
                  @cmd.add_option(:flavor, 'm1.large')
         
     | 
| 
       224 
252 
     | 
    
         
             
                  @cmd.add_service_node("redis", 2)
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: bosh-cloudfoundry
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.4.0
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors:
         
     | 
| 
         @@ -9,7 +9,7 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2013-02- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2013-02-07 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: bosh_cli
         
     | 
| 
         @@ -91,54 +91,6 @@ dependencies: 
     | 
|
| 
       91 
91 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
       92 
92 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       93 
93 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       94 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       95 
     | 
    
         
            -
              name: ci_reporter
         
     | 
| 
       96 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       97 
     | 
    
         
            -
                none: false
         
     | 
| 
       98 
     | 
    
         
            -
                requirements:
         
     | 
| 
       99 
     | 
    
         
            -
                - - ! '>='
         
     | 
| 
       100 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       101 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       102 
     | 
    
         
            -
              type: :development
         
     | 
| 
       103 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       104 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       105 
     | 
    
         
            -
                none: false
         
     | 
| 
       106 
     | 
    
         
            -
                requirements:
         
     | 
| 
       107 
     | 
    
         
            -
                - - ! '>='
         
     | 
| 
       108 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       109 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       110 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       111 
     | 
    
         
            -
              name: debugger
         
     | 
| 
       112 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       113 
     | 
    
         
            -
                none: false
         
     | 
| 
       114 
     | 
    
         
            -
                requirements:
         
     | 
| 
       115 
     | 
    
         
            -
                - - ! '>='
         
     | 
| 
       116 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       117 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       118 
     | 
    
         
            -
              type: :development
         
     | 
| 
       119 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       120 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       121 
     | 
    
         
            -
                none: false
         
     | 
| 
       122 
     | 
    
         
            -
                requirements:
         
     | 
| 
       123 
     | 
    
         
            -
                - - ! '>='
         
     | 
| 
       124 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       125 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       126 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       127 
     | 
    
         
            -
              name: guard-rspec
         
     | 
| 
       128 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       129 
     | 
    
         
            -
                none: false
         
     | 
| 
       130 
     | 
    
         
            -
                requirements:
         
     | 
| 
       131 
     | 
    
         
            -
                - - ! '>='
         
     | 
| 
       132 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       133 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       134 
     | 
    
         
            -
              type: :development
         
     | 
| 
       135 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       136 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       137 
     | 
    
         
            -
                none: false
         
     | 
| 
       138 
     | 
    
         
            -
                requirements:
         
     | 
| 
       139 
     | 
    
         
            -
                - - ! '>='
         
     | 
| 
       140 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       141 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       142 
94 
     | 
    
         
             
            description: Create and manage your Cloud Foundry deployments
         
     | 
| 
       143 
95 
     | 
    
         
             
            email:
         
     | 
| 
       144 
96 
     | 
    
         
             
            - drnicwilliams@gmail.com
         
     | 
| 
         @@ -209,7 +161,7 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       209 
161 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       210 
162 
     | 
    
         
             
                  segments:
         
     | 
| 
       211 
163 
     | 
    
         
             
                  - 0
         
     | 
| 
       212 
     | 
    
         
            -
                  hash: - 
     | 
| 
      
 164 
     | 
    
         
            +
                  hash: -44016591154602000
         
     | 
| 
       213 
165 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       214 
166 
     | 
    
         
             
              none: false
         
     | 
| 
       215 
167 
     | 
    
         
             
              requirements:
         
     | 
| 
         @@ -218,7 +170,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       218 
170 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       219 
171 
     | 
    
         
             
                  segments:
         
     | 
| 
       220 
172 
     | 
    
         
             
                  - 0
         
     | 
| 
       221 
     | 
    
         
            -
                  hash: - 
     | 
| 
      
 173 
     | 
    
         
            +
                  hash: -44016591154602000
         
     | 
| 
       222 
174 
     | 
    
         
             
            requirements: []
         
     | 
| 
       223 
175 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       224 
176 
     | 
    
         
             
            rubygems_version: 1.8.24
         
     |