Sha256: 4664983d9c4a8df96551a7e0787727d954ed9f9b7c12da536ae26dde4b3a50cb

Contents?: true

Size: 1.25 KB

Versions: 5

Compression:

Stored size: 1.25 KB

Contents

module Fog
  module Ovirt
    class Compute
      class V4
        class Real
          # rubocop:disable Metrics/AbcSize
          def add_interface(id, options = {})
            raise ArgumentError, "instance id is a required parameter" unless id
            vm = client.system_service.vms_service.vm_service(id)
            nics_service = vm.nics_service
            options = options.dup
            options = convert_string_to_bool(options)
            if options[:network].present?
              network = client.system_service.networks_service.network_service(options[:network]).get

              profiles = client.follow_link(network.vnic_profiles)

              profile = profiles.detect { |x| x.name == network.name }

              profile ||= profiles.min_by(&:name)

              options.delete(:network)
              options[:vnic_profile] = { :id => profile.id }
            end

            interface = OvirtSDK4::Nic.new(options)
            nics_service.add(interface)
          end
          # rubocop:enable Metrics/AbcSize
        end

        class Mock
          def add_interface(id, _options = {})
            raise ArgumentError, "instance id is a required parameter" unless id
            true
          end
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
fog-ovirt-1.2.4 lib/fog/ovirt/requests/compute/v4/add_interface.rb
fog-ovirt-1.2.3 lib/fog/ovirt/requests/compute/v4/add_interface.rb
fog-ovirt-1.2.2 lib/fog/ovirt/requests/compute/v4/add_interface.rb
fog-ovirt-1.2.1 lib/fog/ovirt/requests/compute/v4/add_interface.rb
fog-ovirt-1.2.0 lib/fog/ovirt/requests/compute/v4/add_interface.rb