Method: Bosh::Director::Jobs::UpdateRelease#use_existing_packages

Defined in:
lib/bosh/director/jobs/update_release.rb

#use_existing_packages(packages) ⇒ Object

Points release DB model to existing packages described by given metadata

Parameters:

  • packages (Array<Array>)

    Existing packages metadata



295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
# File 'lib/bosh/director/jobs/update_release.rb', line 295

def use_existing_packages(packages)
  return if packages.empty?

  n_packages = packages.size
  event_log.begin_stage("Processing #{n_packages} existing " +
                        "package#{n_packages > 1 ? "s" : ""}", 1)

  event_log.track("Verifying checksums") do
    packages.each do |package, package_meta|
      package_desc = "#{package.name}/#{package.version}"
      logger.info("Package `#{package_desc}' already exists, " +
                  "verifying checksum")

      expected = package.sha1
      received = package_meta["sha1"]

      if expected != received
        raise ReleaseExistingPackageHashMismatch,
              "`#{package_desc}' checksum mismatch, " +
                "expected #{expected} but received #{received}"
      end
      logger.info("Package `#{package_desc}' verified")
      register_package(package)
    end
  end
end