Class: Bosh::Cli::Command::Release::UploadRelease

Inherits:
Base
  • Object
show all
Defined in:
lib/cli/commands/release/upload_release.rb

Constant Summary

Constants inherited from Base

Base::DEFAULT_DIRECTOR_PORT

Instance Attribute Summary

Attributes inherited from Base

#args, #exit_code, #options, #out, #runner, #work_dir

Instance Method Summary collapse

Methods inherited from Base

#add_option, #blob_manager, #blobstore, #cache_dir, #config, #confirmed?, #credentials, #deployment, #director, #initialize, #interactive?, #logged_in?, #non_interactive?, #progress_renderer, #redirect, #release, #remove_option, #target, #target_name, #verbose?

Methods included from Bosh::Cli::CommandDiscovery

#desc, #method_added, #option, #register_command, #usage

Methods included from DeploymentHelper

#cancel_deployment, #deployment_changed?, #inspect_deployment_changes, #job_exists_in_deployment?, #job_must_exist_in_deployment, #job_unique_in_deployment?, #jobs_and_indexes, #latest_release_versions, #prepare_deployment_manifest, #prompt_for_errand_name, #prompt_for_job_and_index, #resolve_release_aliases, #warn_about_stemcell_changes

Constructor Details

This class inherits a constructor from Bosh::Cli::Command::Base

Instance Method Details

#upload(release_file = nil) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/cli/commands/release/upload_release.rb', line 12

def upload(release_file = nil)
  auth_required

  upload_options = {
    :rebase => options[:rebase],
    :repack => true,
    :skip_if_exists => options[:skip_if_exists],
  }

  if release_file.nil?
    check_if_release_dir
    release_file = release.latest_release_filename
    if release_file.nil?
      err('The information about latest generated release is missing, please provide release filename')
    end
  end

  if release_file =~ /^#{URI::regexp}$/
    upload_remote_release(release_file, upload_options)
  else
    unless File.exist?(release_file)
      err("Release file doesn't exist")
    end

    file_type = `file --mime-type -b '#{release_file}'`

    if file_type =~ /text\/(plain|yaml)/
      upload_manifest(release_file, upload_options)
    else
      upload_tarball(release_file, upload_options)
    end
  end
end