Merge pull request #130 from thaJeztah/18.09_backport_fix_api_return_code

[18.09 backport] API: fix status code on conflicting service names
Upstream-commit: 42b58273f68c8240e25f1642e6add6435b894e87
Component: engine
This commit is contained in:
Andrew Hsu
2018-12-13 10:54:52 +00:00
committed by GitHub
4 changed files with 51 additions and 12 deletions
@@ -680,13 +680,14 @@ func (s *Server) CreateService(ctx context.Context, request *api.CreateServiceRe
return store.CreateService(tx, service)
})
if err != nil {
switch err {
case store.ErrNameConflict:
return nil, status.Errorf(codes.AlreadyExists, "service %s already exists", request.Spec.Annotations.Name)
case nil:
return &api.CreateServiceResponse{Service: service}, nil
default:
return nil, err
}
return &api.CreateServiceResponse{
Service: service,
}, nil
}
// GetService returns a Service given a ServiceID.
@@ -896,7 +897,12 @@ func (s *Server) ListServices(ctx context.Context, request *api.ListServicesRequ
}
})
if err != nil {
return nil, err
switch err {
case store.ErrInvalidFindBy:
return nil, status.Errorf(codes.InvalidArgument, err.Error())
default:
return nil, err
}
}
if request.Filters != nil {