Sha256: 0a44165c93bf55f2e78930d480e64f92fb5cbe7072ccd184eb15cbd1e89e1268

Contents?: true

Size: 1.2 KB

Versions: 9

Compression:

Stored size: 1.2 KB

Contents

module Fog
  module Compute
    class Ovirt
      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

            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

9 entries across 7 versions & 2 rubygems

Version Path
fog-ovirt-1.1.4 lib/fog/ovirt/requests/compute/v4/add_interface.rb
fog-ovirt-1.1.3 lib/fog/ovirt/requests/compute/v4/add_interface.rb
fog-ovirt-1.1.2 lib/fog/ovirt/requests/compute/v4/add_interface.rb
fog-ovirt-1.1.1 lib/fog/ovirt/requests/compute/v4/add_interface.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.5.0/gems/fog-ovirt-1.1.0/lib/fog/ovirt/requests/compute/v4/add_interface.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.3.0/gems/fog-ovirt-1.1.0/lib/fog/ovirt/requests/compute/v4/add_interface.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.4.0/gems/fog-ovirt-1.1.0/lib/fog/ovirt/requests/compute/v4/add_interface.rb
fog-ovirt-1.1.0 lib/fog/ovirt/requests/compute/v4/add_interface.rb
fog-ovirt-1.0.4 lib/fog/ovirt/requests/compute/v4/add_interface.rb