def import_disk_convert(source, destination, print_progress = false)
      tmp_dest = destination + ".tmp"
      Net::SSH.start(@address, @user, :password => @password) do |ssh|
        if not (ssh.exec! "ls #{destination} 2>/dev/null").nil?
          raise Exception.new("Destination file #{destination} already exists")
        end
        Log.info "Uploading file... (#{File.basename(source)})" if print_progress
        ssh.scp.upload!(source, tmp_dest) do |ch, name, sent, total|
          if print_progress
            print "\rProgress: #{(sent.to_f * 100 / total.to_f).to_i}%"
          end
        end
        if print_progress
          Log.info "Converting disk..."
          ssh.exec "vmkfstools -i #{tmp_dest} --diskformat thin #{destination}; rm -f #{tmp_dest}"
        else
          ssh.exec "vmkfstools -i #{tmp_dest} --diskformat thin #{destination} >/dev/null 2>&1; rm -f #{tmp_dest}"
        end
      end
    end
def import_disk_convert(source, destination, print_progress = false)
      tmp_dest = destination + ".tmp"
      Net::SSH.start(@address, @user, :password => @password) do |ssh|
        if not (ssh.exec! "ls #{destination} 2>/dev/null").nil?
          raise Exception.new("Destination file #{destination} already exists")
        end
        Log.info "Uploading file... (#{File.basename(source)})" if print_progress
        ssh.scp.upload!(source, tmp_dest) do |ch, name, sent, total|
          if print_progress
            print "\rProgress: #{(sent.to_f * 100 / total.to_f).to_i}%"
          end
        end
        if print_progress
          Log.info "Converting disk..."
          ssh.exec "vmkfstools -i #{tmp_dest} --diskformat thin #{destination}; rm -f #{tmp_dest}"
        else
          ssh.exec "vmkfstools -i #{tmp_dest} --diskformat thin #{destination} >/dev/null 2>&1; rm -f #{tmp_dest}"
        end
      end
    end
This method does all the heavy lifting when importing the disk.
 It also converts the imported VMDK to thin format