bosh_cli 1.0.rc1 → 1.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/lib/cli/commands/deployment.rb +23 -3
 - data/lib/cli/commands/release.rb +4 -3
 - data/lib/cli/commands/task.rb +4 -4
 - data/lib/cli/director.rb +18 -5
 - data/lib/cli/packaging_helper.rb +14 -11
 - data/lib/cli/release.rb +7 -1
 - data/lib/cli/runner.rb +2 -2
 - data/lib/cli/version.rb +1 -1
 - data/lib/cli/versions_index.rb +6 -7
 - data/spec/assets/config/bad-providers/config/final.yml +5 -0
 - data/spec/assets/config/bad-providers/config/private.yml +4 -0
 - data/spec/assets/config/local/config/final.yml +5 -0
 - data/spec/assets/config/local/config/private.yml +1 -0
 - data/spec/spec_helper.rb +8 -0
 - data/spec/unit/director_spec.rb +26 -1
 - data/spec/unit/job_builder_spec.rb +3 -2
 - data/spec/unit/package_builder_spec.rb +11 -5
 - data/spec/unit/release_builder_spec.rb +6 -2
 - data/spec/unit/release_spec.rb +18 -0
 - data/spec/unit/versions_index_spec.rb +28 -16
 - metadata +17 -6
 
| 
         @@ -195,9 +195,29 @@ module Bosh::Cli::Command 
     | 
|
| 
       195 
195 
     | 
    
         
             
                  err("No deployments") if deployments.empty?
         
     | 
| 
       196 
196 
     | 
    
         | 
| 
       197 
197 
     | 
    
         
             
                  deployments_table = table do |t|
         
     | 
| 
       198 
     | 
    
         
            -
                    t.headings = %w(Name)
         
     | 
| 
       199 
     | 
    
         
            -
                    deployments.each do | 
     | 
| 
       200 
     | 
    
         
            -
                       
     | 
| 
      
 198 
     | 
    
         
            +
                    t.headings = %w(Name Release(s) Stemcell(s))
         
     | 
| 
      
 199 
     | 
    
         
            +
                    deployments.each do |d|
         
     | 
| 
      
 200 
     | 
    
         
            +
                      deployment = director.get_deployment(d["name"])
         
     | 
| 
      
 201 
     | 
    
         
            +
             
     | 
| 
      
 202 
     | 
    
         
            +
                      row = if (deployment["manifest"])
         
     | 
| 
      
 203 
     | 
    
         
            +
                        manifest = YAML.load(deployment["manifest"])
         
     | 
| 
      
 204 
     | 
    
         
            +
             
     | 
| 
      
 205 
     | 
    
         
            +
                        stemcells = manifest["resource_pools"].map { |rp|
         
     | 
| 
      
 206 
     | 
    
         
            +
                          rp["stemcell"].values_at("name", "version").join("/")
         
     | 
| 
      
 207 
     | 
    
         
            +
                        }.sort.uniq
         
     | 
| 
      
 208 
     | 
    
         
            +
             
     | 
| 
      
 209 
     | 
    
         
            +
                        releases = manifest["releases"] || [manifest["release"]]
         
     | 
| 
      
 210 
     | 
    
         
            +
                        releases = releases.map { |rl|
         
     | 
| 
      
 211 
     | 
    
         
            +
                          rl.values_at("name", "version").join("/")
         
     | 
| 
      
 212 
     | 
    
         
            +
                        }.sort
         
     | 
| 
      
 213 
     | 
    
         
            +
             
     | 
| 
      
 214 
     | 
    
         
            +
                        [manifest["name"], releases.join("\n"), stemcells.join("\n")]
         
     | 
| 
      
 215 
     | 
    
         
            +
                      else
         
     | 
| 
      
 216 
     | 
    
         
            +
                        [d["name"], "n/a", "n/a"]
         
     | 
| 
      
 217 
     | 
    
         
            +
                      end
         
     | 
| 
      
 218 
     | 
    
         
            +
             
     | 
| 
      
 219 
     | 
    
         
            +
                      t.add_row(row)
         
     | 
| 
      
 220 
     | 
    
         
            +
                      t.add_separator unless d == deployments.last
         
     | 
| 
       201 
221 
     | 
    
         
             
                    end
         
     | 
| 
       202 
222 
     | 
    
         
             
                  end
         
     | 
| 
       203 
223 
     | 
    
         | 
    
        data/lib/cli/commands/release.rb
    CHANGED
    
    | 
         @@ -152,9 +152,9 @@ module Bosh::Cli::Command 
     | 
|
| 
       152 
152 
     | 
    
         
             
                  releases_table = table do |t|
         
     | 
| 
       153 
153 
     | 
    
         
             
                    t.headings = "Name", "Versions"
         
     | 
| 
       154 
154 
     | 
    
         
             
                    releases.each do |r|
         
     | 
| 
       155 
     | 
    
         
            -
                      versions = r["versions"].sort  
     | 
| 
      
 155 
     | 
    
         
            +
                      versions = r["versions"].sort { |v1, v2|
         
     | 
| 
       156 
156 
     | 
    
         
             
                        version_cmp(v1, v2)
         
     | 
| 
       157 
     | 
    
         
            -
                       
     | 
| 
      
 157 
     | 
    
         
            +
                      }.map { |v| ((r["in_use"] || []).include?(v)) ? "#{v}*" : v }
         
     | 
| 
       158 
158 
     | 
    
         | 
| 
       159 
159 
     | 
    
         
             
                      t << [r["name"], versions.join(", ")]
         
     | 
| 
       160 
160 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -162,6 +162,7 @@ module Bosh::Cli::Command 
     | 
|
| 
       162 
162 
     | 
    
         | 
| 
       163 
163 
     | 
    
         
             
                  nl
         
     | 
| 
       164 
164 
     | 
    
         
             
                  say(releases_table)
         
     | 
| 
      
 165 
     | 
    
         
            +
                  say("(*) Currently deployed") if releases_table.to_s =~ /\*/
         
     | 
| 
       165 
166 
     | 
    
         
             
                  nl
         
     | 
| 
       166 
167 
     | 
    
         
             
                  say("Releases total: %d" % releases.size)
         
     | 
| 
       167 
168 
     | 
    
         
             
                end
         
     | 
| 
         @@ -521,4 +522,4 @@ module Bosh::Cli::Command 
     | 
|
| 
       521 
522 
     | 
    
         
             
                  exit(1) unless confirmed?
         
     | 
| 
       522 
523 
     | 
    
         
             
                end
         
     | 
| 
       523 
524 
     | 
    
         
             
              end
         
     | 
| 
       524 
     | 
    
         
            -
            end
         
     | 
| 
      
 525 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/cli/commands/task.rb
    CHANGED
    
    | 
         @@ -10,7 +10,7 @@ module Bosh::Cli::Command 
     | 
|
| 
       10 
10 
     | 
    
         
             
                desc   "Show task status and start tracking its output"
         
     | 
| 
       11 
11 
     | 
    
         
             
                option "--no-cache", "Don't cache output locally"
         
     | 
| 
       12 
12 
     | 
    
         
             
                option "--event", "Track event log"
         
     | 
| 
       13 
     | 
    
         
            -
                option "-- 
     | 
| 
      
 13 
     | 
    
         
            +
                option "--cpi", "Track CPI log"
         
     | 
| 
       14 
14 
     | 
    
         
             
                option "--debug", "Track debug log"
         
     | 
| 
       15 
15 
     | 
    
         
             
                option "--result", "Track result log"
         
     | 
| 
       16 
16 
     | 
    
         
             
                option "--raw", "Show raw log"
         
     | 
| 
         @@ -23,8 +23,8 @@ module Bosh::Cli::Command 
     | 
|
| 
       23 
23 
     | 
    
         | 
| 
       24 
24 
     | 
    
         
             
                  log_type = "event"
         
     | 
| 
       25 
25 
     | 
    
         
             
                  n_types = 0
         
     | 
| 
       26 
     | 
    
         
            -
                  if options[: 
     | 
| 
       27 
     | 
    
         
            -
                    log_type = " 
     | 
| 
      
 26 
     | 
    
         
            +
                  if options[:cpi]
         
     | 
| 
      
 27 
     | 
    
         
            +
                    log_type = "cpi"
         
     | 
| 
       28 
28 
     | 
    
         
             
                    n_types += 1
         
     | 
| 
       29 
29 
     | 
    
         
             
                  end
         
     | 
| 
       30 
30 
     | 
    
         | 
| 
         @@ -137,4 +137,4 @@ module Bosh::Cli::Command 
     | 
|
| 
       137 
137 
     | 
    
         
             
                  use_filter ? 1 : 2
         
     | 
| 
       138 
138 
     | 
    
         
             
                end
         
     | 
| 
       139 
139 
     | 
    
         
             
              end
         
     | 
| 
       140 
     | 
    
         
            -
            end
         
     | 
| 
      
 140 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/cli/director.rb
    CHANGED
    
    | 
         @@ -18,7 +18,10 @@ module Bosh 
     | 
|
| 
       18 
18 
     | 
    
         
             
                  # @return [String]
         
     | 
| 
       19 
19 
     | 
    
         
             
                  attr_accessor :password
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
       21 
     | 
    
         
            -
                   
     | 
| 
      
 21 
     | 
    
         
            +
                  # Options can include:
         
     | 
| 
      
 22 
     | 
    
         
            +
                  # * :no_track => true - do not use +TaskTracker+ for long-running
         
     | 
| 
      
 23 
     | 
    
         
            +
                  #                       +request_and_track+ calls
         
     | 
| 
      
 24 
     | 
    
         
            +
                  def initialize(director_uri, user = nil, password = nil, options = {})
         
     | 
| 
       22 
25 
     | 
    
         
             
                    if director_uri.nil? || director_uri =~ /^\s*$/
         
     | 
| 
       23 
26 
     | 
    
         
             
                      raise DirectorMissing, "no director URI given"
         
     | 
| 
       24 
27 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -26,6 +29,7 @@ module Bosh 
     | 
|
| 
       26 
29 
     | 
    
         
             
                    @director_uri = director_uri
         
     | 
| 
       27 
30 
     | 
    
         
             
                    @user = user
         
     | 
| 
       28 
31 
     | 
    
         
             
                    @password = password
         
     | 
| 
      
 32 
     | 
    
         
            +
                    @track_tasks = !options.delete(:no_track)
         
     | 
| 
       29 
33 
     | 
    
         
             
                  end
         
     | 
| 
       30 
34 
     | 
    
         | 
| 
       31 
35 
     | 
    
         
             
                  def uuid
         
     | 
| 
         @@ -94,7 +98,6 @@ module Bosh 
     | 
|
| 
       94 
98 
     | 
    
         
             
                  end
         
     | 
| 
       95 
99 
     | 
    
         | 
| 
       96 
100 
     | 
    
         
             
                  def list_recent_tasks(count = 30, verbose = 1)
         
     | 
| 
       97 
     | 
    
         
            -
                    count = [count.to_i, 100].min
         
     | 
| 
       98 
101 
     | 
    
         
             
                    get_json("/tasks?limit=#{count}&verbose=#{verbose}")
         
     | 
| 
       99 
102 
     | 
    
         
             
                  end
         
     | 
| 
       100 
103 
     | 
    
         | 
| 
         @@ -407,7 +410,13 @@ module Bosh 
     | 
|
| 
       407 
410 
     | 
    
         
             
                    else
         
     | 
| 
       408 
411 
     | 
    
         
             
                      new_offset = nil
         
     | 
| 
       409 
412 
     | 
    
         
             
                    end
         
     | 
| 
       410 
     | 
    
         
            -
             
     | 
| 
      
 413 
     | 
    
         
            +
             
     | 
| 
      
 414 
     | 
    
         
            +
                    # backward compatible with renaming soap log to cpi log
         
     | 
| 
      
 415 
     | 
    
         
            +
                    if response_code == 204 && log_type == "cpi"
         
     | 
| 
      
 416 
     | 
    
         
            +
                      get_task_output(task_id, offset, "soap")
         
     | 
| 
      
 417 
     | 
    
         
            +
                    else
         
     | 
| 
      
 418 
     | 
    
         
            +
                      [body, new_offset]
         
     | 
| 
      
 419 
     | 
    
         
            +
                    end
         
     | 
| 
       411 
420 
     | 
    
         
             
                  end
         
     | 
| 
       412 
421 
     | 
    
         | 
| 
       413 
422 
     | 
    
         
             
                  def cancel_task(task_id)
         
     | 
| 
         @@ -443,8 +452,12 @@ module Bosh 
     | 
|
| 
       443 
452 
     | 
    
         
             
                    if redirected
         
     | 
| 
       444 
453 
     | 
    
         
             
                      if location =~ /\/tasks\/(\d+)\/?$/ # Looks like we received task URI
         
     | 
| 
       445 
454 
     | 
    
         
             
                        task_id = $1
         
     | 
| 
       446 
     | 
    
         
            -
                         
     | 
| 
       447 
     | 
    
         
            -
             
     | 
| 
      
 455 
     | 
    
         
            +
                        if @track_tasks
         
     | 
| 
      
 456 
     | 
    
         
            +
                          tracker = Bosh::Cli::TaskTracker.new(self, task_id, track_opts)
         
     | 
| 
      
 457 
     | 
    
         
            +
                          status = tracker.track
         
     | 
| 
      
 458 
     | 
    
         
            +
                        else
         
     | 
| 
      
 459 
     | 
    
         
            +
                          status = :running
         
     | 
| 
      
 460 
     | 
    
         
            +
                        end
         
     | 
| 
       448 
461 
     | 
    
         
             
                      else
         
     | 
| 
       449 
462 
     | 
    
         
             
                        status = :non_trackable
         
     | 
| 
       450 
463 
     | 
    
         
             
                      end
         
     | 
    
        data/lib/cli/packaging_helper.rb
    CHANGED
    
    | 
         @@ -93,9 +93,13 @@ module Bosh::Cli 
     | 
|
| 
       93 
93 
     | 
    
         | 
| 
       94 
94 
     | 
    
         
             
                  if need_fetch
         
     | 
| 
       95 
95 
     | 
    
         
             
                    say("Downloading `#{name} (#{version})'...".green)
         
     | 
| 
       96 
     | 
    
         
            -
                     
     | 
| 
       97 
     | 
    
         
            -
                     
     | 
| 
       98 
     | 
    
         
            -
             
     | 
| 
      
 96 
     | 
    
         
            +
                    tmp_file = File.open(File.join(Dir.mktmpdir, name), "w")
         
     | 
| 
      
 97 
     | 
    
         
            +
                    @blobstore.get(blobstore_id, tmp_file)
         
     | 
| 
      
 98 
     | 
    
         
            +
                    tmp_file.close
         
     | 
| 
      
 99 
     | 
    
         
            +
                    if Digest::SHA1.file(tmp_file.path).hexdigest == item["sha1"]
         
     | 
| 
      
 100 
     | 
    
         
            +
                      @tarball_path = @final_index.add_version(fingerprint,
         
     | 
| 
      
 101 
     | 
    
         
            +
                                                               item,
         
     | 
| 
      
 102 
     | 
    
         
            +
                                                               tmp_file.path)
         
     | 
| 
       99 
103 
     | 
    
         
             
                    else
         
     | 
| 
       100 
104 
     | 
    
         
             
                      err("`#{name}' (#{version}) is corrupted in blobstore " +
         
     | 
| 
       101 
105 
     | 
    
         
             
                              "(id=#{blobstore_id}), " +
         
     | 
| 
         @@ -167,14 +171,12 @@ module Bosh::Cli 
     | 
|
| 
       167 
171 
     | 
    
         
             
                    end
         
     | 
| 
       168 
172 
     | 
    
         
             
                  end
         
     | 
| 
       169 
173 
     | 
    
         | 
| 
       170 
     | 
    
         
            -
                  payload = tmp_file.read
         
     | 
| 
       171 
     | 
    
         
            -
             
     | 
| 
       172 
174 
     | 
    
         
             
                  item = {
         
     | 
| 
       173 
175 
     | 
    
         
             
                    "version" => version
         
     | 
| 
       174 
176 
     | 
    
         
             
                  }
         
     | 
| 
       175 
177 
     | 
    
         | 
| 
       176 
178 
     | 
    
         
             
                  unless dry_run?
         
     | 
| 
       177 
     | 
    
         
            -
                    @dev_index.add_version(fingerprint, item,  
     | 
| 
      
 179 
     | 
    
         
            +
                    @dev_index.add_version(fingerprint, item, tmp_file.path)
         
     | 
| 
       178 
180 
     | 
    
         
             
                    @tarball_path = @dev_index.filename(version)
         
     | 
| 
       179 
181 
     | 
    
         
             
                  end
         
     | 
| 
       180 
182 
     | 
    
         | 
| 
         @@ -189,16 +191,17 @@ module Bosh::Cli 
     | 
|
| 
       189 
191 
     | 
    
         | 
| 
       190 
192 
     | 
    
         
             
                  say("Uploading final version #{version}...")
         
     | 
| 
       191 
193 
     | 
    
         | 
| 
       192 
     | 
    
         
            -
                  if  
     | 
| 
       193 
     | 
    
         
            -
                    version = item["version"]
         
     | 
| 
      
 194 
     | 
    
         
            +
                  if item
         
     | 
| 
       194 
195 
     | 
    
         
             
                    say("This package has already been uploaded")
         
     | 
| 
       195 
196 
     | 
    
         
             
                    return
         
     | 
| 
       196 
197 
     | 
    
         
             
                  end
         
     | 
| 
       197 
198 
     | 
    
         | 
| 
       198 
199 
     | 
    
         
             
                  version = @final_index.latest_version.to_i + 1
         
     | 
| 
       199 
     | 
    
         
            -
                  payload = File.read(path)
         
     | 
| 
       200 
200 
     | 
    
         | 
| 
       201 
     | 
    
         
            -
                  blobstore_id =  
     | 
| 
      
 201 
     | 
    
         
            +
                  blobstore_id = nil
         
     | 
| 
      
 202 
     | 
    
         
            +
                  File.open(path, "r") do |f|
         
     | 
| 
      
 203 
     | 
    
         
            +
                    blobstore_id = @blobstore.create(f)
         
     | 
| 
      
 204 
     | 
    
         
            +
                  end
         
     | 
| 
       202 
205 
     | 
    
         | 
| 
       203 
206 
     | 
    
         
             
                  item = {
         
     | 
| 
       204 
207 
     | 
    
         
             
                    "blobstore_id" => blobstore_id,
         
     | 
| 
         @@ -206,7 +209,7 @@ module Bosh::Cli 
     | 
|
| 
       206 
209 
     | 
    
         
             
                  }
         
     | 
| 
       207 
210 
     | 
    
         | 
| 
       208 
211 
     | 
    
         
             
                  say("Uploaded, blobstore id #{blobstore_id}")
         
     | 
| 
       209 
     | 
    
         
            -
                  @final_index.add_version(fingerprint, item,  
     | 
| 
      
 212 
     | 
    
         
            +
                  @final_index.add_version(fingerprint, item, path)
         
     | 
| 
       210 
213 
     | 
    
         
             
                  @tarball_path = @final_index.filename(version)
         
     | 
| 
       211 
214 
     | 
    
         
             
                  @version = version
         
     | 
| 
       212 
215 
     | 
    
         
             
                  @promoted = true
         
     | 
    
        data/lib/cli/release.rb
    CHANGED
    
    | 
         @@ -135,7 +135,13 @@ module Bosh::Cli 
     | 
|
| 
       135 
135 
     | 
    
         
             
                # and merges it into the blobstore options.
         
     | 
| 
       136 
136 
     | 
    
         
             
                def merge_private_data(provider, options)
         
     | 
| 
       137 
137 
     | 
    
         
             
                  bs = @private_config["blobstore"]
         
     | 
| 
       138 
     | 
    
         
            -
                  options 
     | 
| 
      
 138 
     | 
    
         
            +
                  return options unless bs
         
     | 
| 
      
 139 
     | 
    
         
            +
             
     | 
| 
      
 140 
     | 
    
         
            +
                  if bs[provider].nil? && has_blobstore_secret?
         
     | 
| 
      
 141 
     | 
    
         
            +
                    err("blobstore private provider does not match final provider")
         
     | 
| 
      
 142 
     | 
    
         
            +
                  end
         
     | 
| 
      
 143 
     | 
    
         
            +
             
     | 
| 
      
 144 
     | 
    
         
            +
                  options.merge(bs[provider] ? bs[provider] : {})
         
     | 
| 
       139 
145 
     | 
    
         
             
                end
         
     | 
| 
       140 
146 
     | 
    
         | 
| 
       141 
147 
     | 
    
         
             
                # stores blobstore_secret as blobstore.atmos.secret
         
     | 
    
        data/lib/cli/runner.rb
    CHANGED
    
    | 
         @@ -38,8 +38,8 @@ module Bosh::Cli 
     | 
|
| 
       38 
38 
     | 
    
         
             
                  Config.interactive = !@options[:non_interactive]
         
     | 
| 
       39 
39 
     | 
    
         
             
                  Config.cache = Bosh::Cli::Cache.new(@options[:cache_dir])
         
     | 
| 
       40 
40 
     | 
    
         | 
| 
       41 
     | 
    
         
            -
                  build_parse_tree
         
     | 
| 
       42 
41 
     | 
    
         
             
                  load_plugins
         
     | 
| 
      
 42 
     | 
    
         
            +
                  build_parse_tree
         
     | 
| 
       43 
43 
     | 
    
         
             
                  add_shortcuts
         
     | 
| 
       44 
44 
     | 
    
         | 
| 
       45 
45 
     | 
    
         
             
                  if @args.empty?
         
     | 
| 
         @@ -252,4 +252,4 @@ module Bosh::Cli 
     | 
|
| 
       252 
252 
     | 
    
         
             
                  search_parse_tree(@parse_tree)
         
     | 
| 
       253 
253 
     | 
    
         
             
                end
         
     | 
| 
       254 
254 
     | 
    
         
             
              end
         
     | 
| 
       255 
     | 
    
         
            -
            end
         
     | 
| 
      
 255 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/cli/version.rb
    CHANGED
    
    
    
        data/lib/cli/versions_index.rb
    CHANGED
    
    | 
         @@ -54,7 +54,7 @@ module Bosh::Cli 
     | 
|
| 
       54 
54 
     | 
    
         
             
                  File.exists?(filename(version))
         
     | 
| 
       55 
55 
     | 
    
         
             
                end
         
     | 
| 
       56 
56 
     | 
    
         | 
| 
       57 
     | 
    
         
            -
                def add_version(fingerprint, item,  
     | 
| 
      
 57 
     | 
    
         
            +
                def add_version(fingerprint, item, tmp_file_path = nil)
         
     | 
| 
       58 
58 
     | 
    
         
             
                  version = item["version"]
         
     | 
| 
       59 
59 
     | 
    
         | 
| 
       60 
60 
     | 
    
         
             
                  if version.blank?
         
     | 
| 
         @@ -64,10 +64,8 @@ module Bosh::Cli 
     | 
|
| 
       64 
64 
     | 
    
         | 
| 
       65 
65 
     | 
    
         
             
                  create_directories
         
     | 
| 
       66 
66 
     | 
    
         | 
| 
       67 
     | 
    
         
            -
                  if  
     | 
| 
       68 
     | 
    
         
            -
                     
     | 
| 
       69 
     | 
    
         
            -
                      f.write(payload)
         
     | 
| 
       70 
     | 
    
         
            -
                    end
         
     | 
| 
      
 67 
     | 
    
         
            +
                  if tmp_file_path
         
     | 
| 
      
 68 
     | 
    
         
            +
                    FileUtils.cp(tmp_file_path, filename(version), :preserve => true)
         
     | 
| 
       71 
69 
     | 
    
         
             
                  end
         
     | 
| 
       72 
70 
     | 
    
         | 
| 
       73 
71 
     | 
    
         
             
                  @data["builds"].each_pair do |fp, build|
         
     | 
| 
         @@ -78,8 +76,9 @@ module Bosh::Cli 
     | 
|
| 
       78 
76 
     | 
    
         
             
                  end
         
     | 
| 
       79 
77 
     | 
    
         | 
| 
       80 
78 
     | 
    
         
             
                  @data["builds"][fingerprint] = item
         
     | 
| 
       81 
     | 
    
         
            -
                  if  
     | 
| 
       82 
     | 
    
         
            -
                     
     | 
| 
      
 79 
     | 
    
         
            +
                  if tmp_file_path
         
     | 
| 
      
 80 
     | 
    
         
            +
                    file_sha1 = Digest::SHA1.file(tmp_file_path).hexdigest
         
     | 
| 
      
 81 
     | 
    
         
            +
                    @data["builds"][fingerprint]["sha1"] = file_sha1
         
     | 
| 
       83 
82 
     | 
    
         
             
                  end
         
     | 
| 
       84 
83 
     | 
    
         | 
| 
       85 
84 
     | 
    
         
             
                  File.open(@index_file, "w") do |f|
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            --- {}
         
     | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    
    
        data/spec/unit/director_spec.rb
    CHANGED
    
    | 
         @@ -112,7 +112,7 @@ describe Bosh::Cli::Director do 
     | 
|
| 
       112 
112 
     | 
    
         
             
                  @director.list_recent_tasks
         
     | 
| 
       113 
113 
     | 
    
         | 
| 
       114 
114 
     | 
    
         
             
                  @director.should_receive(:get).
         
     | 
| 
       115 
     | 
    
         
            -
                    with("/tasks?limit= 
     | 
| 
      
 115 
     | 
    
         
            +
                    with("/tasks?limit=100000&verbose=1", "application/json").
         
     | 
| 
       116 
116 
     | 
    
         
             
                    and_return([200, JSON.generate([]), {}])
         
     | 
| 
       117 
117 
     | 
    
         
             
                  @director.list_recent_tasks(100000)
         
     | 
| 
       118 
118 
     | 
    
         | 
| 
         @@ -283,6 +283,31 @@ describe Bosh::Cli::Director do 
     | 
|
| 
       283 
283 
     | 
    
         
             
                    should == ["polling result", "502"]
         
     | 
| 
       284 
284 
     | 
    
         
             
                end
         
     | 
| 
       285 
285 
     | 
    
         | 
| 
      
 286 
     | 
    
         
            +
                describe "not tracking trackable requests" do
         
     | 
| 
      
 287 
     | 
    
         
            +
                  it "returns without tracking/polling task if request responded with a redirect to task URL" do
         
     | 
| 
      
 288 
     | 
    
         
            +
                    options = { :arg1 => 1, :arg2 => 2 }
         
     | 
| 
      
 289 
     | 
    
         
            +
             
     | 
| 
      
 290 
     | 
    
         
            +
                    @director = Bosh::Cli::Director.new(DUMMY_TARGET, "user", "pass", :no_track => true)
         
     | 
| 
      
 291 
     | 
    
         
            +
             
     | 
| 
      
 292 
     | 
    
         
            +
                    @director.should_receive(:request).
         
     | 
| 
      
 293 
     | 
    
         
            +
                      with(:get, "/stuff", "text/plain", "abc").
         
     | 
| 
      
 294 
     | 
    
         
            +
                      and_return([302, "body", { :location => "/tasks/502" }])
         
     | 
| 
      
 295 
     | 
    
         
            +
             
     | 
| 
      
 296 
     | 
    
         
            +
                    tracker = mock("tracker", :track => "polling result", :output => "foo")
         
     | 
| 
      
 297 
     | 
    
         
            +
             
     | 
| 
      
 298 
     | 
    
         
            +
                    Bosh::Cli::TaskTracker.should_receive(:new).
         
     | 
| 
      
 299 
     | 
    
         
            +
                      with(@director, "502", options).
         
     | 
| 
      
 300 
     | 
    
         
            +
                      never
         
     | 
| 
      
 301 
     | 
    
         
            +
             
     | 
| 
      
 302 
     | 
    
         
            +
                    @director.request_and_track(:get, "/stuff",
         
     | 
| 
      
 303 
     | 
    
         
            +
                                                {:content_type => "text/plain",
         
     | 
| 
      
 304 
     | 
    
         
            +
                                                 :payload => "abc",
         
     | 
| 
      
 305 
     | 
    
         
            +
                                                 :arg1 => 1, :arg2 => 2
         
     | 
| 
      
 306 
     | 
    
         
            +
                                                }).
         
     | 
| 
      
 307 
     | 
    
         
            +
                      should == [:running, "502"]
         
     | 
| 
      
 308 
     | 
    
         
            +
                  end
         
     | 
| 
      
 309 
     | 
    
         
            +
                end
         
     | 
| 
      
 310 
     | 
    
         
            +
             
     | 
| 
       286 
311 
     | 
    
         
             
                it "considers all responses but 302 a failure" do
         
     | 
| 
       287 
312 
     | 
    
         
             
                  [200, 404, 403].each do |code|
         
     | 
| 
       288 
313 
     | 
    
         
             
                    @director.should_receive(:request).
         
     | 
| 
         @@ -321,10 +321,11 @@ describe Bosh::Cli::JobBuilder do 
     | 
|
| 
       321 
321 
     | 
    
         | 
| 
       322 
322 
     | 
    
         
             
                final_versions.add_version(fingerprint,
         
     | 
| 
       323 
323 
     | 
    
         
             
                                           { "version" => "4", "blobstore_id" => "12321" },
         
     | 
| 
       324 
     | 
    
         
            -
                                           "payload")
         
     | 
| 
      
 324 
     | 
    
         
            +
                                           get_tmp_file_path("payload"))
         
     | 
| 
      
 325 
     | 
    
         
            +
             
     | 
| 
       325 
326 
     | 
    
         
             
                dev_versions.add_version(fingerprint,
         
     | 
| 
       326 
327 
     | 
    
         
             
                                         { "version" => "0.7-dev" },
         
     | 
| 
       327 
     | 
    
         
            -
                                         "dev_payload")
         
     | 
| 
      
 328 
     | 
    
         
            +
                                         get_tmp_file_path("dev_payload"))
         
     | 
| 
       328 
329 
     | 
    
         | 
| 
       329 
330 
     | 
    
         
             
                builder = new_builder("foo", [], ["bar", "baz"], [])
         
     | 
| 
       330 
331 
     | 
    
         | 
| 
         @@ -226,10 +226,10 @@ describe Bosh::Cli::PackageBuilder, "dev build" do 
     | 
|
| 
       226 
226 
     | 
    
         | 
| 
       227 
227 
     | 
    
         
             
                final_versions.add_version(fingerprint,
         
     | 
| 
       228 
228 
     | 
    
         
             
                                           { "version" => "4", "blobstore_id" => "12321" },
         
     | 
| 
       229 
     | 
    
         
            -
                                           "payload")
         
     | 
| 
      
 229 
     | 
    
         
            +
                                           get_tmp_file_path("payload"))
         
     | 
| 
       230 
230 
     | 
    
         
             
                dev_versions.add_version(fingerprint,
         
     | 
| 
       231 
231 
     | 
    
         
             
                                         { "version" => "0.7-dev" },
         
     | 
| 
       232 
     | 
    
         
            -
                                         "dev_payload")
         
     | 
| 
      
 232 
     | 
    
         
            +
                                         get_tmp_file_path("dev_payload"))
         
     | 
| 
       233 
233 
     | 
    
         | 
| 
       234 
234 
     | 
    
         
             
                builder = make_builder("bar", globs)
         
     | 
| 
       235 
235 
     | 
    
         
             
                builder.fingerprint.should == fingerprint
         
     | 
| 
         @@ -371,13 +371,17 @@ describe Bosh::Cli::PackageBuilder, "dev build" do 
     | 
|
| 
       371 
371 
     | 
    
         
             
                builder.build
         
     | 
| 
       372 
372 
     | 
    
         | 
| 
       373 
373 
     | 
    
         
             
                final_index = Bosh::Cli::VersionsIndex.new(final_builds_dir)
         
     | 
| 
       374 
     | 
    
         
            -
                final_index.add_version("deadbeef", 
     | 
| 
      
 374 
     | 
    
         
            +
                final_index.add_version("deadbeef",
         
     | 
| 
      
 375 
     | 
    
         
            +
                                        { "version" => 34 },
         
     | 
| 
      
 376 
     | 
    
         
            +
                                        get_tmp_file_path("payload"))
         
     | 
| 
       375 
377 
     | 
    
         | 
| 
       376 
378 
     | 
    
         
             
                add_file("src", "foo/foo14.rb")
         
     | 
| 
       377 
379 
     | 
    
         
             
                builder.reload.build
         
     | 
| 
       378 
380 
     | 
    
         
             
                builder.version.should == "34.1-dev"
         
     | 
| 
       379 
381 
     | 
    
         | 
| 
       380 
     | 
    
         
            -
                final_index.add_version("deadbeef2", 
     | 
| 
      
 382 
     | 
    
         
            +
                final_index.add_version("deadbeef2",
         
     | 
| 
      
 383 
     | 
    
         
            +
                                        { "version" => 37 },
         
     | 
| 
      
 384 
     | 
    
         
            +
                                        get_tmp_file_path("payload"))
         
     | 
| 
       381 
385 
     | 
    
         | 
| 
       382 
386 
     | 
    
         
             
                add_file("src", "foo/foo15.rb")
         
     | 
| 
       383 
387 
     | 
    
         
             
                builder.reload.build
         
     | 
| 
         @@ -389,7 +393,9 @@ describe Bosh::Cli::PackageBuilder, "dev build" do 
     | 
|
| 
       389 
393 
     | 
    
         | 
| 
       390 
394 
     | 
    
         
             
                FileUtils.rm_rf(final_builds_dir)
         
     | 
| 
       391 
395 
     | 
    
         
             
                final_index = Bosh::Cli::VersionsIndex.new(final_builds_dir)
         
     | 
| 
       392 
     | 
    
         
            -
                final_index.add_version("deadbeef3", 
     | 
| 
      
 396 
     | 
    
         
            +
                final_index.add_version("deadbeef3",
         
     | 
| 
      
 397 
     | 
    
         
            +
                                        { "version" => 34 },
         
     | 
| 
      
 398 
     | 
    
         
            +
                                        get_tmp_file_path("payload"))
         
     | 
| 
       393 
399 
     | 
    
         | 
| 
       394 
400 
     | 
    
         
             
                add_file("src", "foo/foo17.rb")
         
     | 
| 
       395 
401 
     | 
    
         
             
                builder.reload.build
         
     | 
| 
         @@ -69,13 +69,17 @@ describe Bosh::Cli::ReleaseBuilder do 
     | 
|
| 
       69 
69 
     | 
    
         
             
                final_index = Bosh::Cli::VersionsIndex.new(File.join(@release_dir,
         
     | 
| 
       70 
70 
     | 
    
         
             
                                                                     "releases"))
         
     | 
| 
       71 
71 
     | 
    
         | 
| 
       72 
     | 
    
         
            -
                final_index.add_version("deadbeef", 
     | 
| 
      
 72 
     | 
    
         
            +
                final_index.add_version("deadbeef",
         
     | 
| 
      
 73 
     | 
    
         
            +
                                        { "version" => 2 },
         
     | 
| 
      
 74 
     | 
    
         
            +
                                        get_tmp_file_path("payload"))
         
     | 
| 
       73 
75 
     | 
    
         | 
| 
       74 
76 
     | 
    
         
             
                builder = new_builder
         
     | 
| 
       75 
77 
     | 
    
         
             
                builder.version.should == "2.1-dev"
         
     | 
| 
       76 
78 
     | 
    
         
             
                builder.build
         
     | 
| 
       77 
79 
     | 
    
         | 
| 
       78 
     | 
    
         
            -
                final_index.add_version("deadbeef", 
     | 
| 
      
 80 
     | 
    
         
            +
                final_index.add_version("deadbeef",
         
     | 
| 
      
 81 
     | 
    
         
            +
                                        { "version" => 7 },
         
     | 
| 
      
 82 
     | 
    
         
            +
                                        get_tmp_file_path("payload"))
         
     | 
| 
       79 
83 
     | 
    
         
             
                builder = new_builder
         
     | 
| 
       80 
84 
     | 
    
         
             
                builder.version.should == "7.1-dev"
         
     | 
| 
       81 
85 
     | 
    
         
             
              end
         
     | 
    
        data/spec/unit/release_spec.rb
    CHANGED
    
    | 
         @@ -151,5 +151,23 @@ describe Bosh::Cli::Release do 
     | 
|
| 
       151 
151 
     | 
    
         
             
                  r = Bosh::Cli::Release.new(spec_asset("config/swift-rackspace"))
         
     | 
| 
       152 
152 
     | 
    
         
             
                  r.has_blobstore_secret?.should be_true
         
     | 
| 
       153 
153 
     | 
    
         
             
                end
         
     | 
| 
      
 154 
     | 
    
         
            +
             
     | 
| 
      
 155 
     | 
    
         
            +
                it "should not throw an error when merging empty secrets into options" do
         
     | 
| 
      
 156 
     | 
    
         
            +
                  r = Bosh::Cli::Release.new(spec_asset("config/local"))
         
     | 
| 
      
 157 
     | 
    
         
            +
                  opts = {
         
     | 
| 
      
 158 
     | 
    
         
            +
                      :blobstore_path => "/tmp/blobstore"
         
     | 
| 
      
 159 
     | 
    
         
            +
                  }
         
     | 
| 
      
 160 
     | 
    
         
            +
                  Bosh::Blobstore::Client.should_receive(:create).with("local", opts)
         
     | 
| 
      
 161 
     | 
    
         
            +
                  r.blobstore
         
     | 
| 
      
 162 
     | 
    
         
            +
                end
         
     | 
| 
      
 163 
     | 
    
         
            +
             
     | 
| 
      
 164 
     | 
    
         
            +
                it "throws an error when blobstore providers does not match" do
         
     | 
| 
      
 165 
     | 
    
         
            +
                  r = Bosh::Cli::Release.new(spec_asset("config/bad-providers"))
         
     | 
| 
      
 166 
     | 
    
         
            +
                  expect {
         
     | 
| 
      
 167 
     | 
    
         
            +
                    r.blobstore
         
     | 
| 
      
 168 
     | 
    
         
            +
                  }.to raise_error(Bosh::Cli::CliError, "blobstore private provider " +
         
     | 
| 
      
 169 
     | 
    
         
            +
                      "does not match final provider")
         
     | 
| 
      
 170 
     | 
    
         
            +
             
     | 
| 
      
 171 
     | 
    
         
            +
                end
         
     | 
| 
       154 
172 
     | 
    
         
             
              end
         
     | 
| 
       155 
173 
     | 
    
         
             
            end
         
     | 
| 
         @@ -21,7 +21,9 @@ describe Bosh::Cli::VersionsIndex do 
     | 
|
| 
       21 
21 
     | 
    
         
             
                @index.latest_version.should be_nil
         
     | 
| 
       22 
22 
     | 
    
         
             
                File.exists?(@index_file).should be_false
         
     | 
| 
       23 
23 
     | 
    
         | 
| 
       24 
     | 
    
         
            -
                @index.add_version("deadcafe", 
     | 
| 
      
 24 
     | 
    
         
            +
                @index.add_version("deadcafe",
         
     | 
| 
      
 25 
     | 
    
         
            +
                                   { "version" => 2 },
         
     | 
| 
      
 26 
     | 
    
         
            +
                                   get_tmp_file_path("payload2"))
         
     | 
| 
       25 
27 
     | 
    
         
             
                File.exists?(@index_file).should be_true
         
     | 
| 
       26 
28 
     | 
    
         
             
              end
         
     | 
| 
       27 
29 
     | 
    
         | 
| 
         @@ -44,8 +46,13 @@ describe Bosh::Cli::VersionsIndex do 
     | 
|
| 
       44 
46 
     | 
    
         
             
              it "can be used to add versioned payloads to index" do
         
     | 
| 
       45 
47 
     | 
    
         
             
                item1 = { "a" => 1, "b" => 2, "version" => 1 }
         
     | 
| 
       46 
48 
     | 
    
         
             
                item2 = { "a" => 3, "b" => 4, "version" => 2 }
         
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
                @index.add_version(" 
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
                @index.add_version("deadbeef",
         
     | 
| 
      
 51 
     | 
    
         
            +
                                   item1,
         
     | 
| 
      
 52 
     | 
    
         
            +
                                   get_tmp_file_path("payload1"))
         
     | 
| 
      
 53 
     | 
    
         
            +
                @index.add_version("deadcafe",
         
     | 
| 
      
 54 
     | 
    
         
            +
                                   item2,
         
     | 
| 
      
 55 
     | 
    
         
            +
                                   get_tmp_file_path("payload2"))
         
     | 
| 
       49 
56 
     | 
    
         | 
| 
       50 
57 
     | 
    
         
             
                @index.latest_version.should == 2
         
     | 
| 
       51 
58 
     | 
    
         
             
                @index["deadbeef"].should ==
         
     | 
| 
         @@ -73,12 +80,14 @@ describe Bosh::Cli::VersionsIndex do 
     | 
|
| 
       73 
80 
     | 
    
         
             
                item2 = { "a" => 3, "b" => 4, "version" => 2 }
         
     | 
| 
       74 
81 
     | 
    
         
             
                item3 = { "a" => 3, "b" => 4, "version" => 3 }
         
     | 
| 
       75 
82 
     | 
    
         | 
| 
       76 
     | 
    
         
            -
                @index.add_version("deadbeef", item1, "payload1")
         
     | 
| 
       77 
     | 
    
         
            -
                @index.add_version("deadcafe", item2, "payload2")
         
     | 
| 
      
 83 
     | 
    
         
            +
                @index.add_version("deadbeef", item1, get_tmp_file_path("payload1"))
         
     | 
| 
      
 84 
     | 
    
         
            +
                @index.add_version("deadcafe", item2, get_tmp_file_path("payload2"))
         
     | 
| 
       78 
85 
     | 
    
         
             
                @index.latest_version.should == 2
         
     | 
| 
       79 
     | 
    
         
            -
                @index.add_version("addedface", item3, "payload2")
         
     | 
| 
      
 86 
     | 
    
         
            +
                @index.add_version("addedface", item3, get_tmp_file_path("payload2"))
         
     | 
| 
       80 
87 
     | 
    
         
             
                @index.latest_version.should == 3
         
     | 
| 
       81 
     | 
    
         
            -
                @index.add_version("facedbeef", 
     | 
| 
      
 88 
     | 
    
         
            +
                @index.add_version("facedbeef",
         
     | 
| 
      
 89 
     | 
    
         
            +
                                   item1.merge("version" => "1.5"),
         
     | 
| 
      
 90 
     | 
    
         
            +
                                   get_tmp_file_path("payload3"))
         
     | 
| 
       82 
91 
     | 
    
         
             
                @index.latest_version.should == 3
         
     | 
| 
       83 
92 
     | 
    
         
             
              end
         
     | 
| 
       84 
93 
     | 
    
         | 
| 
         @@ -87,12 +96,14 @@ describe Bosh::Cli::VersionsIndex do 
     | 
|
| 
       87 
96 
     | 
    
         
             
                item2 = { "a" => 3, "b" => 4, "version" => "1.8-dev" }
         
     | 
| 
       88 
97 
     | 
    
         
             
                item3 = { "a" => 3, "b" => 4, "version" => "1.10-dev" }
         
     | 
| 
       89 
98 
     | 
    
         | 
| 
       90 
     | 
    
         
            -
                @index.add_version("deadbeef", item1, "payload1")
         
     | 
| 
       91 
     | 
    
         
            -
                @index.add_version("deadcafe", item2, "payload2")
         
     | 
| 
      
 99 
     | 
    
         
            +
                @index.add_version("deadbeef", item1, get_tmp_file_path("payload1"))
         
     | 
| 
      
 100 
     | 
    
         
            +
                @index.add_version("deadcafe", item2, get_tmp_file_path("payload2"))
         
     | 
| 
       92 
101 
     | 
    
         
             
                @index.latest_version.should == "1.9-dev"
         
     | 
| 
       93 
     | 
    
         
            -
                @index.add_version("facedead", item3, "payload2")
         
     | 
| 
      
 102 
     | 
    
         
            +
                @index.add_version("facedead", item3, get_tmp_file_path("payload2"))
         
     | 
| 
       94 
103 
     | 
    
         
             
                @index.latest_version.should == "1.10-dev"
         
     | 
| 
       95 
     | 
    
         
            -
                @index.add_version("badbed", 
     | 
| 
      
 104 
     | 
    
         
            +
                @index.add_version("badbed",
         
     | 
| 
      
 105 
     | 
    
         
            +
                                   item1.merge("version" => "2.15-dev"),
         
     | 
| 
      
 106 
     | 
    
         
            +
                                   get_tmp_file_path("payload3"))
         
     | 
| 
       96 
107 
     | 
    
         
             
                @index.latest_version.should == "2.15-dev"
         
     | 
| 
       97 
108 
     | 
    
         
             
              end
         
     | 
| 
       98 
109 
     | 
    
         | 
| 
         @@ -100,10 +111,10 @@ describe Bosh::Cli::VersionsIndex do 
     | 
|
| 
       100 
111 
     | 
    
         
             
                item1 = { "a" => 1, "b" => 2, "version" => "1.9-dev" }
         
     | 
| 
       101 
112 
     | 
    
         
             
                item2 = { "a" => 3, "b" => 4, "version" => "1.8-dev" }
         
     | 
| 
       102 
113 
     | 
    
         | 
| 
       103 
     | 
    
         
            -
                @index.add_version("deadbeef", item1, "payload1")
         
     | 
| 
      
 114 
     | 
    
         
            +
                @index.add_version("deadbeef", item1, get_tmp_file_path("payload1"))
         
     | 
| 
       104 
115 
     | 
    
         | 
| 
       105 
116 
     | 
    
         
             
                lambda {
         
     | 
| 
       106 
     | 
    
         
            -
                  @index.add_version("deadcafe", item1, "payload3")
         
     | 
| 
      
 117 
     | 
    
         
            +
                  @index.add_version("deadcafe", item1, get_tmp_file_path("payload3"))
         
     | 
| 
       107 
118 
     | 
    
         
             
                }.should raise_error("Trying to add duplicate version `1.9-dev' " +
         
     | 
| 
       108 
119 
     | 
    
         
             
                                     "into index `#{File.join(@dir, "index.yml")}'")
         
     | 
| 
       109 
120 
     | 
    
         
             
              end
         
     | 
| 
         @@ -112,8 +123,8 @@ describe Bosh::Cli::VersionsIndex do 
     | 
|
| 
       112 
123 
     | 
    
         
             
                item1 = { "a" => 1, "b" => 2, "version" => 1 }
         
     | 
| 
       113 
124 
     | 
    
         
             
                item2 = { "a" => 3, "b" => 4, "version" => 2 }
         
     | 
| 
       114 
125 
     | 
    
         | 
| 
       115 
     | 
    
         
            -
                @index.add_version("deadbeef", item1, "payload1")
         
     | 
| 
       116 
     | 
    
         
            -
                @index.add_version("deadcafe", item2, "payload2")
         
     | 
| 
      
 126 
     | 
    
         
            +
                @index.add_version("deadbeef", item1, get_tmp_file_path("payload1"))
         
     | 
| 
      
 127 
     | 
    
         
            +
                @index.add_version("deadcafe", item2, get_tmp_file_path("payload2"))
         
     | 
| 
       117 
128 
     | 
    
         | 
| 
       118 
129 
     | 
    
         
             
                checksum1 = Digest::SHA1.hexdigest("payload1")
         
     | 
| 
       119 
130 
     | 
    
         
             
                checksum2 = Digest::SHA1.hexdigest("payload2")
         
     | 
| 
         @@ -124,8 +135,9 @@ describe Bosh::Cli::VersionsIndex do 
     | 
|
| 
       124 
135 
     | 
    
         | 
| 
       125 
136 
     | 
    
         
             
              it "supports name prefix" do
         
     | 
| 
       126 
137 
     | 
    
         
             
                item = { "a" => 1, "b" => 2, "version" => 1 }
         
     | 
| 
      
 138 
     | 
    
         
            +
             
     | 
| 
       127 
139 
     | 
    
         
             
                @index = Bosh::Cli::VersionsIndex.new(@dir, "foobar")
         
     | 
| 
       128 
     | 
    
         
            -
                @index.add_version("deadbeef", item, "payload1")
         
     | 
| 
      
 140 
     | 
    
         
            +
                @index.add_version("deadbeef", item, get_tmp_file_path("payload1"))
         
     | 
| 
       129 
141 
     | 
    
         
             
                @index.filename(1).should == File.join(@dir, "foobar-1.tgz")
         
     | 
| 
       130 
142 
     | 
    
         
             
              end
         
     | 
| 
       131 
143 
     | 
    
         | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,15 +1,15 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: bosh_cli
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1.0 
     | 
| 
       5 
     | 
    
         
            -
              prerelease:  
     | 
| 
      
 4 
     | 
    
         
            +
              version: '1.0'
         
     | 
| 
      
 5 
     | 
    
         
            +
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors:
         
     | 
| 
       8 
8 
     | 
    
         
             
            - VMware
         
     | 
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2012-10- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2012-10-19 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: bosh_common
         
     | 
| 
         @@ -272,8 +272,12 @@ files: 
     | 
|
| 
       272 
272 
     | 
    
         
             
            - spec/assets/biff/properties_template.erb
         
     | 
| 
       273 
273 
     | 
    
         
             
            - spec/assets/config/atmos/config/final.yml
         
     | 
| 
       274 
274 
     | 
    
         
             
            - spec/assets/config/atmos/config/private.yml
         
     | 
| 
      
 275 
     | 
    
         
            +
            - spec/assets/config/bad-providers/config/final.yml
         
     | 
| 
      
 276 
     | 
    
         
            +
            - spec/assets/config/bad-providers/config/private.yml
         
     | 
| 
       275 
277 
     | 
    
         
             
            - spec/assets/config/deprecation/config/final.yml
         
     | 
| 
       276 
278 
     | 
    
         
             
            - spec/assets/config/deprecation/config/private.yml
         
     | 
| 
      
 279 
     | 
    
         
            +
            - spec/assets/config/local/config/final.yml
         
     | 
| 
      
 280 
     | 
    
         
            +
            - spec/assets/config/local/config/private.yml
         
     | 
| 
       277 
281 
     | 
    
         
             
            - spec/assets/config/s3/config/final.yml
         
     | 
| 
       278 
282 
     | 
    
         
             
            - spec/assets/config/s3/config/private.yml
         
     | 
| 
       279 
283 
     | 
    
         
             
            - spec/assets/config/swift-hp/config/final.yml
         
     | 
| 
         @@ -351,13 +355,16 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       351 
355 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       352 
356 
     | 
    
         
             
                  segments:
         
     | 
| 
       353 
357 
     | 
    
         
             
                  - 0
         
     | 
| 
       354 
     | 
    
         
            -
                  hash:  
     | 
| 
      
 358 
     | 
    
         
            +
                  hash: 418421310911129524
         
     | 
| 
       355 
359 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       356 
360 
     | 
    
         
             
              none: false
         
     | 
| 
       357 
361 
     | 
    
         
             
              requirements:
         
     | 
| 
       358 
     | 
    
         
            -
              - - ! ' 
     | 
| 
      
 362 
     | 
    
         
            +
              - - ! '>='
         
     | 
| 
       359 
363 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       360 
     | 
    
         
            -
                  version:  
     | 
| 
      
 364 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 365 
     | 
    
         
            +
                  segments:
         
     | 
| 
      
 366 
     | 
    
         
            +
                  - 0
         
     | 
| 
      
 367 
     | 
    
         
            +
                  hash: 418421310911129524
         
     | 
| 
       361 
368 
     | 
    
         
             
            requirements: []
         
     | 
| 
       362 
369 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       363 
370 
     | 
    
         
             
            rubygems_version: 1.8.24
         
     | 
| 
         @@ -379,8 +386,12 @@ test_files: 
     | 
|
| 
       379 
386 
     | 
    
         
             
            - spec/assets/biff/properties_template.erb
         
     | 
| 
       380 
387 
     | 
    
         
             
            - spec/assets/config/atmos/config/final.yml
         
     | 
| 
       381 
388 
     | 
    
         
             
            - spec/assets/config/atmos/config/private.yml
         
     | 
| 
      
 389 
     | 
    
         
            +
            - spec/assets/config/bad-providers/config/final.yml
         
     | 
| 
      
 390 
     | 
    
         
            +
            - spec/assets/config/bad-providers/config/private.yml
         
     | 
| 
       382 
391 
     | 
    
         
             
            - spec/assets/config/deprecation/config/final.yml
         
     | 
| 
       383 
392 
     | 
    
         
             
            - spec/assets/config/deprecation/config/private.yml
         
     | 
| 
      
 393 
     | 
    
         
            +
            - spec/assets/config/local/config/final.yml
         
     | 
| 
      
 394 
     | 
    
         
            +
            - spec/assets/config/local/config/private.yml
         
     | 
| 
       384 
395 
     | 
    
         
             
            - spec/assets/config/s3/config/final.yml
         
     | 
| 
       385 
396 
     | 
    
         
             
            - spec/assets/config/s3/config/private.yml
         
     | 
| 
       386 
397 
     | 
    
         
             
            - spec/assets/config/swift-hp/config/final.yml
         
     |