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
Gets a logical network.
For example:
GET /ovirt-engine/api/networks/123
Will respond:
<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
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
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
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:
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:
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
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
Returns an string representation of this service.
@return [String]
# File lib/ovirtsdk4/services.rb, line 15220 def to_s "#<#{NetworkService}:#{@path}>" end
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:
PUT /ovirt-engine/api/networks/123
With a request body like this:
<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:
PUT /ovirt-engine/api/datacenters/123/networks/456
With a request body like this:
<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
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