Sha256: 11861c1292687ff510a1b182e3266a95e475163be1a4d3e6a7848556ad4caace

Contents?: true

Size: 1 KB

Versions: 6

Compression:

Stored size: 1 KB

Contents

module Vagrant
  module Actions
    module VM
      class Export < Base
        include Util::ProgressMeter

        attr_reader :temp_dir

        def execute!
          setup_temp_dir
          export
        end

        def cleanup
          if temp_dir
            logger.info "Removing temporary export directory..."
            FileUtils.rm_r(temp_dir)
          end
        end

        def rescue(exception)
          cleanup
        end

        def setup_temp_dir
          @temp_dir = File.join(@runner.env.tmp_path, Time.now.to_i.to_s)

          logger.info "Creating temporary directory for export..."
          FileUtils.mkpath(temp_dir)
        end

        def ovf_path
          File.join(temp_dir, @runner.env.config.vm.box_ovf)
        end

        def export
          logger.info "Exporting VM to #{ovf_path}..."
          @runner.vm.export(ovf_path) do |progress|
            update_progress(progress.percent, 100, false)
          end

          complete_progress
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
vagrantup-0.3.4 lib/vagrant/actions/vm/export.rb
vagrantup-0.3.3 lib/vagrant/actions/vm/export.rb
vagrantup-0.3.2 lib/vagrant/actions/vm/export.rb
vagrant-0.3.4 lib/vagrant/actions/vm/export.rb
vagrant-0.3.3 lib/vagrant/actions/vm/export.rb
vagrant-0.3.2 lib/vagrant/actions/vm/export.rb