Sha256: 4c5c741d52e5050f023ec42a5b65ea7edec0dda2ea3b3cee99961fc637423bd1

Contents?: true

Size: 1.87 KB

Versions: 10

Compression:

Stored size: 1.87 KB

Contents

require 'log4r'

module VagrantPlugins
  module G5K
    module Disk

      class Local

        def initialize(env, cwd,  driver)
          @logger = Log4r::Logger.new("vagrant::network::nat")
          # command driver is unused
          @cwd = cwd
          @driver = driver
          @env = env
          @image = env[:machine].provider_config.image
          @project_id = env[:machine].provider_config.project_id
          @ui = env[:ui]
        end

        def generate_drive()
          strategy = @image[:backing]
          if [STRATEGY_SNAPSHOT, STRATEGY_DIRECT].include?(strategy)
            file = @image[:path]
          elsif strategy == STRATEGY_COW
            file = _clone_or_copy_image(clone = true)
          elsif strategy == STRATEGY_COPY
            file = _clone_or_copy_image(clone = false)
          end
          return file
        end

        def check_storage()
          strategy = @image[:backing]
          file_to_check = ""
          if [STRATEGY_SNAPSHOT, STRATEGY_DIRECT].include?(strategy)
            file_to_check = @image[:path]
          else
            file_to_check = File.join(@cwd, @env[:machine].name.to_s)
          end
            @driver.exec("[ -f \"#{file_to_check}\" ] && echo #{file_to_check} || echo \"\"")
        end

        def delete_disk()
          disk = File.join(@cwd, @env[:machine].name.to_s)
          @driver.exec("rm -f #{disk}")
        end
        
        def _clone_or_copy_image( clone = true)
          @ui.info("Clone the file image")
          file = File.join(@cwd, @env[:machine].name.to_s)
          exists = check_storage()
          if exists == ""
            if clone 
              @driver.exec("qemu-img create -f qcow2 -b #{@image[:path]} #{file}")
            else
              @driver.exec("cp #{@image[:path]} #{file}")
            end
          end
          return file
        end

 
      end
    end
  end
end

  

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
vagrant-g5k-0.9.9 lib/vagrant-g5k/disk/local.rb
vagrant-g5k-0.9.8 lib/vagrant-g5k/disk/local.rb
vagrant-g5k-0.9.7 lib/vagrant-g5k/disk/local.rb
vagrant-g5k-0.9.6 lib/vagrant-g5k/disk/local.rb
vagrant-g5k-0.9.5 lib/vagrant-g5k/disk/local.rb
vagrant-g5k-0.9.4 lib/vagrant-g5k/disk/local.rb
vagrant-g5k-0.9.3 lib/vagrant-g5k/disk/local.rb
vagrant-g5k-0.9.2 lib/vagrant-g5k/disk/local.rb
vagrant-g5k-0.9.1 lib/vagrant-g5k/disk/local.rb
vagrant-g5k-0.9.0 lib/vagrant-g5k/disk/local.rb