From 1d49ab27e1e3d5990584cb8e7205d0d281376f54 Mon Sep 17 00:00:00 2001 From: Shawn Hurley Date: Mon, 22 Apr 2024 23:09:19 -0400 Subject: [PATCH] fixup Signed-off-by: Shawn Hurley --- .github/workflows/demo-testing.yml | 4 ++-- provider/grpc/provider.go | 31 ++++++++++++++++++++++++++---- 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/.github/workflows/demo-testing.yml b/.github/workflows/demo-testing.yml index 110f6081..ad41da92 100644 --- a/.github/workflows/demo-testing.yml +++ b/.github/workflows/demo-testing.yml @@ -52,8 +52,8 @@ jobs: build_image yq-external-provider yq-external-provider build_image generic-external-provider generic-external-provider popd - build_image . analyzer-lsp - + podman build -t quay.io/konveyor/analyzer-lsp:latest -f Dockerfile . + # run the demo in a podman pod - name: run demo image diff --git a/provider/grpc/provider.go b/provider/grpc/provider.go index 12741e88..99e86679 100644 --- a/provider/grpc/provider.go +++ b/provider/grpc/provider.go @@ -7,6 +7,7 @@ import ( "io" "log" "os/exec" + "time" "github.com/go-logr/logr" reflectClient "github.com/jhump/protoreflect/grpcreflect" @@ -41,10 +42,11 @@ func NewGRPCClient(config provider.Config, log logr.Logger) (provider.InternalPr } refCltCtx, cancel := context.WithCancel(context.Background()) refClt := reflectClient.NewClientAuto(refCltCtx, conn) + defer cancel() - // TODO: reasonable retry here - services, err := refClt.ListServices() + services, err := checkServicesRunning(refClt, log) if err != nil { + fmt.Printf("%#v", err) return nil, err } foundCodeSnip := false @@ -58,8 +60,7 @@ func NewGRPCClient(config provider.Config, log logr.Logger) (provider.InternalPr foundDepResolve = true } } - // Close the reflection service connection - cancel() + fmt.Printf("foundCodeSnip: %#v --- foundDep: %v", foundCodeSnip, foundDepResolve) // Always need these provierClient := pb.NewProviderServiceClient(conn) gp := grpcProvider{ @@ -132,6 +133,28 @@ func NewGRPCClient(config provider.Config, log logr.Logger) (provider.InternalPr // } } +func checkServicesRunning(refClt *reflectClient.Client, log logr.Logger) ([]string, error) { + fmt.Printf("here") + for { + select { + default: + fmt.Printf("here") + services, err := refClt.ListServices() + fmt.Printf("services: %#v -- err: %#v", services, err) + if err == nil && len(services) != 0 { + return services, nil + } + if err != nil { + log.Info("error for list services: ", "error", err) + } + time.Sleep(3 * time.Second) + fmt.Printf("here") + case <-time.After(time.Second * 30): + return nil, fmt.Errorf("no services found") + } + } +} + func (g *grpcProvider) ProviderInit(ctx context.Context) error { for _, c := range g.config.InitConfig { s, err := g.Init(ctx, g.log, c)