vagrant-export 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/vagrant-export/exporter.rb +34 -12
- data/lib/vagrant-export/version.rb +1 -1
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: b75fdb202a785f439de0c9f88c6835cc0a02d8c6
         | 
| 4 | 
            +
              data.tar.gz: 7367e4fd0cf82a55eb934a7401fc9d545657d33a
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 0e50541e5aa70b45e388403810262cad1eacde69c0dc890d028f5f7d0909afcd9d2dbbe6b7bbe7907a019b68da2a556b918ea089b994ddec01e24a8492bb7578
         | 
| 7 | 
            +
              data.tar.gz: 0a3c6ac3856d22934398127933511e61f70ecc9e6753cc1f563758aa89c115d401bb0ac29b4adb4717ef99b1ebc454b5896dc595f3b990193ce676178af966bc
         | 
| @@ -28,7 +28,7 @@ module VagrantPlugins | |
| 28 28 | 
             
                      if can_compress
         | 
| 29 29 | 
             
                        compress
         | 
| 30 30 | 
             
                      else
         | 
| 31 | 
            -
                        @ | 
| 31 | 
            +
                        @vm.ui.error('Cannot compress this type of machine')
         | 
| 32 32 | 
             
                        return 1
         | 
| 33 33 | 
             
                      end
         | 
| 34 34 | 
             
                    end
         | 
| @@ -48,7 +48,7 @@ module VagrantPlugins | |
| 48 48 | 
             
                    if @vm.state.short_description == 'running'
         | 
| 49 49 | 
             
                      @did_run = true
         | 
| 50 50 | 
             
                    else
         | 
| 51 | 
            -
                      @ | 
| 51 | 
            +
                      @vm.ui.info('Machine not running, bringing it up')
         | 
| 52 52 | 
             
                      @vm.action(:up)
         | 
| 53 53 | 
             
                    end
         | 
| 54 54 |  | 
| @@ -125,7 +125,7 @@ module VagrantPlugins | |
| 125 125 | 
             
                  def export
         | 
| 126 126 | 
             
                    # Halt the machine
         | 
| 127 127 | 
             
                    if @vm.state.short_description == 'running'
         | 
| 128 | 
            -
                      @ | 
| 128 | 
            +
                      @vm.ui.info('Halting VM for export')
         | 
| 129 129 | 
             
                      @vm.action(:halt)
         | 
| 130 130 | 
             
                    end
         | 
| 131 131 |  | 
| @@ -134,20 +134,33 @@ module VagrantPlugins | |
| 134 134 | 
             
                    @tmp_path = exported_path
         | 
| 135 135 | 
             
                    FileUtils.mkdir_p(exported_path)
         | 
| 136 136 |  | 
| 137 | 
            -
                    @ | 
| 137 | 
            +
                    @vm.ui.info('Exporting machine')
         | 
| 138 138 |  | 
| 139 139 | 
             
                    provider_name = @vm.provider_name.to_s
         | 
| 140 140 |  | 
| 141 141 | 
             
                    if /vmware/i =~ provider_name
         | 
| 142 142 | 
             
                      current_dir = File.dirname(@vm.id)
         | 
| 143 | 
            -
                      files = Dir.glob(File.join(current_dir, '**', '*')) | 
| 144 | 
            -
             | 
| 145 | 
            -
                      }
         | 
| 143 | 
            +
                      files = Dir.glob(File.join(current_dir, '**', '*'))
         | 
| 144 | 
            +
             | 
| 145 | 
            +
                      files.select! {|f| !File.directory?(f) }
         | 
| 146 | 
            +
                      files.select!{ |f| f !~ /\.log$/ }
         | 
| 147 | 
            +
                      files.select!{ |f| f !~ /core$/ }
         | 
| 148 | 
            +
                      files.select!{ |f| f !~ /\.gz$/ }
         | 
| 149 | 
            +
                      files.select!{ |f| f !~ /.lck$/ }
         | 
| 150 | 
            +
             | 
| 146 151 | 
             
                      FileUtils.cp_r(files, exported_path)
         | 
| 152 | 
            +
             | 
| 153 | 
            +
                      @vm.ui.info('Compacting Vmware virtual disks')
         | 
| 154 | 
            +
             | 
| 155 | 
            +
                      Dir.glob(File.join(exported_path, '**', '*.vmdk')) { |f|
         | 
| 156 | 
            +
                        Vagrant::Util::Subprocess.execute('vmware-vdiskmanager', '-d', f)
         | 
| 157 | 
            +
                        Vagrant::Util::Subprocess.execute('vmware-vdiskmanager', '-k', f)
         | 
| 158 | 
            +
                      }
         | 
| 159 | 
            +
             | 
| 147 160 | 
             
                    else
         | 
| 148 161 | 
             
                      @vm.provider.driver.export File.join(exported_path, 'box.ovf' + ext) do |progress|
         | 
| 149 | 
            -
                        @ | 
| 150 | 
            -
                        @ | 
| 162 | 
            +
                        @vm.ui.clear_line
         | 
| 163 | 
            +
                        @vm.ui.report_progress(progress.percent, 100, false)
         | 
| 151 164 | 
             
                      end
         | 
| 152 165 | 
             
                    end
         | 
| 153 166 |  | 
| @@ -158,6 +171,13 @@ module VagrantPlugins | |
| 158 171 |  | 
| 159 172 | 
             
                    provider_name = @vm.provider_name.to_s
         | 
| 160 173 |  | 
| 174 | 
            +
                    # For Vmware, the remote provider is generic _desktop
         | 
| 175 | 
            +
                    # the local is a specific _fusion or _workstation
         | 
| 176 | 
            +
                    # Always use vmware_desktop to avoid problems with different provider plugins
         | 
| 177 | 
            +
                    if provider_name =~ /vmware/
         | 
| 178 | 
            +
                      provider_name = 'vmware_desktop'
         | 
| 179 | 
            +
                    end
         | 
| 180 | 
            +
             | 
| 161 181 | 
             
                    # Add metadata json
         | 
| 162 182 | 
             
                    begin
         | 
| 163 183 | 
             
                      metadata = File.open(File.join(@tmp_path, 'metadata.json'), 'wb')
         | 
| @@ -196,7 +216,7 @@ module VagrantPlugins | |
| 196 216 | 
             
                    # and includes the original
         | 
| 197 217 | 
             
                    # The new Vagrantfile will include the old one, which
         | 
| 198 218 | 
             
                    # is put into the includeds directory
         | 
| 199 | 
            -
                     | 
| 219 | 
            +
                    elsif vagrantfile_needs_mac
         | 
| 200 220 | 
             
                      File.open(File.join(@tmp_path, 'Vagrantfile'), 'wb') do |file|
         | 
| 201 221 | 
             
                        file.write(Vagrant::Util::TemplateRenderer.render('package_Vagrantfile', {
         | 
| 202 222 | 
             
                            base_mac: @vm.provider.driver.read_mac_address
         | 
| @@ -217,6 +237,8 @@ module VagrantPlugins | |
| 217 237 | 
             
                    # Make a box file out of it
         | 
| 218 238 | 
             
                    @box_file_name = @tmp_path + '.box'
         | 
| 219 239 |  | 
| 240 | 
            +
                    @vm.ui.info('Packaging box file')
         | 
| 241 | 
            +
             | 
| 220 242 | 
             
                    Vagrant::Util::SafeChdir.safe_chdir(@tmp_path) do
         | 
| 221 243 | 
             
                      files = Dir.glob(File.join('.', '**', '*'))
         | 
| 222 244 | 
             
                      Vagrant::Util::Subprocess.execute('bsdtar', '-czf', @box_file_name, *files)
         | 
| @@ -231,7 +253,7 @@ module VagrantPlugins | |
| 231 253 | 
             
                      box_name = @vm.box.name.gsub('/', '_')
         | 
| 232 254 | 
             
                      @target_box = File.join(@env.cwd, box_name + '.box')
         | 
| 233 255 | 
             
                      FileUtils.mv(@box_file_name, @target_box)
         | 
| 234 | 
            -
                      @ | 
| 256 | 
            +
                      @vm.ui.info('Created ' + @target_box)
         | 
| 235 257 | 
             
                    end
         | 
| 236 258 |  | 
| 237 259 | 
             
                    # Remove the tmp files
         | 
| @@ -239,7 +261,7 @@ module VagrantPlugins | |
| 239 261 |  | 
| 240 262 | 
             
                    # Resume the machine
         | 
| 241 263 | 
             
                    if @did_run
         | 
| 242 | 
            -
                      @ | 
| 264 | 
            +
                      @vm.ui.info('Bringing the machine back up')
         | 
| 243 265 | 
             
                      @vm.action(:up)
         | 
| 244 266 | 
             
                    end
         | 
| 245 267 | 
             
                  end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: vagrant-export
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.3. | 
| 4 | 
            +
              version: 0.3.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Georg Grossberger
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2015-03- | 
| 11 | 
            +
            date: 2015-03-12 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies: []
         | 
| 13 13 | 
             
            description: Export boxes to .box files including the original Vagrantfile and some
         | 
| 14 14 | 
             
              cleanups inside the VM
         |