Sha256: 98b4edc63bb4263f5b89621231a22678d5017e6b6b0f7e8ca1bbfa49b5600de9

Contents?: true

Size: 1.71 KB

Versions: 25

Compression:

Stored size: 1.71 KB

Contents

module Fog
  module Compute
    class Vsphere
      class Real
        def upload_iso_check_options(options)
          default_options = {
            'upload_directory' => 'isos',
          }
          options = default_options.merge(options)
          required_options = %w{ datacenter datastore local_path }
          required_options.each do |param|
            raise ArgumentError, "#{required_options.join(', ')} are required" unless options.key? param
          end
          raise Fog::Compute::Vsphere::NotFound, "Datacenter #{options["datacenter"]} Doesn't Exist!" unless get_datacenter(options["datacenter"])
          raise Fog::Compute::Vsphere::NotFound, "Datastore #{options["datastore"]} Doesn't Exist!" unless get_raw_datastore(options['datastore'], options['datacenter'])
          options
        end

        def upload_iso(options = {})
          options = upload_iso_check_options(options)
          datastore = get_raw_datastore(options['datastore'], options['datacenter'])
          datacenter = get_raw_datacenter(options['datacenter'])
          filename = options['filename'] || File.basename(options['local_path'])
          unless datastore.exists? options['upload_directory']+'/'
            @connection.serviceContent.fileManager.MakeDirectory :name => "[#{options['datastore']}] #{options['upload_directory']}",
                                                                 :datacenter => datacenter,
                                                                 :createParentDirectories => false
          end
          datastore.upload options['upload_directory']+'/'+filename, options['local_path']
          datastore.exists? options['upload_directory']+'/'+filename
        end
      end
    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
fog-vsphere-1.7.0.1 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-1.9.0 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-1.8.0 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-1.7.1 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-1.7.0 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-1.6.0 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-1.5.2 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-1.5.1 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-1.5.0 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-1.4.0 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-1.3.0 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-1.2.2 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-1.2.1 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-1.2.0 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-1.1.0 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-1.0.1 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-1.0.0 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-0.8.1 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-0.8.0 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-0.7.0 lib/fog/vsphere/requests/compute/upload_iso.rb