Sha256: 1035de7e743058a8a16e152d70ecb1ad615b67ac0ee92b58888d7b9f52259ec3

Contents?: true

Size: 1.7 KB

Versions: 18

Compression:

Stored size: 1.7 KB

Contents

module Fog
  module Vsphere
    class Compute
      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::Vsphere::Compute::NotFound, "Datacenter #{options['datacenter']} Doesn't Exist!" unless get_datacenter(options['datacenter'])
          raise Fog::Vsphere::Compute::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

18 entries across 18 versions & 1 rubygems

Version Path
fog-vsphere-3.7.0 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-3.6.8 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-3.6.7 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-3.6.6 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-3.6.5 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-3.6.4 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-3.6.3 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-3.6.2 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-3.5.3 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-3.6.0 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-3.5.2 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-3.5.1 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-3.5.0 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-3.4.0 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-3.3.1 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-3.3.0 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-3.2.5 lib/fog/vsphere/requests/compute/upload_iso.rb
fog-vsphere-3.2.2 lib/fog/vsphere/requests/compute/upload_iso.rb