From 5c950b8c8217ff439952d2bbb0bb38956cd1b8fd Mon Sep 17 00:00:00 2001 From: Damien Whitten Date: Wed, 22 May 2024 17:52:26 -0700 Subject: [PATCH] Force load of deployer topic --- cmd/server/server.go | 10 +++++----- dynamictype/registry.go | 8 +++++++- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/cmd/server/server.go b/cmd/server/server.go index ce7eacb..1f87124 100644 --- a/cmd/server/server.go +++ b/cmd/server/server.go @@ -23,6 +23,11 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/reflection" "gopkg.daemonl.com/envconf" + + // Forces the Deployer topic to be in the global registry for later lookup. + // This should be replaced with a dynamic lookup when we build one in + // pentops + _ "github.com/pentops/o5-deploy-aws/gen/o5/deployer/v1/deployer_tpb" ) var Version string @@ -130,11 +135,6 @@ func runServe(ctx context.Context) error { return err } - err = types.LoadProtoFromFile("./pentops-o5.binpb") - if err != nil { - return err - } - db, err := openDatabase(ctx) if err != nil { return err diff --git a/dynamictype/registry.go b/dynamictype/registry.go index e1f3c24..d666bc0 100644 --- a/dynamictype/registry.go +++ b/dynamictype/registry.go @@ -59,9 +59,15 @@ func NewTypeRegistry() *TypeRegistry { } func (r *TypeRegistry) FindMessageByName(field protoreflect.FullName) (protoreflect.MessageType, error) { + var descriptor protoreflect.MessageDescriptor descriptor, ok := r.messages[string(field)] + if !ok { - return nil, fmt.Errorf("couldn't find message by name: %s", field) + td, err := protoregistry.GlobalTypes.FindMessageByName(field) + if err != nil { + return nil, fmt.Errorf("couldn't find message by name: %s", field) + } + descriptor = td.Descriptor() } msg := dynamicpb.NewMessageType(descriptor)