From f465a5f0d237323b381aedb1b5ae32f788e04a74 Mon Sep 17 00:00:00 2001 From: blam Date: Fri, 7 Feb 2020 15:33:31 +0100 Subject: [PATCH 1/2] feat(scaffolder): register with inventory service --- backend/Dockerfile | 1 + backend/scaffolder/app/server.go | 24 ++++++++++++++++++------ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/backend/Dockerfile b/backend/Dockerfile index 40b231027d..c1278d7302 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -32,4 +32,5 @@ CMD ["./service"] ### needs extra cookiecutter FROM default AS scaffolder RUN apt-get update && apt-get install -y python-pip +RUN apt-get install -y python-backports.functools-lru-cache RUN pip install cookiecutter==1.7.0 --index-url https://pypi.python.org/simple diff --git a/backend/scaffolder/app/server.go b/backend/scaffolder/app/server.go index 3be05cfc4a..9c4cb4bc0d 100644 --- a/backend/scaffolder/app/server.go +++ b/backend/scaffolder/app/server.go @@ -7,11 +7,11 @@ import ( identity "github.com/spotify/backstage/backend/proto/identity/v1" pb "github.com/spotify/backstage/backend/proto/scaffolder/v1" - // "google.golang.org/grpc" inventory "github.com/spotify/backstage/backend/proto/inventory/v1" "github.com/spotify/backstage/scaffolder/fs" "github.com/spotify/backstage/scaffolder/lib" "github.com/spotify/backstage/scaffolder/repository" + "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" "log" @@ -29,15 +29,16 @@ type Server struct { // NewServer creates a new server for with all the things func NewServer() *Server { - // conn, errc := grpc.Dial("http://inventory:50051") + conn, err := grpc.Dial("inventory:50051", grpc.WithInsecure()) - // if err != nil { - // log.Fatal("Cannot connect to inventory service") - // } + if err != nil { + log.Fatal("Cannot connect to inventory service") + } //inventory: inventory.NewInventoryClient(conn), return &Server{ - github: lib.NewGithubClient(), + github: lib.NewGithubClient(), + inventory: inventory.NewInventoryClient(conn), } } @@ -101,6 +102,17 @@ func (s *Server) Create(ctx context.Context, req *pb.CreateRequest) (*pb.CreateR return nil, status.Error(codes.Internal, fmt.Sprintf("Failed to push the repository to Github %s", err)) } + // notify the inventory service + _, err = s.inventory.CreateEntity(context.Background(), &inventory.CreateEntityRequest{ + Entity: &inventory.Entity{ + Uri: fmt.Sprintf("boss://service/%s", req.ComponentId), + }, + }) + + if err != nil { + return nil, status.Error(codes.Internal, fmt.Sprintf("Failed to register the entity in the inventory %s", err)) + } + return &pb.CreateReply{ ComponentId: req.ComponentId, }, nil From b73570dc5bc84814f6596cb843b91af3b220c1a9 Mon Sep 17 00:00:00 2001 From: blam Date: Fri, 7 Feb 2020 16:11:06 +0100 Subject: [PATCH 2/2] feat(scaffolder): Notify the entity service that things have been created --- backend/scaffolder/app/server.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/backend/scaffolder/app/server.go b/backend/scaffolder/app/server.go index 9c4cb4bc0d..eab414a596 100644 --- a/backend/scaffolder/app/server.go +++ b/backend/scaffolder/app/server.go @@ -35,7 +35,6 @@ func NewServer() *Server { log.Fatal("Cannot connect to inventory service") } - //inventory: inventory.NewInventoryClient(conn), return &Server{ github: lib.NewGithubClient(), inventory: inventory.NewInventoryClient(conn), @@ -103,7 +102,7 @@ func (s *Server) Create(ctx context.Context, req *pb.CreateRequest) (*pb.CreateR } // notify the inventory service - _, err = s.inventory.CreateEntity(context.Background(), &inventory.CreateEntityRequest{ + _, err = s.inventory.CreateEntity(ctx, &inventory.CreateEntityRequest{ Entity: &inventory.Entity{ Uri: fmt.Sprintf("boss://service/%s", req.ComponentId), },