class OvirtSDK4::NetworkService

Public Class Methods

new(connection, path) click to toggle source

Creates a new implementation of the service.

@param connection [Connection] The connection to be used by this service.

@param path [String] The relative path of this service, for example `vms/123/disks`.

@api private

# File lib/ovirtsdk4/services.rb, line 14982
def initialize(connection, path)
  @connection = connection
  @path = path
end

Public Instance Methods

get(opts = {}) click to toggle source

Gets a logical network.

For example:

source

GET /ovirt-engine/api/networks/123


Will respond:

source,xml

<network href=“/ovirt-engine/api/networks/123” id=“123”>

<name>ovirtmgmt</name>
<description>Default Management Network</description>
<link href="/ovirt-engine/api/networks/123/permissions" rel="permissions"/>
<link href="/ovirt-engine/api/networks/123/vnicprofiles" rel="vnicprofiles"/>
<link href="/ovirt-engine/api/networks/123/networklabels" rel="networklabels"/>
<mtu>0</mtu>
<stp>false</stp>
<usages>
  <usage>vm</usage>
</usages>
<data_center href="/ovirt-engine/api/datacenters/456" id="456"/>

</network>


@param opts [Hash] Additional options.

@return [Network]

# File lib/ovirtsdk4/services.rb, line 15020
def get(opts = {})
  query = {}
  request = HttpRequest.new(method: :GET, url: @path, query: query)
  response = @connection.send(request)
  case response.code
  when 200
    begin
      reader = XmlReader.new(response.body)
      return NetworkReader.read_one(reader)
    ensure
      reader.close
    end
  else
    check_fault(response)
  end
end
network_labels_service() click to toggle source

Reference to the service that manages the network labels assigned to this network.

@return [NetworkLabelsService] A reference to `network_labels` service.

# File lib/ovirtsdk4/services.rb, line 15161
def network_labels_service
  NetworkLabelsService.new(@connection, "#{@path}/networklabels")
end
permissions_service() click to toggle source

Reference to the service that manages the permissions assigned to this network.

@return [AssignedPermissionsService] A reference to `permissions` service.

# File lib/ovirtsdk4/services.rb, line 15170
def permissions_service
  AssignedPermissionsService.new(@connection, "#{@path}/permissions")
end
remove(opts = {}) click to toggle source

Removes a logical network, or the association of a logical network to a data center.

For example, to remove the logical network `123` send a request like this:

source

DELETE /ovirt-engine/api/networks/123


Each network is bound exactly to one data center. So if we disassociate network with data center it has the same result as if we would just remove that network. However it might be more specific to say we're removing network `456` of data center `123`.

For example, to remove the association of network `456` to data center `123` send a request like this:

source

DELETE /ovirt-engine/api/datacenters/123/networks/456


@param opts [Hash] Additional options.

@option opts [Boolean] :async Indicates if the remove should be performed asynchronously.

# File lib/ovirtsdk4/services.rb, line 15061
def remove(opts = {})
  query = {}
  value = opts[:async]
  unless value.nil?
    value = Writer.render_boolean(value)
    query['async'] = value
  end
  request = HttpRequest.new(method: :DELETE, url: @path, query: query)
  response = @connection.send(request)
  unless response.code == 200
    check_fault(response)
  end
end
service(path) click to toggle source

Locates the service corresponding to the given path.

@param path [String] The path of the service.

@return [Service] A reference to the service.

# File lib/ovirtsdk4/services.rb, line 15190
def service(path)
  if path.nil? || path == ''
    return self
  end
  if path == 'networklabels'
    return network_labels_service
  end
  if path.start_with?('networklabels/')
    return network_labels_service.service(path[14..-1])
  end
  if path == 'permissions'
    return permissions_service
  end
  if path.start_with?('permissions/')
    return permissions_service.service(path[12..-1])
  end
  if path == 'vnicprofiles'
    return vnic_profiles_service
  end
  if path.start_with?('vnicprofiles/')
    return vnic_profiles_service.service(path[13..-1])
  end
  raise Error.new("The path \"#{path}\" doesn't correspond to any service")
end
to_s() click to toggle source

Returns an string representation of this service.

@return [String]

# File lib/ovirtsdk4/services.rb, line 15220
def to_s
  "#<#{NetworkService}:#{@path}>"
end
update(network, opts = {}) click to toggle source

Updates a logical network.

The `name`, `description`, `ip`, `vlan`, `stp` and `display` attributes can be updated.

For example, to update the description of the logical network `123` send a request like this:

source

PUT /ovirt-engine/api/networks/123


With a request body like this:

source,xml

<network>

<description>My updated description</description>

</network>


The maximum transmission unit of a network is set using a PUT request to specify the integer value of the `mtu` attribute.

For example, to set the maximum transmission unit send a request like this:

source

PUT /ovirt-engine/api/datacenters/123/networks/456


With a request body like this:

source,xml

<network>

<mtu>1500</mtu>

</network>


@param network [Network] The `network` to update. @param opts [Hash] Additional options.

@option opts [Boolean] :async Indicates if the update should be performed asynchronously.

@return [Network]

# File lib/ovirtsdk4/services.rb, line 15123
def update(network, opts = {})
  if network.is_a?(Hash)
    network = OvirtSDK4::Network.new(network)
  end
  query = {}
  value = opts[:async]
  unless value.nil?
    value = Writer.render_boolean(value)
    query['async'] = value
  end
  request = HttpRequest.new(method: :PUT, url: @path, query: query)
  begin
    writer = XmlWriter.new(nil, true)
    NetworkWriter.write_one(network, writer)
    request.body = writer.string
  ensure
    writer.close
  end
  response = @connection.send(request)
  case response.code
  when 200
    begin
      reader = XmlReader.new(response.body)
      return NetworkReader.read_one(reader)
    ensure
      reader.close
    end
    return result
  else
    check_fault(response)
  end
end
vnic_profiles_service() click to toggle source

Reference to the service that manages the vNIC profiles assigned to this network.

@return [AssignedVnicProfilesService] A reference to `vnic_profiles` service.

# File lib/ovirtsdk4/services.rb, line 15179
def vnic_profiles_service
  AssignedVnicProfilesService.new(@connection, "#{@path}/vnicprofiles")
end