Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -389,6 +389,88 @@ class ComputeNodeDescriptor(google.protobuf.message.Message):

global___ComputeNodeDescriptor = ComputeNodeDescriptor

@typing.final
class EnumerateActiveServicesRequest(google.protobuf.message.Message):
"""Message sent to enumerate the active (currently running) service instances."""

DESCRIPTOR: google.protobuf.descriptor.Descriptor

PROVIDED_INTERFACE_FIELD_NUMBER: builtins.int
SERVICE_CLASS_FIELD_NUMBER: builtins.int
provided_interface: builtins.str
"""Optional. The gRPC full name of the service interface that is needed. If empty,
information for all active services registered with the discovery service will be,
returned, unless the 'service_class' field has been specified.
"""
service_class: builtins.str
"""Optional. The "class" of the service that should be matched. If used in conjunction with
the 'provided_interface' field, the 'service_class' field will be used to filter the results
to only those services that match the provided interface and service class.
"""
def __init__(
self,
*,
provided_interface: builtins.str = ...,
service_class: builtins.str = ...,
) -> None: ...
def ClearField(self, field_name: typing.Literal["provided_interface", b"provided_interface", "service_class", b"service_class"]) -> None: ...

global___EnumerateActiveServicesRequest = EnumerateActiveServicesRequest

@typing.final
class ActiveServiceInformation(google.protobuf.message.Message):
"""Combines a service descriptor with its location to describe an active service.
Used in EnumerateActiveServicesResponse to represent a single active service instance.
"""

DESCRIPTOR: google.protobuf.descriptor.Descriptor

SERVICE_DESCRIPTOR_FIELD_NUMBER: builtins.int
SERVICE_LOCATION_FIELD_NUMBER: builtins.int
@property
def service_descriptor(self) -> global___ServiceDescriptor:
"""The description of the service."""

@property
def service_location(self) -> global___ServiceLocation:
"""The location of the service."""

def __init__(
self,
*,
service_descriptor: global___ServiceDescriptor | None = ...,
service_location: global___ServiceLocation | None = ...,
) -> None: ...
def HasField(self, field_name: typing.Literal["service_descriptor", b"service_descriptor", "service_location", b"service_location"]) -> builtins.bool: ...
def ClearField(self, field_name: typing.Literal["service_descriptor", b"service_descriptor", "service_location", b"service_location"]) -> None: ...

global___ActiveServiceInformation = ActiveServiceInformation

@typing.final
class EnumerateActiveServicesResponse(google.protobuf.message.Message):
"""Message returned from the EnumerateActiveServices method."""

DESCRIPTOR: google.protobuf.descriptor.Descriptor

ACTIVE_SERVICES_FIELD_NUMBER: builtins.int
@property
def active_services(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ActiveServiceInformation]:
"""The list of currently active service instances which implement the specified service interface.
This information is intended for diagnostic and informational purposes only.
To communicate with a service, use ResolveService or ResolveServiceWithInformation instead.
Unlike EnumerateServices, multiple entries may share the same service_class when multiple
versions of the same service are running side by side.
"""

def __init__(
self,
*,
active_services: collections.abc.Iterable[global___ActiveServiceInformation] | None = ...,
) -> None: ...
def ClearField(self, field_name: typing.Literal["active_services", b"active_services"]) -> None: ...

global___EnumerateActiveServicesResponse = EnumerateActiveServicesResponse

@typing.final
class EnumerateComputeNodesRequest(google.protobuf.message.Message):
"""Message sent to enumerate the compute nodes that have registered themselves in the current session."""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,11 @@ def __init__(self, channel):
request_serializer=ni_dot_measurementlink_dot_discovery_dot_v1_dot_discovery__service__pb2.EnumerateComputeNodesRequest.SerializeToString,
response_deserializer=ni_dot_measurementlink_dot_discovery_dot_v1_dot_discovery__service__pb2.EnumerateComputeNodesResponse.FromString,
)
self.EnumerateActiveServices = channel.unary_unary(
'/ni.measurementlink.discovery.v1.DiscoveryService/EnumerateActiveServices',
request_serializer=ni_dot_measurementlink_dot_discovery_dot_v1_dot_discovery__service__pb2.EnumerateActiveServicesRequest.SerializeToString,
response_deserializer=ni_dot_measurementlink_dot_discovery_dot_v1_dot_discovery__service__pb2.EnumerateActiveServicesResponse.FromString,
)


class DiscoveryServiceServicer(object):
Expand Down Expand Up @@ -123,6 +128,21 @@ def EnumerateComputeNodes(self, request, context):
context.set_details('Method not implemented!')
raise NotImplementedError('Method not implemented!')

def EnumerateActiveServices(self, request, context):
"""Enumerate all service instances that are currently active (running).
This RPC is intended for diagnostic and informational purposes, such as displaying the
status of registered services to a user. It should not be used to obtain a service location
for the purpose of communicating with that service; use ResolveService or
ResolveServiceWithInformation for that purpose.

Unlike EnumerateServices, this RPC returns individual active service instances rather than
collapsing multiple registered versions into a single ServiceDescriptor entry, allowing
callers to see each running instance independently when multiple versions are active side by side.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
context.set_details('Method not implemented!')
raise NotImplementedError('Method not implemented!')


def add_DiscoveryServiceServicer_to_server(servicer, server):
rpc_method_handlers = {
Expand Down Expand Up @@ -156,6 +176,11 @@ def add_DiscoveryServiceServicer_to_server(servicer, server):
request_deserializer=ni_dot_measurementlink_dot_discovery_dot_v1_dot_discovery__service__pb2.EnumerateComputeNodesRequest.FromString,
response_serializer=ni_dot_measurementlink_dot_discovery_dot_v1_dot_discovery__service__pb2.EnumerateComputeNodesResponse.SerializeToString,
),
'EnumerateActiveServices': grpc.unary_unary_rpc_method_handler(
servicer.EnumerateActiveServices,
request_deserializer=ni_dot_measurementlink_dot_discovery_dot_v1_dot_discovery__service__pb2.EnumerateActiveServicesRequest.FromString,
response_serializer=ni_dot_measurementlink_dot_discovery_dot_v1_dot_discovery__service__pb2.EnumerateActiveServicesResponse.SerializeToString,
),
}
generic_handler = grpc.method_handlers_generic_handler(
'ni.measurementlink.discovery.v1.DiscoveryService', rpc_method_handlers)
Expand Down Expand Up @@ -269,3 +294,20 @@ def EnumerateComputeNodes(request,
ni_dot_measurementlink_dot_discovery_dot_v1_dot_discovery__service__pb2.EnumerateComputeNodesResponse.FromString,
options, channel_credentials,
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

@staticmethod
def EnumerateActiveServices(request,
target,
options=(),
channel_credentials=None,
call_credentials=None,
insecure=False,
compression=None,
wait_for_ready=None,
timeout=None,
metadata=None):
return grpc.experimental.unary_unary(request, target, '/ni.measurementlink.discovery.v1.DiscoveryService/EnumerateActiveServices',
ni_dot_measurementlink_dot_discovery_dot_v1_dot_discovery__service__pb2.EnumerateActiveServicesRequest.SerializeToString,
ni_dot_measurementlink_dot_discovery_dot_v1_dot_discovery__service__pb2.EnumerateActiveServicesResponse.FromString,
options, channel_credentials,
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
Loading
Loading