Class: VagrantPlugins::VagrantBosh::Deployment::UplodableRelease

Inherits:
Object
  • Object
show all
Defined in:
lib/vagrant-bosh/deployment/uploadable_release.rb

Overview

UplodableRelease represents a release that *can be* synced to a guest FS location.

Instance Method Summary collapse

Constructor Details

#initialize(name, version, host_dir, guest_root_dir, release_uploader, create_release_cmd, ui) ⇒ UplodableRelease

Returns a new instance of UplodableRelease.



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/vagrant-bosh/deployment/uploadable_release.rb', line 13

def initialize(name, version, host_dir, guest_root_dir, release_uploader, create_release_cmd, ui)
  @name = name
  @version = version
  @host_dir = host_dir
  @release_uploader = release_uploader
  @create_release_cmd = create_release_cmd

  @ui = ui.for(:deployment, :uploadable_release)
  @logger = Log4r::Logger.new("vagrant::provisioners::bosh::deployment::uploadable_release")

  @guest_dir = File.join(guest_root_dir, name)
end

Instance Method Details

#uploadObject



26
27
28
29
30
31
32
33
# File 'lib/vagrant-bosh/deployment/uploadable_release.rb', line 26

def upload
  version = @version == "latest" ? create_release : @version

  # Sync either existing or newly-created release
  @release_uploader.sync(@host_dir, @guest_dir)

  UploadedRelease.new(@name, version, @guest_dir)
end