Skip to content
Snippets Groups Projects
Select Git revision
  • 8436a409d65e97933d3eeb384dee2d13a78d7ca4
  • master default protected
  • bugfix/fix-return-var-in-find
  • feature/upgrade2
  • v1.10.0
  • v1.8.2
  • v1.8.1
  • v1.8.0
  • 1.7.3
  • v1.7.1
  • v1.6.1
  • v1.6.0
  • v1.5.0
  • v1.4.1
  • v1.3.0
  • v1.2.2
  • v1.2.1
  • v1.2.0
  • v1.0.1
  • v1.0.0
  • v0.0.23
  • v0.0.17
  • v0.0.10
  • v0.0.9
24 results

spaces.py

Blame
  • server.py 2.59 KiB
    import grpc
    
    from concurrent import futures
    from perxis.collections import collections_pb2_grpc
    from perxis.environments import environments_pb2_grpc
    from perxis.roles import roles_pb2_grpc
    from perxis.clients import clients_pb2_grpc
    from perxis.extensions import extension_pb2_grpc, manager_pb2_grpc, manager_pb2
    from perxis.interceptors import header_adder_interceptor
    
    from servicer import Servicer
    from constants.extension import get_extension_descriptor
    
    
    def main():
        my_extension_descriptor = get_extension_descriptor(host="demo-ext-backend:50051")
    
        interceptor = header_adder_interceptor(
            'x-perxis-access', 'system'
        )
        with grpc.insecure_channel("extension-manager:9030") as extensions_manager_channel:
            intercept_channel_extensions_manager_channel = grpc.intercept_channel(extensions_manager_channel, interceptor)
    
            ext_manager_stub = manager_pb2_grpc.ExtensionManagerStub(intercept_channel_extensions_manager_channel)
    
            registered_extensions: manager_pb2.ListExtensionsResponse = ext_manager_stub.ListExtensions(manager_pb2.ListExtensionsRequest())
    
            for ext in registered_extensions.extensions:
                if ext.extension == my_extension_descriptor.extension:
                    if ext.version != my_extension_descriptor.version:
                        ext_manager_stub.UnregisterExtensions(
                            manager_pb2.UnregisterExtensionsRequest(
                                extensions=[my_extension_descriptor]
                            )
                        )
    
            ext_manager_stub.RegisterExtensions(manager_pb2.RegisterExtensionsRequest(
                extensions=[my_extension_descriptor]
            ))
    
            with grpc.insecure_channel("content:9020") as content_channel:
                intercepted_content_channel = grpc.intercept_channel(content_channel, interceptor)
    
                collections_stub = collections_pb2_grpc.CollectionsStub(intercepted_content_channel)
                roles_stub = roles_pb2_grpc.RolesStub(intercepted_content_channel)
                clients_stub = clients_pb2_grpc.ClientsStub(intercepted_content_channel)
                environments_stub = environments_pb2_grpc.EnvironmentsStub(intercepted_content_channel)
    
                server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
                extension_pb2_grpc.add_ExtensionServicer_to_server(
                    Servicer(
                        collections_stub, environments_stub, roles_stub, clients_stub
                    ), server
                )
                server.add_insecure_port("[::]:50051")
                server.start()
                server.wait_for_termination()
    
    
    if __name__ == "__main__":
        main()