diff --git a/backend/inventory/app/server.go b/backend/inventory/app/server.go index 21170e6611..02b0b06f68 100644 --- a/backend/inventory/app/server.go +++ b/backend/inventory/app/server.go @@ -26,19 +26,20 @@ func (s *Server) CreateEntity(ctx context.Context, req *pb.CreateEntityRequest) // GetEntity returns an inventory Entity with the selected facts func (s *Server) GetEntity(ctx context.Context, req *pb.GetEntityRequest) (*pb.GetEntityReply, error) { - numberOfIncludedFacts := len(req.GetIncludeFacts()) - var facts = make([]pb.Fact, numberOfIncludedFacts) - entityURI, err := s.Storage.GetEntity(req.GetEntity().GetUri()) + var facts []*pb.Fact + entityUri, err := s.Storage.GetEntity(req.GetEntity().GetUri()) if err != nil { return nil, status.Error(codes.Internal, fmt.Sprintf("could not get entity %v", err)) } for _, factName := range req.GetIncludeFacts() { - value, err := s.Storage.GetFact(entityURI, factName) - // TODO: handle errors - append(facts, pb.Fact{Name: factName, Value: value}) + value, err := s.Storage.GetFact(entityUri, factName) + if err != nil { + return nil, status.Error(codes.Internal, fmt.Sprintf("could not get fact %v for %v" , factName, entityUri)) + } + facts = append(facts, &pb.Fact{Name: factName, Value: value}) } - return &pb.GetEntityReply{Entity: &pb.Entity{Uri: entityURI}, Facts: facts}, nil + return &pb.GetEntityReply{Entity: &pb.Entity{Uri: entityUri}, Facts: facts}, nil } func (s *Server) SetFact(ctx context.Context, req *pb.SetFactRequest) (*pb.SetFactReply, error) { diff --git a/backend/inventory/app/server_test.go b/backend/inventory/app/server_test.go index 745b40ecc6..fd6311645e 100644 --- a/backend/inventory/app/server_test.go +++ b/backend/inventory/app/server_test.go @@ -104,8 +104,8 @@ func TestServerSetFactForNonExistingEntity(t *testing.T) { defer testStorage.Close() s := Server{Storage: testStorage.Storage} - entityURI := "boss://test/test" - req := &pb.SetFactRequest{EntityUri: entityURI, Name: "test-name", Value: "test-value"} + entityUri := "boss://test/test" + req := &pb.SetFactRequest{EntityUri: entityUri, Name: "test-name", Value: "test-value"} resp, err := s.SetFact(context.Background(), req) if err != nil { t.Errorf("ServerTest(SetFact) got unexpected error %v", err) diff --git a/backend/inventory/go.mod b/backend/inventory/go.mod index a7148725b1..7a2e505cf6 100644 --- a/backend/inventory/go.mod +++ b/backend/inventory/go.mod @@ -8,5 +8,8 @@ require ( github.com/golang/protobuf v1.3.3 github.com/spotify/backstage/proto v0.0.0-00010101000000-000000000000 go.etcd.io/bbolt v1.3.3 + golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3 // indirect + golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135 // indirect google.golang.org/grpc v1.27.0 + honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc // indirect )