Sha256: ec9ab5636b9e84937a2168c8c7ce63a17761c3fa64709ea5ba35455a1650698f

Contents?: true

Size: 1003 Bytes

Versions: 6

Compression:

Stored size: 1003 Bytes

Contents

module Vagrant
  module Actions
    module VM
      class Export < Base
        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|
            logger.report_progress(progress.percent, 100, false)
          end

          logger.clear_progress
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
vagrantup-0.4.3.dev lib/vagrant/actions/vm/export.rb
vagrantup-0.4.1 lib/vagrant/actions/vm/export.rb
vagrantup-0.4.0 lib/vagrant/actions/vm/export.rb
vagrant-0.4.2 lib/vagrant/actions/vm/export.rb
vagrant-0.4.1 lib/vagrant/actions/vm/export.rb
vagrant-0.4.0 lib/vagrant/actions/vm/export.rb