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 4016 def initialize(connection, path) @connection = connection @path = path end
Locates the `affinity_groups` service.
@return [AffinityGroupsService] A reference to `affinity_groups` service.
# File lib/ovirtsdk4/services.rb, line 4130 def affinity_groups_service return AffinityGroupsService.new(@connection, "#{@path}/affinitygroups") end
Locates the `cpu_profiles` service.
@return [AssignedCpuProfilesService] A reference to `cpu_profiles` service.
# File lib/ovirtsdk4/services.rb, line 4138 def cpu_profiles_service return AssignedCpuProfilesService.new(@connection, "#{@path}/cpuprofiles") end
Returns the representation of the object managed by this service.
@param opts [Hash] Additional options.
@option opts [Boolean] :filter Indicates if the results should be filtered according to the permissions of the user.
@return [Cluster]
# File lib/ovirtsdk4/services.rb, line 4030 def get(opts = {}) query = {} value = opts[:filter] unless value.nil? value = Writer.render_boolean(value) query['filter'] = value end request = Request.new(:method => :GET, :path => @path, :query => query) response = @connection.send(request) case response.code when 200 begin reader = XmlReader.new(response.body) return ClusterReader.read_one(reader) ensure reader.close end else check_fault(response) end end
Locates the `gluster_hooks` service.
@return [GlusterHooksService] A reference to `gluster_hooks` service.
# File lib/ovirtsdk4/services.rb, line 4146 def gluster_hooks_service return GlusterHooksService.new(@connection, "#{@path}/glusterhooks") end
Locates the `gluster_volumes` service.
@return [GlusterVolumesService] A reference to `gluster_volumes` service.
# File lib/ovirtsdk4/services.rb, line 4154 def gluster_volumes_service return GlusterVolumesService.new(@connection, "#{@path}/glustervolumes") end
A sub collection with all the supported network filters for this cluster.
@return [NetworkFiltersService] A reference to `network_filters` service.
# File lib/ovirtsdk4/services.rb, line 4162 def network_filters_service return NetworkFiltersService.new(@connection, "#{@path}/networkfilters") end
Locates the `networks` service.
@return [AssignedNetworksService] A reference to `networks` service.
# File lib/ovirtsdk4/services.rb, line 4170 def networks_service return AssignedNetworksService.new(@connection, "#{@path}/networks") end
Locates the `permissions` service.
@return [AssignedPermissionsService] A reference to `permissions` service.
# File lib/ovirtsdk4/services.rb, line 4178 def permissions_service return AssignedPermissionsService.new(@connection, "#{@path}/permissions") end
Deletes the object managed by this service.
@param opts [Hash] Additional options.
@option opts [Boolean] :async Indicates if the remove should be performed asynchronously.
# File lib/ovirtsdk4/services.rb, line 4059 def remove(opts = {}) query = {} value = opts[:async] unless value.nil? value = Writer.render_boolean(value) query['async'] = value end request = Request.new(:method => :DELETE, :path => @path, :query => query) response = @connection.send(request) unless response.code == 200 check_fault(response) end end
Executes the `reset_emulated_machine` method.
# File lib/ovirtsdk4/services.rb, line 4076 def reset_emulated_machine(opts = {}) action = Action.new(opts) writer = XmlWriter.new(nil, true) ActionWriter.write_one(action, writer) body = writer.string writer.close request = Request.new({ :method => :POST, :path => "#{@path}/resetemulatedmachine", :body => body, }) response = @connection.send(request) case response.code when 200 action = check_action(response) else 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 4189 def service(path) if path.nil? || path == '' return self end if path == 'affinitygroups' return affinity_groups_service end if path.start_with?('affinitygroups/') return affinity_groups_service.service(path[15..-1]) end if path == 'cpuprofiles' return cpu_profiles_service end if path.start_with?('cpuprofiles/') return cpu_profiles_service.service(path[12..-1]) end if path == 'glusterhooks' return gluster_hooks_service end if path.start_with?('glusterhooks/') return gluster_hooks_service.service(path[13..-1]) end if path == 'glustervolumes' return gluster_volumes_service end if path.start_with?('glustervolumes/') return gluster_volumes_service.service(path[15..-1]) end if path == 'networkfilters' return network_filters_service end if path.start_with?('networkfilters/') return network_filters_service.service(path[15..-1]) end if path == 'networks' return networks_service end if path.start_with?('networks/') return networks_service.service(path[9..-1]) end if path == 'permissions' return permissions_service end if path.start_with?('permissions/') return permissions_service.service(path[12..-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 4243 def to_s return "#<#{ClusterService}:#{@path}>" end
Updates the object managed by this service.
# File lib/ovirtsdk4/services.rb, line 4099 def update(cluster) if cluster.is_a?(Hash) cluster = OvirtSDK4::Cluster.new(cluster) end request = Request.new(:method => :PUT, :path => @path) begin writer = XmlWriter.new(nil, true) ClusterWriter.write_one(cluster, 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 ClusterReader.read_one(reader) ensure reader.close end return result else check_fault(response) end end