diff --git a/lib/python/flame/channel_manager.py b/lib/python/flame/channel_manager.py index b93818edc..753502302 100644 --- a/lib/python/flame/channel_manager.py +++ b/lib/python/flame/channel_manager.py @@ -23,10 +23,9 @@ from flame.backends import backend_provider from flame.channel import Channel -from flame.common.constants import DEFAULT_RUN_ASYNC_WAIT_TIME, BackendEvent +from flame.common.constants import BackendEvent from flame.common.util import background_thread_loop, run_async from flame.config import Config -from flame.discovery_clients import discovery_client_provider from flame.selectors import selector_provider logger = logging.getLogger(__name__) @@ -67,7 +66,6 @@ class ChannelManager(object): _backend = None # default backend in case there is no per-channel backend _backends = dict() # backend per channel - _discovery_client = None def __new__(cls): """Create a singleton instance.""" @@ -85,13 +83,8 @@ def __call__(self, config: Config): self._channels = {} - with background_thread_loop() as loop: - self._loop = loop - self._setup_backends() - self._discovery_client = discovery_client_provider.get(self._config.task) - atexit.register(self.cleanup) def _setup_backends(self): @@ -178,18 +171,7 @@ def leave(self, name): """Leave a channel.""" if not self.is_joined(name): return - - # TODO: reset_channel isn't implemented; the whole discovery module - # needs to be revisited. - coro = self._discovery_client.reset_channel( - self._job_id, name, self._role, self._backend.uid() - ) - - _, status = run_async(coro, self._loop, DEFAULT_RUN_ASYNC_WAIT_TIME) - if status: - del self._channels[name] - - return status + # TODO: reset_channel isn't implemented yet def get_by_tag(self, tag: str) -> Optional[Channel]: """Return a channel object that matches a given function tag.""" diff --git a/lib/python/flame/discovery/__init__.py b/lib/python/flame/discovery/__init__.py deleted file mode 100644 index c1a00f3d5..000000000 --- a/lib/python/flame/discovery/__init__.py +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright 2022 Cisco Systems, Inc. and its affiliates -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# SPDX-License-Identifier: Apache-2.0 - - diff --git a/lib/python/flame/discovery/local_client.py b/lib/python/flame/discovery/local_client.py deleted file mode 100644 index cc69a6a13..000000000 --- a/lib/python/flame/discovery/local_client.py +++ /dev/null @@ -1,124 +0,0 @@ -# Copyright 2022 Cisco Systems, Inc. and its affiliates -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# SPDX-License-Identifier: Apache-2.0 - - -import asyncio - -from ..common.comm import _recv_msg, _send_msg -from ..common.constants import UNIX_SOCKET_PATH -from ..proto import registry_msg_pb2 as msg_pb2 - - -class LocalDiscoveryClient(object): - def __init__(self): - self.reader = None - self.writer = None - self.req_seq = 0 - - def _parse_response(self, any): - if not any.Is(msg_pb2.Response.DESCRIPTOR): - return None - - resp = msg_pb2.Response() - any.Unpack(resp) - - if resp.status == msg_pb2.Response.OK and resp.req_seq == self.req_seq: - return resp - else: - print('unknown message') - return None - - async def register(self, job, channel, role, uid, endpoint): - self.req_seq += 1 - msg = msg_pb2.Set() - msg.req_seq = self.req_seq - msg.uid = uid - msg.endpoint = endpoint - - rec = msg_pb2.Record() - rec.job = job - rec.channel = channel - rec.role = role - - msg.record.append(rec) - - # send message - await _send_msg(self.writer, msg) - - # wait for response - any_msg = await _recv_msg(self.reader) - - resp = self._parse_response(any_msg) - - return True if resp else False - - async def get(self, job, channel): - self.req_seq += 1 - msg = msg_pb2.Get() - msg.req_seq = self.req_seq - - rec = msg_pb2.Record() - rec.job = job - rec.channel = channel - - msg.record.append(rec) - - # send message - await _send_msg(self.writer, msg) - - # wait for response - any_msg = await _recv_msg(self.reader) - - resp = self._parse_response(any_msg) - - if not resp: - return None - - result = [] - for role, uidep in resp.role_to_uidep.items(): - for idx in range(len(uidep.uid)): - result.append((role, uidep.uid[idx], uidep.endpoint[idx])) - - return result - - async def connect(self): - reader, writer = await asyncio.open_unix_connection( - f'{UNIX_SOCKET_PATH}' - ) - - self.reader = reader - self.writer = writer - - async def close(self): - if self.writer.is_closing(): - return - - self.writer.close() - await self.writer.wait_closed() - - -async def main(): - agent = LocalDiscoveryClient() - await agent.connect() - await agent.register('job1', 'ch1', 'role1', 'uid1', 'endpoint1') - await agent.register('job1', 'ch3', 'role1', 'uid1', 'endpoint1') - await agent.register('job1', 'ch3', 'role1', 'uid2', 'endpoint2') - result = await agent.get('job1', 'ch3') - print(result) - - -if __name__ == "__main__": - asyncio.run(main()) diff --git a/lib/python/flame/discovery/local_server.py b/lib/python/flame/discovery/local_server.py deleted file mode 100644 index d59ae9fde..000000000 --- a/lib/python/flame/discovery/local_server.py +++ /dev/null @@ -1,138 +0,0 @@ -# Copyright 2022 Cisco Systems, Inc. and its affiliates -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# SPDX-License-Identifier: Apache-2.0 - - -import asyncio - -from ..common.comm import _recv_msg, _send_msg -from ..common.constants import UNIX_SOCKET_PATH -from ..proto import registry_msg_pb2 as msg_pb2 - - -class JobState(object): - def __init__(self, job): - self.job = job - self.state = {} - - def update(self, channel, role, uid, endpoint): - if channel not in self.state: - self.state[channel] = {} - if role not in self.state[channel]: - self.state[channel][role] = {} - - self.state[channel][role][uid] = endpoint - - def get(self, channel): - if channel not in self.state: - return None - - return self.state[channel] - - -class LocalRegistry(object): - def __init__(self): - self._server = None - self.state = {} - - def _handle_get(self, msg): - result = None - for rec in msg.record: - if rec.job in self.state: - result = self.state[rec.job].get(rec.channel) - - resp = msg_pb2.Response() - - resp.req_seq = msg.req_seq - resp.status = msg_pb2.Response.OK - - for role, uidep in result.items(): - uideps = msg_pb2.UidEndpoints() - for uid, ep in uidep.items(): - uideps.uid.append(uid) - uideps.endpoint.append(ep) - - resp.role_to_uidep[role].CopyFrom(uideps) - - print(resp) - - return resp - - def _handle_set(self, msg): - for rec in msg.record: - if rec.job not in self.state: - self.state[rec.job] = JobState(rec.job) - - job_state = self.state[rec.job] - - job_state.update(rec.channel, rec.role, msg.uid, msg.endpoint) - - resp = msg_pb2.Response() - - resp.req_seq = msg.req_seq - resp.status = msg_pb2.Response.OK - - return resp - - async def _handle(self, reader, writer): - while not reader.at_eof(): - any_msg = await _recv_msg(reader) - if any_msg is None: - continue - - if any_msg.Is(msg_pb2.Get.DESCRIPTOR): - msg = msg_pb2.Get() - any_msg.Unpack(msg) - print('>>> Get', msg) - - resp = self._handle_get(msg) - await _send_msg(writer, resp) - - elif any_msg.Is(msg_pb2.Set.DESCRIPTOR): - msg = msg_pb2.Set() - any_msg.Unpack(msg) - print('>>> Set', msg) - - resp = self._handle_set(msg) - print('>>> response', resp) - await _send_msg(writer, resp) - - else: - print('unknown message') - - writer.close() - await writer.wait_closed() - - print('connection closed') - - async def start(self): - self._server = await asyncio.start_unix_server( - self._handle, path=UNIX_SOCKET_PATH - ) - - addr = self._server.sockets[0].getsockname() - print(f'Serving on {addr}') - - async with self._server: - await self._server.serve_forever() - - -async def main(): - registry = LocalRegistry() - await registry.start() - - -if __name__ == "__main__": - asyncio.run(main()) diff --git a/lib/python/flame/discovery_clients.py b/lib/python/flame/discovery_clients.py deleted file mode 100644 index 5a8bdd340..000000000 --- a/lib/python/flame/discovery_clients.py +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright 2022 Cisco Systems, Inc. and its affiliates -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# SPDX-License-Identifier: Apache-2.0 - -"""Factory for discovery clients.""" - -from .discovery.local_client import LocalDiscoveryClient -from .object_factory import ObjectFactory - - -class DiscoveryClientProvider(ObjectFactory): - """Discovery client provider.""" - - # - def get(self, client_name, **kargs): - """Return a discovery client object given a name.""" - return self.create(client_name, **kargs) - - -discovery_client_provider = DiscoveryClientProvider() -discovery_client_provider.register('local', LocalDiscoveryClient) diff --git a/lib/python/flame/proto/protobuf.sh b/lib/python/flame/proto/protobuf.sh index 64aa11d2e..8feadc7c1 100644 --- a/lib/python/flame/proto/protobuf.sh +++ b/lib/python/flame/proto/protobuf.sh @@ -15,8 +15,6 @@ # # SPDX-License-Identifier: Apache-2.0 - -protoc -I=./ --python_out=./ ./registry_msg.proto # To run the following command, grpcio-tools is needed. # if it's not installed, run "pip install grpcio-tools" python -m grpc_tools.protoc -I=./ --python_out=./ --grpc_python_out=./ ./backend_msg.proto diff --git a/lib/python/flame/proto/registry_msg_pb2.py b/lib/python/flame/proto/registry_msg_pb2.py deleted file mode 100644 index 603c17244..000000000 --- a/lib/python/flame/proto/registry_msg_pb2.py +++ /dev/null @@ -1,400 +0,0 @@ -# Copyright 2022 Cisco Systems, Inc. and its affiliates -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# SPDX-License-Identifier: Apache-2.0 - - -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: registry_msg.proto -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor.FileDescriptor( - name='registry_msg.proto', - package='registry', - syntax='proto3', - serialized_options=None, - create_key=_descriptor._internal_create_key, - serialized_pb=b'\n\x12registry_msg.proto\x12\x08registry\"4\n\x06Record\x12\x0b\n\x03job\x18\x01 \x01(\t\x12\x0f\n\x07\x63hannel\x18\x02 \x01(\t\x12\x0c\n\x04role\x18\x03 \x01(\t\"-\n\x0cUidEndpoints\x12\x0b\n\x03uid\x18\x01 \x03(\t\x12\x10\n\x08\x65ndpoint\x18\x02 \x03(\t\"8\n\x03Get\x12\x0f\n\x07req_seq\x18\x01 \x01(\r\x12 \n\x06record\x18\x02 \x03(\x0b\x32\x10.registry.Record\"W\n\x03Set\x12\x0f\n\x07req_seq\x18\x01 \x01(\r\x12\x0b\n\x03uid\x18\x02 \x01(\t\x12\x10\n\x08\x65ndpoint\x18\x03 \x01(\t\x12 \n\x06record\x18\x04 \x03(\x0b\x32\x10.registry.Record\"\x94\x02\n\x08Response\x12)\n\x06status\x18\x01 \x01(\x0e\x32\x19.registry.Response.Status\x12\x0f\n\x07req_seq\x18\x02 \x01(\r\x12:\n\rrole_to_uidep\x18\x03 \x03(\x0b\x32#.registry.Response.RoleToUidepEntry\x1aJ\n\x10RoleToUidepEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.registry.UidEndpoints:\x02\x38\x01\"D\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11MALFORMED_MESSAGE\x10\x01\x12\x0b\n\x07TIMEOUT\x10\x02\x12\x0e\n\nWRONG_TYPE\x10\x03\x62\x06proto3' -) - - - -_RESPONSE_STATUS = _descriptor.EnumDescriptor( - name='Status', - full_name='registry.Response.Status', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='OK', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='MALFORMED_MESSAGE', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='TIMEOUT', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='WRONG_TYPE', index=3, number=3, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=489, - serialized_end=557, -) -_sym_db.RegisterEnumDescriptor(_RESPONSE_STATUS) - - -_RECORD = _descriptor.Descriptor( - name='Record', - full_name='registry.Record', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='job', full_name='registry.Record.job', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='channel', full_name='registry.Record.channel', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='role', full_name='registry.Record.role', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=32, - serialized_end=84, -) - - -_UIDENDPOINTS = _descriptor.Descriptor( - name='UidEndpoints', - full_name='registry.UidEndpoints', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='uid', full_name='registry.UidEndpoints.uid', index=0, - number=1, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='endpoint', full_name='registry.UidEndpoints.endpoint', index=1, - number=2, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=86, - serialized_end=131, -) - - -_GET = _descriptor.Descriptor( - name='Get', - full_name='registry.Get', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='req_seq', full_name='registry.Get.req_seq', index=0, - number=1, type=13, cpp_type=3, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='record', full_name='registry.Get.record', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=133, - serialized_end=189, -) - - -_SET = _descriptor.Descriptor( - name='Set', - full_name='registry.Set', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='req_seq', full_name='registry.Set.req_seq', index=0, - number=1, type=13, cpp_type=3, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='uid', full_name='registry.Set.uid', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='endpoint', full_name='registry.Set.endpoint', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='record', full_name='registry.Set.record', index=3, - number=4, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=191, - serialized_end=278, -) - - -_RESPONSE_ROLETOUIDEPENTRY = _descriptor.Descriptor( - name='RoleToUidepEntry', - full_name='registry.Response.RoleToUidepEntry', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='key', full_name='registry.Response.RoleToUidepEntry.key', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='value', full_name='registry.Response.RoleToUidepEntry.value', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=b'8\001', - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=413, - serialized_end=487, -) - -_RESPONSE = _descriptor.Descriptor( - name='Response', - full_name='registry.Response', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='status', full_name='registry.Response.status', index=0, - number=1, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='req_seq', full_name='registry.Response.req_seq', index=1, - number=2, type=13, cpp_type=3, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='role_to_uidep', full_name='registry.Response.role_to_uidep', index=2, - number=3, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[_RESPONSE_ROLETOUIDEPENTRY, ], - enum_types=[ - _RESPONSE_STATUS, - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=281, - serialized_end=557, -) - -_GET.fields_by_name['record'].message_type = _RECORD -_SET.fields_by_name['record'].message_type = _RECORD -_RESPONSE_ROLETOUIDEPENTRY.fields_by_name['value'].message_type = _UIDENDPOINTS -_RESPONSE_ROLETOUIDEPENTRY.containing_type = _RESPONSE -_RESPONSE.fields_by_name['status'].enum_type = _RESPONSE_STATUS -_RESPONSE.fields_by_name['role_to_uidep'].message_type = _RESPONSE_ROLETOUIDEPENTRY -_RESPONSE_STATUS.containing_type = _RESPONSE -DESCRIPTOR.message_types_by_name['Record'] = _RECORD -DESCRIPTOR.message_types_by_name['UidEndpoints'] = _UIDENDPOINTS -DESCRIPTOR.message_types_by_name['Get'] = _GET -DESCRIPTOR.message_types_by_name['Set'] = _SET -DESCRIPTOR.message_types_by_name['Response'] = _RESPONSE -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -Record = _reflection.GeneratedProtocolMessageType('Record', (_message.Message,), { - 'DESCRIPTOR' : _RECORD, - '__module__' : 'registry_msg_pb2' - # @@protoc_insertion_point(class_scope:registry.Record) - }) -_sym_db.RegisterMessage(Record) - -UidEndpoints = _reflection.GeneratedProtocolMessageType('UidEndpoints', (_message.Message,), { - 'DESCRIPTOR' : _UIDENDPOINTS, - '__module__' : 'registry_msg_pb2' - # @@protoc_insertion_point(class_scope:registry.UidEndpoints) - }) -_sym_db.RegisterMessage(UidEndpoints) - -Get = _reflection.GeneratedProtocolMessageType('Get', (_message.Message,), { - 'DESCRIPTOR' : _GET, - '__module__' : 'registry_msg_pb2' - # @@protoc_insertion_point(class_scope:registry.Get) - }) -_sym_db.RegisterMessage(Get) - -Set = _reflection.GeneratedProtocolMessageType('Set', (_message.Message,), { - 'DESCRIPTOR' : _SET, - '__module__' : 'registry_msg_pb2' - # @@protoc_insertion_point(class_scope:registry.Set) - }) -_sym_db.RegisterMessage(Set) - -Response = _reflection.GeneratedProtocolMessageType('Response', (_message.Message,), { - - 'RoleToUidepEntry' : _reflection.GeneratedProtocolMessageType('RoleToUidepEntry', (_message.Message,), { - 'DESCRIPTOR' : _RESPONSE_ROLETOUIDEPENTRY, - '__module__' : 'registry_msg_pb2' - # @@protoc_insertion_point(class_scope:registry.Response.RoleToUidepEntry) - }) - , - 'DESCRIPTOR' : _RESPONSE, - '__module__' : 'registry_msg_pb2' - # @@protoc_insertion_point(class_scope:registry.Response) - }) -_sym_db.RegisterMessage(Response) -_sym_db.RegisterMessage(Response.RoleToUidepEntry) - - -_RESPONSE_ROLETOUIDEPENTRY._options = None -# @@protoc_insertion_point(module_scope)