This is an automated email from the ASF dual-hosted git repository. littlecui pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-service-center.git
The following commit(s) were added to refs/heads/master by this push: new 2b4b698 decouple package, provide unified API for resource layer (#1048) 2b4b698 is described below commit 2b4b698925347adf4a811b347519bb97eadfed8c Author: Shawn <xiaoliang.t...@gmail.com> AuthorDate: Fri Jun 11 17:28:47 2021 +0800 decouple package, provide unified API for resource layer (#1048) --- datasource/etcd/engine.go | 10 +- datasource/mongo/engine.go | 4 +- datasource/ms.go | 5 + datasource/schema_test.go | 9 +- datasource/service_test.go | 25 +- pkg/proto/service_ex.go | 19 -- server/api.go | 5 +- server/core/microservice.go | 1 - server/plugin/auth/buildin/parser_test.go | 6 +- server/plugin/quota/buildin/buildin_test.go | 6 +- server/plugin/tracing/pzipkin/common_test.go | 3 +- server/rest/controller/v4/instance_controller.go | 23 +- server/rest/controller/v4/instance_watcher.go | 8 +- server/rest/controller/v4/main_controller.go | 5 +- server/rest/govern/service_test.go | 4 +- server/service/{ => disco}/dependency.go | 2 +- server/service/{ => disco}/dependency_test.go | 16 +- server/service/{ => disco}/instance.go | 27 +- server/service/{ => disco}/instance_test.go | 302 +++++++++++---------- server/service/disco/metadata_dao.go | 12 + server/service/{ => disco}/microservice.go | 17 +- server/service/{ => disco}/microservice_test.go | 8 +- server/service/{ => disco}/rule.go | 2 +- server/service/{ => disco}/rule_test.go | 20 +- server/service/{ => disco}/schema.go | 2 +- server/service/{ => disco}/schema_test.go | 15 +- server/service/{ => disco}/service.go | 18 +- server/service/{ => disco}/service_suite_test.go | 8 +- server/service/{ => disco}/tag.go | 2 +- server/service/{ => disco}/tag_test.go | 14 +- server/service/{ => disco}/watch.go | 41 +-- server/service/{ => disco}/watch_test.go | 16 +- .../hbws => service/heartbeat}/websocket.go | 34 ++- .../hbws => service/heartbeat}/websocket_test.go | 7 +- .../rbac/{account_dao.go => account_service.go} | 0 ...account_dao_test.go => account_service_test.go} | 0 server/service/rbac/{role.go => init.go} | 0 .../service/rbac/{role_dao.go => role_service.go} | 0 .../{role_dao_test.go => role_service_test.go} | 0 test/test.go | 4 +- 40 files changed, 355 insertions(+), 345 deletions(-) diff --git a/datasource/etcd/engine.go b/datasource/etcd/engine.go index 01f11be..c41b916 100644 --- a/datasource/etcd/engine.go +++ b/datasource/etcd/engine.go @@ -27,6 +27,8 @@ import ( "strings" "time" + discosvc "github.com/apache/servicecomb-service-center/server/service/disco" + "github.com/apache/servicecomb-service-center/datasource/etcd/client" "github.com/apache/servicecomb-service-center/datasource/etcd/mux" "github.com/apache/servicecomb-service-center/server/config" @@ -100,7 +102,7 @@ func (sm *SCManager) registerService(ctx context.Context) error { func (sm *SCManager) registerInstance(ctx context.Context) error { core.Instance.InstanceId = "" core.Instance.ServiceId = core.Service.ServiceId - respI, err := core.InstanceAPI.Register(ctx, core.RegisterInstanceRequest()) + respI, err := discosvc.RegisterInstance(ctx, core.RegisterInstanceRequest()) if err != nil { log.Error("register failed", err) return err @@ -118,7 +120,7 @@ func (sm *SCManager) registerInstance(ctx context.Context) error { func (sm *SCManager) selfHeartBeat(pCtx context.Context) error { ctx := core.AddDefaultContextValue(pCtx) - respI, err := core.InstanceAPI.Heartbeat(ctx, core.HeartbeatRequest()) + respI, err := discosvc.Heartbeat(ctx, core.HeartbeatRequest()) if err != nil { log.Error("send heartbeat failed", err) return err @@ -161,7 +163,7 @@ func (sm *SCManager) SelfUnregister(pCtx context.Context) error { return nil } ctx := core.AddDefaultContextValue(pCtx) - respI, err := core.InstanceAPI.Unregister(ctx, core.UnregisterInstanceRequest()) + respI, err := discosvc.UnregisterInstance(ctx, core.UnregisterInstanceRequest()) if err != nil { log.Error("unregister failed", err) return err @@ -255,7 +257,7 @@ func shouldClear(ctx context.Context, timeLimitStamp string, svc *pb.MicroServic ConsumerServiceId: svc.ServiceId, ProviderServiceId: svc.ServiceId, } - getInstsResp, err := core.InstanceAPI.GetInstances(ctx, getInstsReq) + getInstsResp, err := discosvc.GetInstances(ctx, getInstsReq) if err != nil { return false, err } diff --git a/datasource/mongo/engine.go b/datasource/mongo/engine.go index 8612229..4c48239 100644 --- a/datasource/mongo/engine.go +++ b/datasource/mongo/engine.go @@ -24,6 +24,8 @@ import ( "strings" "time" + discosvc "github.com/apache/servicecomb-service-center/server/service/disco" + pb "github.com/go-chassis/cari/discovery" "github.com/apache/servicecomb-service-center/datasource" @@ -198,7 +200,7 @@ func (ds *SCManager) registryInstance(pCtx context.Context) error { func (ds *SCManager) selfHeartBeat(pCtx context.Context) error { ctx := core.AddDefaultContextValue(pCtx) - respI, err := core.InstanceAPI.Heartbeat(ctx, core.HeartbeatRequest()) + respI, err := discosvc.Heartbeat(ctx, core.HeartbeatRequest()) if err != nil { log.Error("send heartbeat failed", err) return err diff --git a/datasource/ms.go b/datasource/ms.go index 7e63ee3..184a2e2 100644 --- a/datasource/ms.go +++ b/datasource/ms.go @@ -27,6 +27,11 @@ import ( var ErrServiceNotExists = errors.New("service does not exist") var ErrInstanceNotExists = errors.New("instance does not exist") +const ( + ExistTypeMicroservice = "microservice" + ExistTypeSchema = "schema" +) + // Attention: request validation must be finished before the following interface being invoked!!! // MetadataManager contains the CRUD of cache metadata type MetadataManager interface { diff --git a/datasource/schema_test.go b/datasource/schema_test.go index b61df0f..8d3cc3a 100644 --- a/datasource/schema_test.go +++ b/datasource/schema_test.go @@ -26,7 +26,6 @@ import ( "github.com/apache/servicecomb-service-center/datasource/mongo" "github.com/apache/servicecomb-service-center/pkg/log" "github.com/apache/servicecomb-service-center/server/plugin/quota" - "github.com/apache/servicecomb-service-center/server/service" pb "github.com/go-chassis/cari/discovery" "github.com/go-chassis/go-archaius" "github.com/stretchr/testify/assert" @@ -343,7 +342,7 @@ func TestSchema_Create(t *testing.T) { assert.NoError(t, err) assert.Equal(t, pb.ResponseSuccess, respModifySchemas.Response.GetCode()) respExist, err := datasource.GetMetadataManager().ExistSchema(getContext(), &pb.GetExistenceRequest{ - Type: service.ExistTypeSchema, + Type: datasource.ExistTypeSchema, ServiceId: serviceIdPro2, SchemaId: "first_schemaId_service_ms", }) @@ -793,7 +792,7 @@ func TestSchema_Exist(t *testing.T) { t.Run("check exists", func(t *testing.T) { log.Info("check schema exist, should pass") resp, err := datasource.GetMetadataManager().ExistSchema(getContext(), &pb.GetExistenceRequest{ - Type: service.ExistTypeSchema, + Type: datasource.ExistTypeSchema, ServiceId: serviceId, SchemaId: "com.huawei.test.ms", }) @@ -802,7 +801,7 @@ func TestSchema_Exist(t *testing.T) { assert.Equal(t, "summary_ms", resp.Summary) resp, err = datasource.GetMetadataManager().ExistSchema(getContext(), &pb.GetExistenceRequest{ - Type: service.ExistTypeSchema, + Type: datasource.ExistTypeSchema, ServiceId: serviceId, SchemaId: "com.huawei.test.ms", AppId: "()", @@ -813,7 +812,7 @@ func TestSchema_Exist(t *testing.T) { assert.Equal(t, pb.ResponseSuccess, resp.Response.GetCode()) resp, err = datasource.GetMetadataManager().ExistSchema(getContext(), &pb.GetExistenceRequest{ - Type: service.ExistTypeSchema, + Type: datasource.ExistTypeSchema, ServiceId: serviceId, SchemaId: "com.huawei.test.no.summary.ms", }) diff --git a/datasource/service_test.go b/datasource/service_test.go index 34c94f5..5586471 100644 --- a/datasource/service_test.go +++ b/datasource/service_test.go @@ -28,7 +28,6 @@ import ( "github.com/apache/servicecomb-service-center/pkg/log" "github.com/apache/servicecomb-service-center/pkg/util" "github.com/apache/servicecomb-service-center/server/plugin/quota" - "github.com/apache/servicecomb-service-center/server/service" pb "github.com/go-chassis/cari/discovery" "github.com/stretchr/testify/assert" ) @@ -332,7 +331,7 @@ func TestService_Exist(t *testing.T) { t.Run("check exist when service does not exist", func(t *testing.T) { log.Info("check by querying a not exist serviceName") resp, err := datasource.GetMetadataManager().ExistService(getContext(), &pb.GetExistenceRequest{ - Type: service.ExistTypeMicroservice, + Type: datasource.ExistTypeMicroservice, AppId: "exist_appId", ServiceName: "notExistService_service_ms", Version: "1.0.0", @@ -342,7 +341,7 @@ func TestService_Exist(t *testing.T) { log.Info("check by querying a not exist env") resp, err = datasource.GetMetadataManager().ExistService(getContext(), &pb.GetExistenceRequest{ - Type: service.ExistTypeMicroservice, + Type: datasource.ExistTypeMicroservice, Environment: pb.ENV_TEST, AppId: "exist_appId_service_ms", ServiceName: "exist_service_service_ms", @@ -353,7 +352,7 @@ func TestService_Exist(t *testing.T) { log.Info("check by querying a not exist env with alias") resp, err = datasource.GetMetadataManager().ExistService(getContext(), &pb.GetExistenceRequest{ - Type: service.ExistTypeMicroservice, + Type: datasource.ExistTypeMicroservice, Environment: pb.ENV_TEST, AppId: "exist_appId_service_ms", ServiceName: "es_service_ms", @@ -364,7 +363,7 @@ func TestService_Exist(t *testing.T) { log.Info("check by querying with a mismatching version") resp, err = datasource.GetMetadataManager().ExistService(getContext(), &pb.GetExistenceRequest{ - Type: service.ExistTypeMicroservice, + Type: datasource.ExistTypeMicroservice, AppId: "exist_appId_service_ms", ServiceName: "exist_service_service_ms", Version: "2.0.0", @@ -372,7 +371,7 @@ func TestService_Exist(t *testing.T) { assert.NoError(t, err) assert.Equal(t, pb.ErrServiceNotExists, resp.Response.GetCode()) resp, err = datasource.GetMetadataManager().ExistService(getContext(), &pb.GetExistenceRequest{ - Type: service.ExistTypeMicroservice, + Type: datasource.ExistTypeMicroservice, AppId: "exist_appId_service_ms", ServiceName: "exist_service_service_ms", Version: "0.0.0-1.0.0", @@ -384,7 +383,7 @@ func TestService_Exist(t *testing.T) { t.Run("check exist when service exists", func(t *testing.T) { log.Info("search with serviceName") resp, err := datasource.GetMetadataManager().ExistService(getContext(), &pb.GetExistenceRequest{ - Type: service.ExistTypeMicroservice, + Type: datasource.ExistTypeMicroservice, AppId: "exist_appId_service_ms", ServiceName: "exist_service_service_ms", Version: "1.0.0", @@ -394,7 +393,7 @@ func TestService_Exist(t *testing.T) { log.Info("check with serviceName and env") resp, err = datasource.GetMetadataManager().ExistService(getContext(), &pb.GetExistenceRequest{ - Type: service.ExistTypeMicroservice, + Type: datasource.ExistTypeMicroservice, Environment: pb.ENV_PROD, AppId: "exist_appId_service_ms", ServiceName: "exist_service_service_ms", @@ -405,7 +404,7 @@ func TestService_Exist(t *testing.T) { log.Info("check with alias") resp, err = datasource.GetMetadataManager().ExistService(getContext(), &pb.GetExistenceRequest{ - Type: service.ExistTypeMicroservice, + Type: datasource.ExistTypeMicroservice, AppId: "exist_appId_service_ms", ServiceName: "es_service_ms", Version: "1.0.0", @@ -415,7 +414,7 @@ func TestService_Exist(t *testing.T) { log.Info("check with alias and env") resp, err = datasource.GetMetadataManager().ExistService(getContext(), &pb.GetExistenceRequest{ - Type: service.ExistTypeMicroservice, + Type: datasource.ExistTypeMicroservice, Environment: pb.ENV_PROD, AppId: "exist_appId_service_ms", ServiceName: "es_service_ms", @@ -426,7 +425,7 @@ func TestService_Exist(t *testing.T) { log.Info("check with latest versionRule") resp, err = datasource.GetMetadataManager().ExistService(getContext(), &pb.GetExistenceRequest{ - Type: service.ExistTypeMicroservice, + Type: datasource.ExistTypeMicroservice, AppId: "exist_appId_service_ms", ServiceName: "es_service_ms", Version: "latest", @@ -436,7 +435,7 @@ func TestService_Exist(t *testing.T) { log.Info("check with 1.0.0+ versionRule") resp, err = datasource.GetMetadataManager().ExistService(getContext(), &pb.GetExistenceRequest{ - Type: service.ExistTypeMicroservice, + Type: datasource.ExistTypeMicroservice, AppId: "exist_appId_service_ms", ServiceName: "es_service_ms", Version: "1.0.0+", @@ -446,7 +445,7 @@ func TestService_Exist(t *testing.T) { log.Info("check with range versionRule") resp, err = datasource.GetMetadataManager().ExistService(getContext(), &pb.GetExistenceRequest{ - Type: service.ExistTypeMicroservice, + Type: datasource.ExistTypeMicroservice, AppId: "exist_appId_service_ms", ServiceName: "es_service_ms", Version: "0.9.1-1.0.1", diff --git a/pkg/proto/service_ex.go b/pkg/proto/service_ex.go index 1d49227..09d291b 100644 --- a/pkg/proto/service_ex.go +++ b/pkg/proto/service_ex.go @@ -16,22 +16,3 @@ */ package proto - -import ( - "context" - - "github.com/go-chassis/cari/discovery" - "github.com/gorilla/websocket" -) - -type ServiceInstanceCtrlServerEx interface { - ServiceInstanceCtrlServer - - BatchFind(ctx context.Context, in *discovery.BatchFindInstancesRequest) (*discovery.BatchFindInstancesResponse, error) - - WebSocketWatch(ctx context.Context, in *discovery.WatchInstanceRequest, conn *websocket.Conn) - - WatchHeartbeat(ctx context.Context, in *discovery.HeartbeatRequest, conn *websocket.Conn) - - ClusterHealth(ctx context.Context) (*discovery.GetInstancesResponse, error) -} diff --git a/server/api.go b/server/api.go index 659dd44..eb75d7a 100644 --- a/server/api.go +++ b/server/api.go @@ -24,6 +24,8 @@ import ( "strconv" "time" + "github.com/apache/servicecomb-service-center/server/service/disco" + "github.com/apache/servicecomb-service-center/datasource" "github.com/apache/servicecomb-service-center/pkg/gopool" "github.com/apache/servicecomb-service-center/pkg/grace" @@ -33,7 +35,6 @@ import ( "github.com/apache/servicecomb-service-center/server/core" "github.com/apache/servicecomb-service-center/server/metrics" rs "github.com/apache/servicecomb-service-center/server/rest" - "github.com/apache/servicecomb-service-center/server/service" ) var apiServer *APIServer @@ -49,7 +50,7 @@ func init() { } func InitAPI() { - core.ServiceAPI, core.InstanceAPI = service.AssembleResources() + core.ServiceAPI = disco.AssembleResources() } type APIType int64 diff --git a/server/core/microservice.go b/server/core/microservice.go index f4dc273..10e936c 100644 --- a/server/core/microservice.go +++ b/server/core/microservice.go @@ -30,7 +30,6 @@ import ( var ( ServiceAPI proto.ServiceCtrlServer - InstanceAPI proto.ServiceInstanceCtrlServerEx Service *discovery.MicroService Instance *discovery.MicroServiceInstance globalServiceNames map[string]struct{} diff --git a/server/plugin/auth/buildin/parser_test.go b/server/plugin/auth/buildin/parser_test.go index 2651667..61a2f6a 100644 --- a/server/plugin/auth/buildin/parser_test.go +++ b/server/plugin/auth/buildin/parser_test.go @@ -18,6 +18,7 @@ package buildin_test import ( + discosvc "github.com/apache/servicecomb-service-center/server/service/disco" _ "github.com/apache/servicecomb-service-center/test" "context" @@ -25,7 +26,6 @@ import ( "strings" "testing" - "github.com/apache/servicecomb-service-center/datasource" "github.com/apache/servicecomb-service-center/pkg/rest" "github.com/apache/servicecomb-service-center/pkg/util" "github.com/apache/servicecomb-service-center/server/plugin/auth" @@ -40,14 +40,14 @@ func TestGetAPIParseFunc(t *testing.T) { var serviceIDA, serviceIDB string - response, _ := datasource.GetMetadataManager().RegisterService(context.Background(), &discovery.CreateServiceRequest{ + response, _ := discosvc.RegisterService(context.Background(), &discovery.CreateServiceRequest{ Service: &discovery.MicroService{ AppId: "TestGetAPIParseFunc", ServiceName: "A", }, }) serviceIDA = response.ServiceId - response, _ = datasource.GetMetadataManager().RegisterService(context.Background(), &discovery.CreateServiceRequest{ + response, _ = discosvc.RegisterService(context.Background(), &discovery.CreateServiceRequest{ Service: &discovery.MicroService{ AppId: "TestGetAPIParseFunc", ServiceName: "B", diff --git a/server/plugin/quota/buildin/buildin_test.go b/server/plugin/quota/buildin/buildin_test.go index 8a4b1f1..0235642 100644 --- a/server/plugin/quota/buildin/buildin_test.go +++ b/server/plugin/quota/buildin/buildin_test.go @@ -18,6 +18,8 @@ package buildin_test import ( "context" + discosvc "github.com/apache/servicecomb-service-center/server/service/disco" + "github.com/apache/servicecomb-service-center/pkg/util" "github.com/apache/servicecomb-service-center/datasource" @@ -51,7 +53,7 @@ func TestGetResourceLimit(t *testing.T) { assert.Nil(t, err) }) t.Run("create 1 instance,should success", func(t *testing.T) { - resp, err := datasource.GetMetadataManager().RegisterService(ctx, &pb.CreateServiceRequest{ + resp, err := discosvc.RegisterService(ctx, &pb.CreateServiceRequest{ Service: &pb.MicroService{ ServiceName: "quota", }, @@ -68,7 +70,7 @@ func TestGetResourceLimit(t *testing.T) { assert.NotNil(t, err) }) t.Run("create 150001 instance,should failed", func(t *testing.T) { - resp, err := datasource.GetMetadataManager().RegisterService(ctx, &pb.CreateServiceRequest{ + resp, err := discosvc.RegisterService(ctx, &pb.CreateServiceRequest{ Service: &pb.MicroService{ ServiceName: "quota2", }, diff --git a/server/plugin/tracing/pzipkin/common_test.go b/server/plugin/tracing/pzipkin/common_test.go index a08045b..1361d95 100644 --- a/server/plugin/tracing/pzipkin/common_test.go +++ b/server/plugin/tracing/pzipkin/common_test.go @@ -16,11 +16,12 @@ package pzipkin import ( - zipkintracer "github.com/openzipkin/zipkin-go-opentracing" "os" "path/filepath" "testing" + zipkintracer "github.com/openzipkin/zipkin-go-opentracing" + "github.com/go-chassis/go-archaius" ) diff --git a/server/rest/controller/v4/instance_controller.go b/server/rest/controller/v4/instance_controller.go index 8fb92fa..91aa894 100644 --- a/server/rest/controller/v4/instance_controller.go +++ b/server/rest/controller/v4/instance_controller.go @@ -24,10 +24,11 @@ import ( "net/http" "strings" + discosvc "github.com/apache/servicecomb-service-center/server/service/disco" + "github.com/apache/servicecomb-service-center/pkg/log" "github.com/apache/servicecomb-service-center/pkg/rest" "github.com/apache/servicecomb-service-center/pkg/util" - "github.com/apache/servicecomb-service-center/server/core" pb "github.com/go-chassis/cari/discovery" ) @@ -68,7 +69,7 @@ func (s *MicroServiceInstanceService) RegisterInstance(w http.ResponseWriter, r request.Instance.ServiceId = r.URL.Query().Get(":serviceId") } - resp, err := core.InstanceAPI.Register(r.Context(), request) + resp, err := discosvc.RegisterInstance(r.Context(), request) if err != nil { log.Errorf(err, "register instance failed") rest.WriteError(w, pb.ErrInternal, "register instance failed") @@ -84,7 +85,7 @@ func (s *MicroServiceInstanceService) Heartbeat(w http.ResponseWriter, r *http.R ServiceId: query.Get(":serviceId"), InstanceId: query.Get(":instanceId"), } - resp, _ := core.InstanceAPI.Heartbeat(r.Context(), request) + resp, _ := discosvc.Heartbeat(r.Context(), request) rest.WriteResponse(w, r, resp.Response, nil) } @@ -103,7 +104,7 @@ func (s *MicroServiceInstanceService) HeartbeatSet(w http.ResponseWriter, r *htt rest.WriteError(w, pb.ErrInvalidParams, "Unmarshal error") return } - resp, _ := core.InstanceAPI.HeartbeatSet(r.Context(), request) + resp, _ := discosvc.HeartbeatSet(r.Context(), request) rest.WriteResponse(w, r, resp.Response, nil) } @@ -113,7 +114,7 @@ func (s *MicroServiceInstanceService) UnregisterInstance(w http.ResponseWriter, ServiceId: query.Get(":serviceId"), InstanceId: query.Get(":instanceId"), } - resp, _ := core.InstanceAPI.Unregister(r.Context(), request) + resp, _ := discosvc.UnregisterInstance(r.Context(), request) rest.WriteResponse(w, r, resp.Response, nil) } @@ -135,7 +136,7 @@ func (s *MicroServiceInstanceService) FindInstances(w http.ResponseWriter, r *ht ctx := util.SetTargetDomainProject(r.Context(), r.Header.Get("X-Domain-Name"), query.Get(":project")) - resp, _ := core.InstanceAPI.Find(ctx, request) + resp, _ := discosvc.FindInstances(ctx, request) respInternal := resp.Response resp.Response = nil @@ -169,7 +170,7 @@ func (s *MicroServiceInstanceService) InstancesAction(w http.ResponseWriter, r * } request.ConsumerServiceId = r.Header.Get("X-ConsumerId") ctx := util.SetTargetDomainProject(r.Context(), r.Header.Get("X-Domain-Name"), r.URL.Query().Get(":project")) - resp, _ := core.InstanceAPI.BatchFind(ctx, request) + resp, _ := discosvc.BatchFindInstances(ctx, request) rest.WriteResponse(w, r, resp.Response, resp) default: err = fmt.Errorf("Invalid action: %s", action) @@ -192,7 +193,7 @@ func (s *MicroServiceInstanceService) GetOneInstance(w http.ResponseWriter, r *h Tags: ids, } - resp, _ := core.InstanceAPI.GetOneInstance(r.Context(), request) + resp, _ := discosvc.GetOneInstance(r.Context(), request) respInternal := resp.Response resp.Response = nil @@ -218,7 +219,7 @@ func (s *MicroServiceInstanceService) GetInstances(w http.ResponseWriter, r *htt ProviderServiceId: query.Get(":serviceId"), Tags: ids, } - resp, _ := core.InstanceAPI.GetInstances(r.Context(), request) + resp, _ := discosvc.GetInstances(r.Context(), request) respInternal := resp.Response resp.Response = nil @@ -240,7 +241,7 @@ func (s *MicroServiceInstanceService) UpdateStatus(w http.ResponseWriter, r *htt InstanceId: query.Get(":instanceId"), Status: status, } - resp, _ := core.InstanceAPI.UpdateStatus(r.Context(), request) + resp, _ := discosvc.UpdateInstanceStatus(r.Context(), request) rest.WriteResponse(w, r, resp.Response, nil) } @@ -262,7 +263,7 @@ func (s *MicroServiceInstanceService) UpdateMetadata(w http.ResponseWriter, r *h rest.WriteError(w, pb.ErrInvalidParams, "Unmarshal error") return } - resp, err := core.InstanceAPI.UpdateInstanceProperties(r.Context(), request) + resp, err := discosvc.UpdateInstanceProperties(r.Context(), request) if err != nil { log.Errorf(err, "can not update instance") rest.WriteError(w, pb.ErrInternal, "can not update instance") diff --git a/server/rest/controller/v4/instance_watcher.go b/server/rest/controller/v4/instance_watcher.go index 7e273be..b9f9bf8 100644 --- a/server/rest/controller/v4/instance_watcher.go +++ b/server/rest/controller/v4/instance_watcher.go @@ -20,9 +20,11 @@ package v4 import ( "net/http" + discosvc "github.com/apache/servicecomb-service-center/server/service/disco" + "github.com/apache/servicecomb-service-center/server/service/heartbeat" + "github.com/apache/servicecomb-service-center/pkg/log" "github.com/apache/servicecomb-service-center/pkg/rest" - "github.com/apache/servicecomb-service-center/server/core" "github.com/apache/servicecomb-service-center/server/handler/exception" pb "github.com/go-chassis/cari/discovery" "github.com/gorilla/websocket" @@ -70,7 +72,7 @@ func (s *WatchService) Watch(w http.ResponseWriter, r *http.Request) { defer conn.Close() r.Method = "WATCH" - core.InstanceAPI.WebSocketWatch(r.Context(), &pb.WatchInstanceRequest{ + discosvc.WebSocketWatch(r.Context(), &pb.WatchInstanceRequest{ SelfServiceId: r.URL.Query().Get(":serviceId"), }, conn) } @@ -82,7 +84,7 @@ func (s *WatchService) Heartbeat(w http.ResponseWriter, r *http.Request) { return } defer conn.Close() - core.InstanceAPI.WatchHeartbeat(r.Context(), &pb.HeartbeatRequest{ + heartbeat.WatchHeartbeat(r.Context(), &pb.HeartbeatRequest{ ServiceId: r.URL.Query().Get(":serviceId"), InstanceId: r.URL.Query().Get(":instanceId"), }, conn) diff --git a/server/rest/controller/v4/main_controller.go b/server/rest/controller/v4/main_controller.go index f27d79c..4aa8147 100644 --- a/server/rest/controller/v4/main_controller.go +++ b/server/rest/controller/v4/main_controller.go @@ -22,8 +22,9 @@ import ( "net/http" "sync" + discosvc "github.com/apache/servicecomb-service-center/server/service/disco" + "github.com/apache/servicecomb-service-center/pkg/rest" - "github.com/apache/servicecomb-service-center/server/core" "github.com/apache/servicecomb-service-center/version" pb "github.com/go-chassis/cari/discovery" ) @@ -53,7 +54,7 @@ func (s *MainService) URLPatterns() []rest.Route { } func (s *MainService) ClusterHealth(w http.ResponseWriter, r *http.Request) { - resp, _ := core.InstanceAPI.ClusterHealth(r.Context()) + resp, _ := discosvc.ClusterHealth(r.Context()) rest.WriteResponse(w, r, resp.Response, resp) } diff --git a/server/rest/govern/service_test.go b/server/rest/govern/service_test.go index 3073418..f9bb011 100644 --- a/server/rest/govern/service_test.go +++ b/server/rest/govern/service_test.go @@ -22,6 +22,8 @@ import ( "net/http" "net/http/httptest" + "github.com/apache/servicecomb-service-center/server/service/disco" + "github.com/apache/servicecomb-service-center/server/core" "github.com/apache/servicecomb-service-center/server/rest/govern" pb "github.com/go-chassis/cari/discovery" @@ -139,7 +141,7 @@ var _ = Describe("'Govern' service", func() { Expect(err).To(BeNil()) Expect(resp.Response.GetCode()).To(Equal(pb.ResponseSuccess)) - core.InstanceAPI.Register(getContext(), &pb.RegisterInstanceRequest{ + disco.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: serviceId, Endpoints: []string{ diff --git a/server/service/dependency.go b/server/service/disco/dependency.go similarity index 99% rename from server/service/dependency.go rename to server/service/disco/dependency.go index d7bb026..88f43f6 100644 --- a/server/service/dependency.go +++ b/server/service/disco/dependency.go @@ -15,7 +15,7 @@ * limitations under the License. */ -package service +package disco import ( "context" diff --git a/server/service/dependency_test.go b/server/service/disco/dependency_test.go similarity index 98% rename from server/service/dependency_test.go rename to server/service/disco/dependency_test.go index 5f5dbb5..5597711 100644 --- a/server/service/dependency_test.go +++ b/server/service/disco/dependency_test.go @@ -14,11 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package service_test +package disco_test import ( "strconv" + "github.com/apache/servicecomb-service-center/server/service/disco" + pb "github.com/go-chassis/cari/discovery" "github.com/go-chassis/go-archaius" . "github.com/onsi/ginkgo" @@ -713,7 +715,7 @@ var _ = Describe("'Dependency' service", func() { Context("when after finding instance", func() { It("should created dependencies between C and P", func() { By("find provider") - resp, err := instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + resp, err := disco.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: consumerId1, AppId: "get_dep_group", ServiceName: "get_dep_provider", @@ -742,7 +744,7 @@ var _ = Describe("'Dependency' service", func() { Expect(len(respGetC.Providers)).To(Equal(2)) //重复find - resp, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + resp, err = disco.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: consumerId1, AppId: "get_dep_group", ServiceName: "get_dep_provider", @@ -771,7 +773,7 @@ var _ = Describe("'Dependency' service", func() { Expect(respGetC.Providers[0].ServiceId).To(Equal(providerId2)) By("get self deps") - resp, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + resp, err = disco.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: consumerId1, AppId: "get_dep_group", ServiceName: "get_dep_consumer", @@ -791,7 +793,7 @@ var _ = Describe("'Dependency' service", func() { Expect(len(respGetC.Providers)).To(Equal(1)) By("find before provider register") - resp, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + resp, err = disco.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: providerId2, AppId: "get_dep_group", ServiceName: "get_dep_finder", @@ -813,7 +815,7 @@ var _ = Describe("'Dependency' service", func() { Expect(respCreateF.Response.GetCode()).To(Equal(pb.ResponseSuccess)) finder1 := respCreateF.ServiceId - resp, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + resp, err = disco.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: providerId2, AppId: "get_dep_group", ServiceName: "get_dep_finder", @@ -861,7 +863,7 @@ var _ = Describe("'Dependency' service", func() { Expect(err).To(BeNil()) Expect(respCreateF.Response.GetCode()).To(Equal(pb.ResponseSuccess)) - resp, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + resp, err = disco.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: providerId2, AppId: "get_dep_group", ServiceName: "get_dep_finder", diff --git a/server/service/instance.go b/server/service/disco/instance.go similarity index 86% rename from server/service/instance.go rename to server/service/disco/instance.go index fc03473..201ecd4 100644 --- a/server/service/instance.go +++ b/server/service/disco/instance.go @@ -15,7 +15,7 @@ * limitations under the License. */ -package service +package disco import ( "context" @@ -34,10 +34,7 @@ import ( "github.com/apache/servicecomb-service-center/server/service/validator" ) -type InstanceService struct { -} - -func (s *InstanceService) Register(ctx context.Context, in *pb.RegisterInstanceRequest) (*pb.RegisterInstanceResponse, error) { +func RegisterInstance(ctx context.Context, in *pb.RegisterInstanceRequest) (*pb.RegisterInstanceResponse, error) { if err := validator.Validate(in); err != nil { remoteIP := util.GetIPFromContext(ctx) log.Errorf(err, "register instance failed, invalid parameters, operator %s", remoteIP) @@ -65,7 +62,7 @@ func (s *InstanceService) Register(ctx context.Context, in *pb.RegisterInstanceR return datasource.GetMetadataManager().RegisterInstance(ctx, in) } -func (s *InstanceService) Unregister(ctx context.Context, +func UnregisterInstance(ctx context.Context, in *pb.UnregisterInstanceRequest) (*pb.UnregisterInstanceResponse, error) { if err := validator.Validate(in); err != nil { remoteIP := util.GetIPFromContext(ctx) @@ -78,7 +75,7 @@ func (s *InstanceService) Unregister(ctx context.Context, return datasource.GetMetadataManager().UnregisterInstance(ctx, in) } -func (s *InstanceService) Heartbeat(ctx context.Context, in *pb.HeartbeatRequest) (*pb.HeartbeatResponse, error) { +func Heartbeat(ctx context.Context, in *pb.HeartbeatRequest) (*pb.HeartbeatResponse, error) { if err := validator.Validate(in); err != nil { remoteIP := util.GetIPFromContext(ctx) log.Errorf(err, "heartbeat failed, invalid parameters, operator %s", remoteIP) @@ -90,7 +87,7 @@ func (s *InstanceService) Heartbeat(ctx context.Context, in *pb.HeartbeatRequest return datasource.GetMetadataManager().Heartbeat(ctx, in) } -func (s *InstanceService) HeartbeatSet(ctx context.Context, +func HeartbeatSet(ctx context.Context, in *pb.HeartbeatSetRequest) (*pb.HeartbeatSetResponse, error) { if len(in.Instances) == 0 { log.Errorf(nil, "heartbeats failed, invalid request. Body not contain Instances or is empty") @@ -101,7 +98,7 @@ func (s *InstanceService) HeartbeatSet(ctx context.Context, return datasource.GetMetadataManager().HeartbeatSet(ctx, in) } -func (s *InstanceService) GetOneInstance(ctx context.Context, +func GetOneInstance(ctx context.Context, in *pb.GetOneInstanceRequest) (*pb.GetOneInstanceResponse, error) { err := validator.Validate(in) if err != nil { @@ -114,7 +111,7 @@ func (s *InstanceService) GetOneInstance(ctx context.Context, return datasource.GetMetadataManager().GetInstance(ctx, in) } -func (s *InstanceService) GetInstances(ctx context.Context, in *pb.GetInstancesRequest) (*pb.GetInstancesResponse, error) { +func GetInstances(ctx context.Context, in *pb.GetInstancesRequest) (*pb.GetInstancesResponse, error) { err := validator.Validate(in) if err != nil { log.Errorf(err, "get instances failed: invalid parameters") @@ -126,7 +123,7 @@ func (s *InstanceService) GetInstances(ctx context.Context, in *pb.GetInstancesR return datasource.GetMetadataManager().GetInstances(ctx, in) } -func (s *InstanceService) Find(ctx context.Context, in *pb.FindInstancesRequest) (*pb.FindInstancesResponse, error) { +func FindInstances(ctx context.Context, in *pb.FindInstancesRequest) (*pb.FindInstancesResponse, error) { err := validator.Validate(in) if err != nil { log.Errorf(err, "find instance failed: invalid parameters") @@ -138,7 +135,7 @@ func (s *InstanceService) Find(ctx context.Context, in *pb.FindInstancesRequest) return datasource.GetMetadataManager().FindInstances(ctx, in) } -func (s *InstanceService) BatchFind(ctx context.Context, in *pb.BatchFindInstancesRequest) (*pb.BatchFindInstancesResponse, error) { +func BatchFindInstances(ctx context.Context, in *pb.BatchFindInstancesRequest) (*pb.BatchFindInstancesResponse, error) { if len(in.Services) == 0 && len(in.Instances) == 0 { err := errors.New("Required services or instances") log.Errorf(err, "batch find instance failed: invalid parameters") @@ -158,7 +155,7 @@ func (s *InstanceService) BatchFind(ctx context.Context, in *pb.BatchFindInstanc return datasource.GetMetadataManager().BatchFind(ctx, in) } -func (s *InstanceService) UpdateStatus(ctx context.Context, in *pb.UpdateInstanceStatusRequest) (*pb.UpdateInstanceStatusResponse, error) { +func UpdateInstanceStatus(ctx context.Context, in *pb.UpdateInstanceStatusRequest) (*pb.UpdateInstanceStatusResponse, error) { if err := validator.Validate(in); err != nil { updateStatusFlag := util.StringJoin([]string{in.ServiceId, in.InstanceId, in.Status}, "/") log.Errorf(nil, "update instance[%s] status failed", updateStatusFlag) @@ -170,7 +167,7 @@ func (s *InstanceService) UpdateStatus(ctx context.Context, in *pb.UpdateInstanc return datasource.GetMetadataManager().UpdateInstanceStatus(ctx, in) } -func (s *InstanceService) UpdateInstanceProperties(ctx context.Context, in *pb.UpdateInstancePropsRequest) (*pb.UpdateInstancePropsResponse, error) { +func UpdateInstanceProperties(ctx context.Context, in *pb.UpdateInstancePropsRequest) (*pb.UpdateInstancePropsResponse, error) { if err := validator.Validate(in); err != nil { instanceFlag := util.StringJoin([]string{in.ServiceId, in.InstanceId}, "/") log.Errorf(nil, "update instance[%s] properties failed", instanceFlag) @@ -182,7 +179,7 @@ func (s *InstanceService) UpdateInstanceProperties(ctx context.Context, in *pb.U return datasource.GetMetadataManager().UpdateInstanceProperties(ctx, in) } -func (s *InstanceService) ClusterHealth(ctx context.Context) (*pb.GetInstancesResponse, error) { +func ClusterHealth(ctx context.Context) (*pb.GetInstancesResponse, error) { if err := health.GlobalHealthChecker().Healthy(); err != nil { return &pb.GetInstancesResponse{ Response: pb.CreateResponse(pb.ErrUnhealthy, err.Error()), diff --git a/server/service/instance_test.go b/server/service/disco/instance_test.go similarity index 84% rename from server/service/instance_test.go rename to server/service/disco/instance_test.go index 2a6ea16..d5a787a 100644 --- a/server/service/instance_test.go +++ b/server/service/disco/instance_test.go @@ -14,13 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package service_test +package disco_test import ( "math" "strconv" "strings" + discosvc "github.com/apache/servicecomb-service-center/server/service/disco" + "github.com/apache/servicecomb-service-center/pkg/util" "github.com/apache/servicecomb-service-center/server/config" "github.com/apache/servicecomb-service-center/server/core" @@ -57,7 +59,7 @@ var _ = Describe("'Instance' service", func() { Context("when register a instance", func() { It("should be passed", func() { - resp, err := instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err := discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: serviceId1, Endpoints: []string{ @@ -71,7 +73,7 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).To(Equal(pb.ResponseSuccess)) Expect(resp.InstanceId).To(Not(Equal(""))) - resp, err = instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err = discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ InstanceId: "customId", ServiceId: serviceId1, @@ -87,7 +89,7 @@ var _ = Describe("'Instance' service", func() { Expect(resp.InstanceId).To(Equal("customId")) By("status is nil") - resp, err = instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err = discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: serviceId1, Endpoints: []string{ @@ -109,7 +111,7 @@ var _ = Describe("'Instance' service", func() { eps = append(eps, s) properties[s] = s } - resp, err = instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err = discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: serviceId1, Endpoints: eps, @@ -145,13 +147,13 @@ var _ = Describe("'Instance' service", func() { HostName: "UT-HOST", Status: pb.MSI_UP, } - resp, err := instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err := discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: instance, }) Expect(err).To(BeNil()) Expect(resp.Response.GetCode()).To(Equal(pb.ResponseSuccess)) - resp, err = instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err = discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: instance, }) Expect(err).To(BeNil()) @@ -163,7 +165,7 @@ var _ = Describe("'Instance' service", func() { Context("when register invalid instance", func() { It("should be failed", func() { By("endpoints are empty") - resp, err := instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err := discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: serviceId1, Endpoints: []string{""}, @@ -175,7 +177,7 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) By("serviceId is empty") - resp, err = instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err = discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ HostName: "UT-HOST", Endpoints: []string{ @@ -188,7 +190,7 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).ToNot(Equal(pb.ResponseSuccess)) By("service does not exist") - resp, err = instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err = discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: "1000000000000000", Endpoints: []string{ @@ -202,7 +204,7 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).ToNot(Equal(pb.ResponseSuccess)) By("hostName is empty") - resp, err = instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err = discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: serviceId1, Endpoints: []string{ @@ -213,7 +215,7 @@ var _ = Describe("'Instance' service", func() { }) Expect(err).To(BeNil()) Expect(resp.Response.GetCode()).ToNot(Equal(pb.ResponseSuccess)) - resp, err = instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err = discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: serviceId1, HostName: " ", @@ -225,7 +227,7 @@ var _ = Describe("'Instance' service", func() { }) Expect(err).To(BeNil()) Expect(resp.Response.GetCode()).ToNot(Equal(pb.ResponseSuccess)) - resp, err = instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err = discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: serviceId1, HostName: TOO_LONG_HOSTNAME, @@ -239,14 +241,14 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).ToNot(Equal(pb.ResponseSuccess)) By("instance is nil") - resp, err = instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err = discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: nil, }) Expect(err).To(BeNil()) Expect(resp.Response.GetCode()).ToNot(Equal(pb.ResponseSuccess)) By("check normal push healthChceck") - resp, err = instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err = discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: serviceId1, Endpoints: []string{ @@ -264,7 +266,7 @@ var _ = Describe("'Instance' service", func() { Expect(err).To(BeNil()) Expect(resp.Response.GetCode()).To(Equal(pb.ResponseSuccess)) - resp, err = instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err = discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: serviceId1, Endpoints: []string{ @@ -283,7 +285,7 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).To(Equal(pb.ResponseSuccess)) By("check normal pull healthChceck") - resp, err = instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err = discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: serviceId1, Endpoints: []string{ @@ -303,7 +305,7 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).To(Equal(pb.ResponseSuccess)) By("check invalid push healthChceck") - resp, err = instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err = discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: serviceId1, Endpoints: []string{ @@ -322,7 +324,7 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) By("check invalid pull healthChceck") - resp, err = instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err = discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: serviceId1, Endpoints: []string{ @@ -340,7 +342,7 @@ var _ = Describe("'Instance' service", func() { }) Expect(err).To(BeNil()) Expect(resp.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - resp, err = instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err = discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: serviceId1, Endpoints: []string{ @@ -357,7 +359,7 @@ var _ = Describe("'Instance' service", func() { }) Expect(err).To(BeNil()) Expect(resp.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - resp, err = instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err = discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: serviceId1, Endpoints: []string{ @@ -377,7 +379,7 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) By("invalid status") - resp, err = instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err = discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: serviceId1, Endpoints: []string{ @@ -414,7 +416,7 @@ var _ = Describe("'Instance' service", func() { Expect(respCreate.Response.GetCode()).To(Equal(pb.ResponseSuccess)) serviceId = respCreate.ServiceId - resp, err := instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err := discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: serviceId, HostName: "UT-HOST", @@ -428,7 +430,7 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).To(Equal(pb.ResponseSuccess)) instanceId1 = resp.InstanceId - resp, err = instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err = discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: serviceId, HostName: "UT-HOST", @@ -446,7 +448,7 @@ var _ = Describe("'Instance' service", func() { Context("when update a lease", func() { It("should be passed", func() { By("valid instance") - resp, err := instanceResource.Heartbeat(getContext(), &pb.HeartbeatRequest{ + resp, err := discosvc.Heartbeat(getContext(), &pb.HeartbeatRequest{ ServiceId: serviceId, InstanceId: instanceId1, }) @@ -454,31 +456,31 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).To(Equal(pb.ResponseSuccess)) By("serviceId/instanceId is invalid") - resp, err = instanceResource.Heartbeat(getContext(), &pb.HeartbeatRequest{ + resp, err = discosvc.Heartbeat(getContext(), &pb.HeartbeatRequest{ ServiceId: "", InstanceId: instanceId1, }) Expect(err).To(BeNil()) Expect(resp.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - resp, err = instanceResource.Heartbeat(getContext(), &pb.HeartbeatRequest{ + resp, err = discosvc.Heartbeat(getContext(), &pb.HeartbeatRequest{ ServiceId: TOO_LONG_SERVICEID, InstanceId: instanceId1, }) Expect(err).To(BeNil()) Expect(resp.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - resp, err = instanceResource.Heartbeat(getContext(), &pb.HeartbeatRequest{ + resp, err = discosvc.Heartbeat(getContext(), &pb.HeartbeatRequest{ ServiceId: serviceId, InstanceId: "", }) Expect(err).To(BeNil()) Expect(resp.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - resp, err = instanceResource.Heartbeat(getContext(), &pb.HeartbeatRequest{ + resp, err = discosvc.Heartbeat(getContext(), &pb.HeartbeatRequest{ ServiceId: serviceId, InstanceId: "@", }) Expect(err).To(BeNil()) Expect(resp.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - resp, err = instanceResource.Heartbeat(getContext(), &pb.HeartbeatRequest{ + resp, err = discosvc.Heartbeat(getContext(), &pb.HeartbeatRequest{ ServiceId: serviceId, InstanceId: TOO_LONG_SERVICEID, }) @@ -486,14 +488,14 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) By("serviceId does not exist") - resp, err = instanceResource.Heartbeat(getContext(), &pb.HeartbeatRequest{ + resp, err = discosvc.Heartbeat(getContext(), &pb.HeartbeatRequest{ ServiceId: "100000000000", InstanceId: instanceId1, }) Expect(resp.Response.GetCode()).ToNot(Equal(pb.ResponseSuccess)) By("instance does not exist") - resp, err = instanceResource.Heartbeat(getContext(), &pb.HeartbeatRequest{ + resp, err = discosvc.Heartbeat(getContext(), &pb.HeartbeatRequest{ ServiceId: serviceId, InstanceId: "not-exist-ins", }) @@ -504,19 +506,19 @@ var _ = Describe("'Instance' service", func() { Context("when batch update lease", func() { It("should be passed", func() { By("instances are empty") - resp, err := instanceResource.HeartbeatSet(getContext(), &pb.HeartbeatSetRequest{ + resp, err := discosvc.HeartbeatSet(getContext(), &pb.HeartbeatSetRequest{ Instances: []*pb.HeartbeatSetElement{}, }) Expect(err).To(BeNil()) Expect(resp.Response.GetCode()).ToNot(Equal(pb.ResponseSuccess)) By("instances are nil") - resp, err = instanceResource.HeartbeatSet(getContext(), &pb.HeartbeatSetRequest{}) + resp, err = discosvc.HeartbeatSet(getContext(), &pb.HeartbeatSetRequest{}) Expect(err).To(BeNil()) Expect(resp.Response.GetCode()).ToNot(Equal(pb.ResponseSuccess)) By("request contains > 1 instances") - resp, err = instanceResource.HeartbeatSet(getContext(), &pb.HeartbeatSetRequest{ + resp, err = discosvc.HeartbeatSet(getContext(), &pb.HeartbeatSetRequest{ Instances: []*pb.HeartbeatSetElement{ { ServiceId: serviceId, @@ -531,7 +533,7 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).To(Equal(pb.ResponseSuccess)) By("request contains invalid instance") - resp, err = instanceResource.HeartbeatSet(getContext(), &pb.HeartbeatSetRequest{ + resp, err = discosvc.HeartbeatSet(getContext(), &pb.HeartbeatSetRequest{ Instances: []*pb.HeartbeatSetElement{ { ServiceId: serviceId, @@ -560,7 +562,7 @@ var _ = Describe("'Instance' service", func() { It("should be failed", func() { old := core.Service.ServiceName core.Service.ServiceName = "x" - respCluterhealth, err := instanceResource.ClusterHealth(getContext()) + respCluterhealth, err := discosvc.ClusterHealth(getContext()) Expect(err).To(BeNil()) Expect(respCluterhealth.Response.GetCode()).ToNot(Equal(pb.ResponseSuccess)) core.Service.ServiceName = old @@ -569,7 +571,7 @@ var _ = Describe("'Instance' service", func() { Context("when SC registered", func() { It("should be passed", func() { - respCluterhealth, err := instanceResource.ClusterHealth(getContext()) + respCluterhealth, err := discosvc.ClusterHealth(getContext()) Expect(err).To(BeNil()) Expect(respCluterhealth.Response.GetCode()).To(Equal(pb.ResponseSuccess)) }) @@ -596,7 +598,7 @@ var _ = Describe("'Instance' service", func() { Expect(respCreate.Response.GetCode()).To(Equal(pb.ResponseSuccess)) serviceId = respCreate.ServiceId - resp, err := instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err := discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: serviceId, Endpoints: []string{ @@ -615,7 +617,7 @@ var _ = Describe("'Instance' service", func() { Context("when update instance status", func() { It("should be passed", func() { By("update instance status") - respUpdateStatus, err := instanceResource.UpdateStatus(getContext(), &pb.UpdateInstanceStatusRequest{ + respUpdateStatus, err := discosvc.UpdateInstanceStatus(getContext(), &pb.UpdateInstanceStatusRequest{ ServiceId: serviceId, InstanceId: instanceId, Status: pb.MSI_DOWN, @@ -623,7 +625,7 @@ var _ = Describe("'Instance' service", func() { Expect(err).To(BeNil()) Expect(respUpdateStatus.Response.GetCode()).To(Equal(pb.ResponseSuccess)) - respUpdateStatus, err = instanceResource.UpdateStatus(getContext(), &pb.UpdateInstanceStatusRequest{ + respUpdateStatus, err = discosvc.UpdateInstanceStatus(getContext(), &pb.UpdateInstanceStatusRequest{ ServiceId: serviceId, InstanceId: instanceId, Status: pb.MSI_OUTOFSERVICE, @@ -631,7 +633,7 @@ var _ = Describe("'Instance' service", func() { Expect(err).To(BeNil()) Expect(respUpdateStatus.Response.GetCode()).To(Equal(pb.ResponseSuccess)) - respUpdateStatus, err = instanceResource.UpdateStatus(getContext(), &pb.UpdateInstanceStatusRequest{ + respUpdateStatus, err = discosvc.UpdateInstanceStatus(getContext(), &pb.UpdateInstanceStatusRequest{ ServiceId: serviceId, InstanceId: instanceId, Status: pb.MSI_STARTING, @@ -639,7 +641,7 @@ var _ = Describe("'Instance' service", func() { Expect(err).To(BeNil()) Expect(respUpdateStatus.Response.GetCode()).To(Equal(pb.ResponseSuccess)) - respUpdateStatus, err = instanceResource.UpdateStatus(getContext(), &pb.UpdateInstanceStatusRequest{ + respUpdateStatus, err = discosvc.UpdateInstanceStatus(getContext(), &pb.UpdateInstanceStatusRequest{ ServiceId: serviceId, InstanceId: instanceId, Status: pb.MSI_TESTING, @@ -648,7 +650,7 @@ var _ = Describe("'Instance' service", func() { Expect(err).To(BeNil()) Expect(respUpdateStatus.Response.GetCode()).To(Equal(pb.ResponseSuccess)) - respUpdateStatus, err = instanceResource.UpdateStatus(getContext(), &pb.UpdateInstanceStatusRequest{ + respUpdateStatus, err = discosvc.UpdateInstanceStatus(getContext(), &pb.UpdateInstanceStatusRequest{ ServiceId: serviceId, InstanceId: instanceId, Status: pb.MSI_UP, @@ -657,7 +659,7 @@ var _ = Describe("'Instance' service", func() { Expect(respUpdateStatus.Response.GetCode()).To(Equal(pb.ResponseSuccess)) By("update status with a empty serviceId") - respUpdateStatus, err = instanceResource.UpdateStatus(getContext(), &pb.UpdateInstanceStatusRequest{ + respUpdateStatus, err = discosvc.UpdateInstanceStatus(getContext(), &pb.UpdateInstanceStatusRequest{ ServiceId: "", InstanceId: instanceId, Status: pb.MSI_STARTING, @@ -667,7 +669,7 @@ var _ = Describe("'Instance' service", func() { Expect(respUpdateStatus.Response.GetCode()).ToNot(Equal(pb.ResponseSuccess)) By("update status with a not exist service") - respUpdateStatus, err = instanceResource.UpdateStatus(getContext(), &pb.UpdateInstanceStatusRequest{ + respUpdateStatus, err = discosvc.UpdateInstanceStatus(getContext(), &pb.UpdateInstanceStatusRequest{ ServiceId: "notexistservice", InstanceId: instanceId, Status: pb.MSI_STARTING, @@ -677,7 +679,7 @@ var _ = Describe("'Instance' service", func() { Expect(respUpdateStatus.Response.GetCode()).ToNot(Equal(pb.ResponseSuccess)) By("update status with a not exist instance") - respUpdateStatus, err = instanceResource.UpdateStatus(getContext(), &pb.UpdateInstanceStatusRequest{ + respUpdateStatus, err = discosvc.UpdateInstanceStatus(getContext(), &pb.UpdateInstanceStatusRequest{ ServiceId: serviceId, InstanceId: "notexistins", Status: pb.MSI_STARTING, @@ -687,7 +689,7 @@ var _ = Describe("'Instance' service", func() { Expect(respUpdateStatus.Response.GetCode()).ToNot(Equal(pb.ResponseSuccess)) By("update invalid status") - respUpdateStatus, err = instanceResource.UpdateStatus(getContext(), &pb.UpdateInstanceStatusRequest{ + respUpdateStatus, err = discosvc.UpdateInstanceStatus(getContext(), &pb.UpdateInstanceStatusRequest{ ServiceId: serviceId, InstanceId: instanceId, Status: "nonestatus", @@ -701,7 +703,7 @@ var _ = Describe("'Instance' service", func() { Context("when update instance properties", func() { It("should be passed", func() { By("update instance properties") - respUpdateProperties, err := instanceResource.UpdateInstanceProperties(getContext(), &pb.UpdateInstancePropsRequest{ + respUpdateProperties, err := discosvc.UpdateInstanceProperties(getContext(), &pb.UpdateInstancePropsRequest{ ServiceId: serviceId, InstanceId: instanceId, Properties: map[string]string{ @@ -719,7 +721,7 @@ var _ = Describe("'Instance' service", func() { s := strconv.Itoa(i) + strings.Repeat("x", 253) properties[s] = s } - respUpdateProperties, err = instanceResource.UpdateInstanceProperties(getContext(), &pb.UpdateInstancePropsRequest{ + respUpdateProperties, err = discosvc.UpdateInstanceProperties(getContext(), &pb.UpdateInstancePropsRequest{ ServiceId: serviceId, InstanceId: instanceId, Properties: properties, @@ -729,7 +731,7 @@ var _ = Describe("'Instance' service", func() { Expect(respUpdateProperties.Response.GetCode()).To(Equal(pb.ResponseSuccess)) By("instance does not exist") - respUpdateProperties, err = instanceResource.UpdateInstanceProperties(getContext(), &pb.UpdateInstancePropsRequest{ + respUpdateProperties, err = discosvc.UpdateInstanceProperties(getContext(), &pb.UpdateInstancePropsRequest{ ServiceId: serviceId, InstanceId: "notexistins", Properties: map[string]string{ @@ -741,7 +743,7 @@ var _ = Describe("'Instance' service", func() { Expect(respUpdateProperties.Response.GetCode()).ToNot(Equal(pb.ResponseSuccess)) By("serviceId/instanceId/props is invalid") - respUpdateProperties, err = instanceResource.UpdateInstanceProperties(getContext(), &pb.UpdateInstancePropsRequest{ + respUpdateProperties, err = discosvc.UpdateInstanceProperties(getContext(), &pb.UpdateInstancePropsRequest{ ServiceId: "", InstanceId: instanceId, Properties: map[string]string{ @@ -751,7 +753,7 @@ var _ = Describe("'Instance' service", func() { Expect(err).To(BeNil()) Expect(respUpdateProperties.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - respUpdateProperties, err = instanceResource.UpdateInstanceProperties(getContext(), &pb.UpdateInstancePropsRequest{ + respUpdateProperties, err = discosvc.UpdateInstanceProperties(getContext(), &pb.UpdateInstancePropsRequest{ ServiceId: TOO_LONG_SERVICEID, InstanceId: instanceId, Properties: map[string]string{ @@ -761,7 +763,7 @@ var _ = Describe("'Instance' service", func() { Expect(err).To(BeNil()) Expect(respUpdateProperties.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - respUpdateProperties, err = instanceResource.UpdateInstanceProperties(getContext(), &pb.UpdateInstancePropsRequest{ + respUpdateProperties, err = discosvc.UpdateInstanceProperties(getContext(), &pb.UpdateInstancePropsRequest{ ServiceId: serviceId, InstanceId: "", Properties: map[string]string{ @@ -771,7 +773,7 @@ var _ = Describe("'Instance' service", func() { Expect(err).To(BeNil()) Expect(respUpdateProperties.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - respUpdateProperties, err = instanceResource.UpdateInstanceProperties(getContext(), &pb.UpdateInstancePropsRequest{ + respUpdateProperties, err = discosvc.UpdateInstanceProperties(getContext(), &pb.UpdateInstancePropsRequest{ ServiceId: serviceId, InstanceId: "@", Properties: map[string]string{ @@ -781,7 +783,7 @@ var _ = Describe("'Instance' service", func() { Expect(err).To(BeNil()) Expect(respUpdateProperties.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - respUpdateProperties, err = instanceResource.UpdateInstanceProperties(getContext(), &pb.UpdateInstancePropsRequest{ + respUpdateProperties, err = discosvc.UpdateInstanceProperties(getContext(), &pb.UpdateInstancePropsRequest{ ServiceId: serviceId, InstanceId: TOO_LONG_SERVICEID, Properties: map[string]string{ @@ -793,7 +795,7 @@ var _ = Describe("'Instance' service", func() { Expect(respUpdateProperties.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) By("remove the properties") - respUpdateProperties, err = instanceResource.UpdateInstanceProperties(getContext(), &pb.UpdateInstancePropsRequest{ + respUpdateProperties, err = discosvc.UpdateInstanceProperties(getContext(), &pb.UpdateInstancePropsRequest{ ServiceId: serviceId, InstanceId: instanceId, }) @@ -801,7 +803,7 @@ var _ = Describe("'Instance' service", func() { Expect(respUpdateProperties.Response.GetCode()).To(Equal(pb.ResponseSuccess)) By("service does not exist") - respUpdateProperties, err = instanceResource.UpdateInstanceProperties(getContext(), &pb.UpdateInstancePropsRequest{ + respUpdateProperties, err = discosvc.UpdateInstanceProperties(getContext(), &pb.UpdateInstancePropsRequest{ ServiceId: "notexistservice", InstanceId: instanceId, Properties: map[string]string{ @@ -959,7 +961,7 @@ var _ = Describe("'Instance' service", func() { Expect(respCreate.Response.GetCode()).To(Equal(pb.ResponseSuccess)) serviceId9 = respCreate.ServiceId - resp, err := instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err := discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: serviceId1, HostName: "UT-HOST", @@ -973,7 +975,7 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).To(Equal(pb.ResponseSuccess)) instanceId1 = resp.InstanceId - resp, err = instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err = discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: serviceId2, HostName: "UT-HOST", @@ -987,7 +989,7 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).To(Equal(pb.ResponseSuccess)) instanceId2 = resp.InstanceId - resp, err = instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err = discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: serviceId4, HostName: "UT-HOST", @@ -1001,7 +1003,7 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).To(Equal(pb.ResponseSuccess)) instanceId4 = resp.InstanceId - resp, err = instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err = discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: serviceId5, HostName: "UT-HOST", @@ -1015,7 +1017,7 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).To(Equal(pb.ResponseSuccess)) instanceId5 = resp.InstanceId - resp, err = instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err = discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: serviceId8, HostName: "UT-HOST", @@ -1029,7 +1031,7 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).To(Equal(pb.ResponseSuccess)) instanceId8 = resp.InstanceId - resp, err = instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err = discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: serviceId9, HostName: "UT-HOST", @@ -1047,7 +1049,7 @@ var _ = Describe("'Instance' service", func() { Context("when query invalid parameters", func() { It("should be failed", func() { By("invalid appId") - respFind, err := instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err := discosvc.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: serviceId1, AppId: TOO_LONG_APPID, ServiceName: "query_instance_service", @@ -1055,7 +1057,7 @@ var _ = Describe("'Instance' service", func() { }) Expect(err).To(BeNil()) Expect(respFind.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - respFind, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err = discosvc.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: serviceId1, AppId: "", ServiceName: "query_instance_service", @@ -1063,7 +1065,7 @@ var _ = Describe("'Instance' service", func() { }) Expect(err).To(BeNil()) Expect(respFind.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - respFind, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err = discosvc.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: serviceId1, AppId: " ", ServiceName: "query_instance_service", @@ -1073,7 +1075,7 @@ var _ = Describe("'Instance' service", func() { Expect(respFind.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) By("invalid serviceName") - respFind, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err = discosvc.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: serviceId1, AppId: "query_instance", ServiceName: TOO_LONG_EXISTENCE, @@ -1081,7 +1083,7 @@ var _ = Describe("'Instance' service", func() { }) Expect(err).To(BeNil()) Expect(respFind.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - respFind, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err = discosvc.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: serviceId1, AppId: "query_instance", ServiceName: "", @@ -1089,7 +1091,7 @@ var _ = Describe("'Instance' service", func() { }) Expect(err).To(BeNil()) Expect(respFind.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - respFind, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err = discosvc.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: serviceId1, AppId: "query_instance", ServiceName: " ", @@ -1099,7 +1101,7 @@ var _ = Describe("'Instance' service", func() { Expect(respFind.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) By("invalid version") - respFind, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err = discosvc.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: serviceId1, AppId: "query_instance", ServiceName: "query_instance_service", @@ -1107,7 +1109,7 @@ var _ = Describe("'Instance' service", func() { }) Expect(err).To(BeNil()) Expect(respFind.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - respFind, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err = discosvc.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: serviceId1, AppId: "query_instance", ServiceName: "query_instance_service", @@ -1115,7 +1117,7 @@ var _ = Describe("'Instance' service", func() { }) Expect(err).To(BeNil()) Expect(respFind.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - respFind, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err = discosvc.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: serviceId1, AppId: "query_instance", ServiceName: "query_instance_service", @@ -1123,7 +1125,7 @@ var _ = Describe("'Instance' service", func() { }) Expect(err).To(BeNil()) Expect(respFind.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - respFind, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err = discosvc.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: serviceId1, AppId: "query_instance", ServiceName: "query_instance_service", @@ -1133,7 +1135,7 @@ var _ = Describe("'Instance' service", func() { Expect(respFind.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) By("consumerId is empty") - respFind, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err = discosvc.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: "", AppId: "query_instance", ServiceName: "query_instance_service", @@ -1143,7 +1145,7 @@ var _ = Describe("'Instance' service", func() { Expect(respFind.Response.GetCode()).To(Equal(pb.ResponseSuccess)) By("provider does not exist") - respFind, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err = discosvc.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: serviceId1, AppId: "query_instance", ServiceName: "noneservice", @@ -1153,7 +1155,7 @@ var _ = Describe("'Instance' service", func() { Expect(respFind.Response.GetCode()).To(Equal(pb.ErrServiceNotExists)) By("provider does not contain 3.0.0+ versions") - respFind, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err = discosvc.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: serviceId1, AppId: "query_instance", ServiceName: "query_instance_service", @@ -1164,7 +1166,7 @@ var _ = Describe("'Instance' service", func() { Expect(len(respFind.Instances)).To(Equal(0)) By("provider does not contain 2.0.0-2.0.1 versions") - respFind, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err = discosvc.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: serviceId1, AppId: "query_instance", ServiceName: "query_instance_service", @@ -1175,7 +1177,7 @@ var _ = Describe("'Instance' service", func() { Expect(len(respFind.Instances)).To(Equal(0)) By("provider does not contain 2.0.0 version") - respFind, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err = discosvc.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: serviceId1, AppId: "query_instance", ServiceName: "query_instance_service", @@ -1185,7 +1187,7 @@ var _ = Describe("'Instance' service", func() { Expect(respFind.Response.GetCode()).To(Equal(pb.ErrServiceNotExists)) By("consumer does not exist") - respFind, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err = discosvc.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: "notExistServiceId", AppId: "query_instance", ServiceName: "query_instance_service", @@ -1199,27 +1201,27 @@ var _ = Describe("'Instance' service", func() { Context("when batch query invalid parameters", func() { It("should be failed", func() { By("invalid services") - respFind, err := instanceResource.BatchFind(getContext(), &pb.BatchFindInstancesRequest{ + respFind, err := discosvc.BatchFindInstances(getContext(), &pb.BatchFindInstancesRequest{ ConsumerServiceId: serviceId1, Services: nil, Instances: nil, }) Expect(err).To(BeNil()) Expect(respFind.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - respFind, err = instanceResource.BatchFind(getContext(), &pb.BatchFindInstancesRequest{ + respFind, err = discosvc.BatchFindInstances(getContext(), &pb.BatchFindInstancesRequest{ ConsumerServiceId: serviceId1, Services: []*pb.FindService{}, Instances: []*pb.FindInstance{}, }) Expect(err).To(BeNil()) Expect(respFind.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - respFind, err = instanceResource.BatchFind(getContext(), &pb.BatchFindInstancesRequest{ + respFind, err = discosvc.BatchFindInstances(getContext(), &pb.BatchFindInstancesRequest{ ConsumerServiceId: serviceId1, Services: []*pb.FindService{{}}, }) Expect(err).To(BeNil()) Expect(respFind.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - respFind, err = instanceResource.BatchFind(getContext(), &pb.BatchFindInstancesRequest{ + respFind, err = discosvc.BatchFindInstances(getContext(), &pb.BatchFindInstancesRequest{ ConsumerServiceId: serviceId1, Instances: []*pb.FindInstance{{}}, }) @@ -1227,7 +1229,7 @@ var _ = Describe("'Instance' service", func() { Expect(respFind.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) By("invalid appId") - respFind, err = instanceResource.BatchFind(getContext(), &pb.BatchFindInstancesRequest{ + respFind, err = discosvc.BatchFindInstances(getContext(), &pb.BatchFindInstancesRequest{ ConsumerServiceId: serviceId1, Services: []*pb.FindService{ { @@ -1241,7 +1243,7 @@ var _ = Describe("'Instance' service", func() { }) Expect(err).To(BeNil()) Expect(respFind.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - respFind, err = instanceResource.BatchFind(getContext(), &pb.BatchFindInstancesRequest{ + respFind, err = discosvc.BatchFindInstances(getContext(), &pb.BatchFindInstancesRequest{ ConsumerServiceId: serviceId1, Services: []*pb.FindService{ { @@ -1255,7 +1257,7 @@ var _ = Describe("'Instance' service", func() { }) Expect(err).To(BeNil()) Expect(respFind.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - respFind, err = instanceResource.BatchFind(getContext(), &pb.BatchFindInstancesRequest{ + respFind, err = discosvc.BatchFindInstances(getContext(), &pb.BatchFindInstancesRequest{ ConsumerServiceId: serviceId1, Services: []*pb.FindService{ { @@ -1271,7 +1273,7 @@ var _ = Describe("'Instance' service", func() { Expect(respFind.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) By("invalid serviceName") - respFind, err = instanceResource.BatchFind(getContext(), &pb.BatchFindInstancesRequest{ + respFind, err = discosvc.BatchFindInstances(getContext(), &pb.BatchFindInstancesRequest{ ConsumerServiceId: serviceId1, Services: []*pb.FindService{ { @@ -1285,7 +1287,7 @@ var _ = Describe("'Instance' service", func() { }) Expect(err).To(BeNil()) Expect(respFind.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - respFind, err = instanceResource.BatchFind(getContext(), &pb.BatchFindInstancesRequest{ + respFind, err = discosvc.BatchFindInstances(getContext(), &pb.BatchFindInstancesRequest{ ConsumerServiceId: serviceId1, Services: []*pb.FindService{ { @@ -1299,7 +1301,7 @@ var _ = Describe("'Instance' service", func() { }) Expect(err).To(BeNil()) Expect(respFind.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - respFind, err = instanceResource.BatchFind(getContext(), &pb.BatchFindInstancesRequest{ + respFind, err = discosvc.BatchFindInstances(getContext(), &pb.BatchFindInstancesRequest{ ConsumerServiceId: serviceId1, Services: []*pb.FindService{ { @@ -1315,7 +1317,7 @@ var _ = Describe("'Instance' service", func() { Expect(respFind.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) By("invalid version") - respFind, err = instanceResource.BatchFind(getContext(), &pb.BatchFindInstancesRequest{ + respFind, err = discosvc.BatchFindInstances(getContext(), &pb.BatchFindInstancesRequest{ ConsumerServiceId: serviceId1, Services: []*pb.FindService{ { @@ -1329,7 +1331,7 @@ var _ = Describe("'Instance' service", func() { }) Expect(err).To(BeNil()) Expect(respFind.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - respFind, err = instanceResource.BatchFind(getContext(), &pb.BatchFindInstancesRequest{ + respFind, err = discosvc.BatchFindInstances(getContext(), &pb.BatchFindInstancesRequest{ ConsumerServiceId: serviceId1, Services: []*pb.FindService{ { @@ -1343,7 +1345,7 @@ var _ = Describe("'Instance' service", func() { }) Expect(err).To(BeNil()) Expect(respFind.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - respFind, err = instanceResource.BatchFind(getContext(), &pb.BatchFindInstancesRequest{ + respFind, err = discosvc.BatchFindInstances(getContext(), &pb.BatchFindInstancesRequest{ ConsumerServiceId: serviceId1, Services: []*pb.FindService{ { @@ -1357,7 +1359,7 @@ var _ = Describe("'Instance' service", func() { }) Expect(err).To(BeNil()) Expect(respFind.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - respFind, err = instanceResource.BatchFind(getContext(), &pb.BatchFindInstancesRequest{ + respFind, err = discosvc.BatchFindInstances(getContext(), &pb.BatchFindInstancesRequest{ ConsumerServiceId: serviceId1, Services: []*pb.FindService{ { @@ -1373,7 +1375,7 @@ var _ = Describe("'Instance' service", func() { Expect(respFind.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) By("invalid instance") - respFind, err = instanceResource.BatchFind(getContext(), &pb.BatchFindInstancesRequest{ + respFind, err = discosvc.BatchFindInstances(getContext(), &pb.BatchFindInstancesRequest{ ConsumerServiceId: serviceId1, Instances: []*pb.FindInstance{ { @@ -1385,7 +1387,7 @@ var _ = Describe("'Instance' service", func() { }) Expect(err).To(BeNil()) Expect(respFind.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - respFind, err = instanceResource.BatchFind(getContext(), &pb.BatchFindInstancesRequest{ + respFind, err = discosvc.BatchFindInstances(getContext(), &pb.BatchFindInstancesRequest{ ConsumerServiceId: serviceId1, Instances: []*pb.FindInstance{ { @@ -1399,7 +1401,7 @@ var _ = Describe("'Instance' service", func() { Expect(respFind.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) By("consumerId is empty") - respFind, err = instanceResource.BatchFind(getContext(), &pb.BatchFindInstancesRequest{ + respFind, err = discosvc.BatchFindInstances(getContext(), &pb.BatchFindInstancesRequest{ ConsumerServiceId: serviceId1, Services: []*pb.FindService{ { @@ -1415,7 +1417,7 @@ var _ = Describe("'Instance' service", func() { Expect(respFind.Response.GetCode()).To(Equal(pb.ResponseSuccess)) By("provider does not exist") - respFind, err = instanceResource.BatchFind(getContext(), &pb.BatchFindInstancesRequest{ + respFind, err = discosvc.BatchFindInstances(getContext(), &pb.BatchFindInstancesRequest{ ConsumerServiceId: serviceId1, Services: []*pb.FindService{ { @@ -1431,7 +1433,7 @@ var _ = Describe("'Instance' service", func() { Expect(respFind.Response.GetCode()).To(Equal(pb.ResponseSuccess)) Expect(respFind.Services.Failed[0].Error.Code).To(Equal(pb.ErrServiceNotExists)) Expect(respFind.Services.Failed[0].Indexes[0]).To(Equal(int64(0))) - respFind, err = instanceResource.BatchFind(getContext(), &pb.BatchFindInstancesRequest{ + respFind, err = discosvc.BatchFindInstances(getContext(), &pb.BatchFindInstancesRequest{ ConsumerServiceId: serviceId1, Instances: []*pb.FindInstance{ { @@ -1448,7 +1450,7 @@ var _ = Describe("'Instance' service", func() { Expect(respFind.Instances.Failed[0].Indexes[0]).To(Equal(int64(0))) By("provider does not contain 3.0.0+ versions") - respFind, err = instanceResource.BatchFind(getContext(), &pb.BatchFindInstancesRequest{ + respFind, err = discosvc.BatchFindInstances(getContext(), &pb.BatchFindInstancesRequest{ ConsumerServiceId: serviceId1, Services: []*pb.FindService{ { @@ -1467,7 +1469,7 @@ var _ = Describe("'Instance' service", func() { Expect(respFind.Services.Updated[0].Rev).ToNot(Equal("")) By("consumer does not exist") - respFind, err = instanceResource.BatchFind(getContext(), &pb.BatchFindInstancesRequest{ + respFind, err = discosvc.BatchFindInstances(getContext(), &pb.BatchFindInstancesRequest{ ConsumerServiceId: "notExistServiceId", Services: []*pb.FindService{ { @@ -1489,7 +1491,7 @@ var _ = Describe("'Instance' service", func() { Context("when query instances", func() { It("should be passed", func() { By("find with version rule") - respFind, err := instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err := discosvc.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: serviceId1, AppId: "query_instance", ServiceName: "query_instance_service", @@ -1499,7 +1501,7 @@ var _ = Describe("'Instance' service", func() { Expect(respFind.Response.GetCode()).To(Equal(pb.ResponseSuccess)) Expect(respFind.Instances[0].InstanceId).To(Equal(instanceId2)) - respFind, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err = discosvc.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: serviceId1, AppId: "query_instance", ServiceName: "query_instance_service", @@ -1510,7 +1512,7 @@ var _ = Describe("'Instance' service", func() { Expect(respFind.Response.GetCode()).To(Equal(pb.ResponseSuccess)) Expect(respFind.Instances[0].InstanceId).To(Equal(instanceId2)) - respFind, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err = discosvc.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: serviceId1, AppId: "query_instance", ServiceName: "query_instance_service", @@ -1520,7 +1522,7 @@ var _ = Describe("'Instance' service", func() { Expect(respFind.Response.GetCode()).To(Equal(pb.ResponseSuccess)) Expect(respFind.Instances[0].InstanceId).To(Equal(instanceId1)) - respFind, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err = discosvc.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: serviceId1, AppId: "query_instance", ServiceName: "query_instance_service", @@ -1530,7 +1532,7 @@ var _ = Describe("'Instance' service", func() { Expect(respFind.Response.GetCode()).To(Equal(pb.ResponseSuccess)) Expect(respFind.Instances[0].InstanceId).To(Equal(instanceId1)) - respFind, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err = discosvc.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: serviceId1, AppId: "query_instance", ServiceName: "query_instance_service", @@ -1540,7 +1542,7 @@ var _ = Describe("'Instance' service", func() { Expect(respFind.Response.GetCode()).To(Equal(pb.ErrServiceNotExists)) By("find with env") - respFind, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err = discosvc.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: serviceId4, AppId: "query_instance", ServiceName: "query_instance_diff_env_service", @@ -1551,7 +1553,7 @@ var _ = Describe("'Instance' service", func() { Expect(len(respFind.Instances)).To(Equal(1)) Expect(respFind.Instances[0].InstanceId).To(Equal(instanceId4)) - respFind, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err = discosvc.FindInstances(getContext(), &pb.FindInstancesRequest{ Environment: pb.ENV_PROD, AppId: "query_instance", ServiceName: "query_instance_diff_env_service", @@ -1564,7 +1566,7 @@ var _ = Describe("'Instance' service", func() { By("find with rev") ctx := util.SetContext(getContext(), util.CtxNocache, "") - respFind, err = instanceResource.Find(ctx, &pb.FindInstancesRequest{ + respFind, err = discosvc.FindInstances(ctx, &pb.FindInstancesRequest{ ConsumerServiceId: serviceId8, AppId: "query_instance", ServiceName: "query_instance_with_rev", @@ -1577,7 +1579,7 @@ var _ = Describe("'Instance' service", func() { Expect(len(rev)).NotTo(Equal(0)) util.WithRequestRev(ctx, "x") - respFind, err = instanceResource.Find(ctx, &pb.FindInstancesRequest{ + respFind, err = discosvc.FindInstances(ctx, &pb.FindInstancesRequest{ ConsumerServiceId: serviceId8, AppId: "query_instance", ServiceName: "query_instance_with_rev", @@ -1589,7 +1591,7 @@ var _ = Describe("'Instance' service", func() { Expect(ctx.Value(util.CtxResponseRevision)).To(Equal(rev)) util.WithRequestRev(ctx, rev) - respFind, err = instanceResource.Find(ctx, &pb.FindInstancesRequest{ + respFind, err = discosvc.FindInstances(ctx, &pb.FindInstancesRequest{ ConsumerServiceId: serviceId8, AppId: "query_instance", ServiceName: "query_instance_with_rev", @@ -1601,7 +1603,7 @@ var _ = Describe("'Instance' service", func() { Expect(ctx.Value(util.CtxResponseRevision)).To(Equal(rev)) By("find should return 200 even if consumer is diff apps") - respFind, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err = discosvc.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: serviceId3, AppId: "query_instance", ServiceName: "query_instance_service", @@ -1612,7 +1614,7 @@ var _ = Describe("'Instance' service", func() { Expect(len(respFind.Instances)).To(Equal(0)) By("provider tag does not exist") - respFind, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err = discosvc.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: serviceId1, AppId: "query_instance", ServiceName: "query_instance_service", @@ -1628,7 +1630,7 @@ var _ = Describe("'Instance' service", func() { core.RegisterGlobalServices() core.Service.Environment = pb.ENV_PROD - respFind, err = instanceResource.Find( + respFind, err = discosvc.FindInstances( util.SetTargetDomainProject( util.SetDomainProject(util.CloneContext(getContext()), "user", "user"), "default", "default"), @@ -1643,7 +1645,7 @@ var _ = Describe("'Instance' service", func() { Expect(len(respFind.Instances)).To(Equal(1)) Expect(respFind.Instances[0].InstanceId).To(Equal(instanceId5)) - respFind, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err = discosvc.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: serviceId7, AppId: "default", ServiceName: "query_instance_shared_provider", @@ -1672,7 +1674,7 @@ var _ = Describe("'Instance' service", func() { Context("when batch query instances", func() { It("should be passed", func() { By("find with version rule") - respFind, err := instanceResource.BatchFind(getContext(), &pb.BatchFindInstancesRequest{ + respFind, err := discosvc.BatchFindInstances(getContext(), &pb.BatchFindInstancesRequest{ ConsumerServiceId: serviceId1, Services: []*pb.FindService{ { @@ -1708,7 +1710,7 @@ var _ = Describe("'Instance' service", func() { Expect(respFind.Services.Failed[0].Error.Code).To(Equal(pb.ErrServiceNotExists)) By("find with env") - respFind, err = instanceResource.BatchFind(getContext(), &pb.BatchFindInstancesRequest{ + respFind, err = discosvc.BatchFindInstances(getContext(), &pb.BatchFindInstancesRequest{ ConsumerServiceId: serviceId4, Services: []*pb.FindService{ { @@ -1725,7 +1727,7 @@ var _ = Describe("'Instance' service", func() { Expect(len(respFind.Services.Updated[0].Instances)).To(Equal(1)) Expect(respFind.Services.Updated[0].Instances[0].InstanceId).To(Equal(instanceId4)) - respFind, err = instanceResource.BatchFind(getContext(), &pb.BatchFindInstancesRequest{ + respFind, err = discosvc.BatchFindInstances(getContext(), &pb.BatchFindInstancesRequest{ Services: []*pb.FindService{ { Service: &pb.MicroServiceKey{ @@ -1744,7 +1746,7 @@ var _ = Describe("'Instance' service", func() { By("find with rev") ctx := util.SetContext(getContext(), util.CtxNocache, "") - respFind, err = instanceResource.BatchFind(ctx, &pb.BatchFindInstancesRequest{ + respFind, err = discosvc.BatchFindInstances(ctx, &pb.BatchFindInstancesRequest{ ConsumerServiceId: serviceId8, Services: []*pb.FindService{ { @@ -1792,7 +1794,7 @@ var _ = Describe("'Instance' service", func() { Expect(respFind.Instances.Updated[1].Instances[0].InstanceId).To(Equal(instanceId8)) Expect(len(instanceRev)).NotTo(Equal(0)) - respFind, err = instanceResource.BatchFind(ctx, &pb.BatchFindInstancesRequest{ + respFind, err = discosvc.BatchFindInstances(ctx, &pb.BatchFindInstancesRequest{ ConsumerServiceId: serviceId8, Services: []*pb.FindService{ { @@ -1821,7 +1823,7 @@ var _ = Describe("'Instance' service", func() { Expect(respFind.Instances.Updated[0].Instances[0].InstanceId).To(Equal(instanceId9)) Expect(respFind.Instances.Updated[0].Rev).To(Equal(instanceRev)) - respFind, err = instanceResource.BatchFind(ctx, &pb.BatchFindInstancesRequest{ + respFind, err = discosvc.BatchFindInstances(ctx, &pb.BatchFindInstancesRequest{ ConsumerServiceId: serviceId8, Services: []*pb.FindService{ { @@ -1849,7 +1851,7 @@ var _ = Describe("'Instance' service", func() { Expect(respFind.Instances.NotModified[0]).To(Equal(int64(0))) By("find should return 200 even if consumer is diff apps") - respFind, err = instanceResource.BatchFind(getContext(), &pb.BatchFindInstancesRequest{ + respFind, err = discosvc.BatchFindInstances(getContext(), &pb.BatchFindInstancesRequest{ ConsumerServiceId: serviceId3, Services: []*pb.FindService{ { @@ -1870,7 +1872,7 @@ var _ = Describe("'Instance' service", func() { core.RegisterGlobalServices() core.Service.Environment = pb.ENV_PROD - respFind, err = instanceResource.BatchFind( + respFind, err = discosvc.BatchFindInstances( util.SetTargetDomainProject( util.SetDomainProject(util.CloneContext(getContext()), "user", "user"), "default", "default"), @@ -1891,7 +1893,7 @@ var _ = Describe("'Instance' service", func() { Expect(len(respFind.Services.Updated[0].Instances)).To(Equal(1)) Expect(respFind.Services.Updated[0].Instances[0].InstanceId).To(Equal(instanceId5)) - respFind, err = instanceResource.BatchFind(getContext(), &pb.BatchFindInstancesRequest{ + respFind, err = discosvc.BatchFindInstances(getContext(), &pb.BatchFindInstancesRequest{ ConsumerServiceId: serviceId7, Services: []*pb.FindService{ { @@ -1908,7 +1910,7 @@ var _ = Describe("'Instance' service", func() { Expect(len(respFind.Services.Updated[0].Instances)).To(Equal(1)) Expect(respFind.Services.Updated[0].Instances[0].InstanceId).To(Equal(instanceId5)) - respFind, err = instanceResource.BatchFind( + respFind, err = discosvc.BatchFindInstances( util.SetTargetDomainProject( util.SetDomainProject(util.CloneContext(getContext()), "user", "user"), "default", "default"), @@ -1927,7 +1929,7 @@ var _ = Describe("'Instance' service", func() { Expect(respFind.Response.GetCode()).To(Equal(pb.ResponseSuccess)) Expect(respFind.Instances.Failed[0].Error.Code).To(Equal(pb.ErrServiceNotExists)) - respFind, err = instanceResource.BatchFind(getContext(), &pb.BatchFindInstancesRequest{ + respFind, err = discosvc.BatchFindInstances(getContext(), &pb.BatchFindInstancesRequest{ ConsumerServiceId: serviceId7, Instances: []*pb.FindInstance{ { @@ -1951,7 +1953,7 @@ var _ = Describe("'Instance' service", func() { It("should be failed", func() { By("diff appId") UTFunc := func(consumerId string, code int32) { - respFind, err := instanceResource.GetInstances(getContext(), &pb.GetInstancesRequest{ + respFind, err := discosvc.GetInstances(getContext(), &pb.GetInstancesRequest{ ConsumerServiceId: consumerId, ProviderServiceId: serviceId2, }) @@ -1964,7 +1966,7 @@ var _ = Describe("'Instance' service", func() { UTFunc(serviceId1, pb.ResponseSuccess) By("diff env") - respFind, err := instanceResource.GetInstances(getContext(), &pb.GetInstancesRequest{ + respFind, err := discosvc.GetInstances(getContext(), &pb.GetInstancesRequest{ ConsumerServiceId: serviceId4, ProviderServiceId: serviceId2, }) @@ -2012,7 +2014,7 @@ var _ = Describe("'Instance' service", func() { Expect(respCreate.Response.GetCode()).To(Equal(pb.ResponseSuccess)) serviceId2 = respCreate.ServiceId - resp, err := instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err := discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: serviceId2, HostName: "UT-HOST", @@ -2042,7 +2044,7 @@ var _ = Describe("'Instance' service", func() { Context("when get one instance request is invalid", func() { It("should be failed", func() { By("find service itself") - resp, err := instanceResource.GetOneInstance(getContext(), &pb.GetOneInstanceRequest{ + resp, err := discosvc.GetOneInstance(getContext(), &pb.GetOneInstanceRequest{ ConsumerServiceId: serviceId2, ProviderServiceId: serviceId2, ProviderInstanceId: instanceId2, @@ -2051,7 +2053,7 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).To(Equal(pb.ResponseSuccess)) By("provider id is empty") - resp, err = instanceResource.GetOneInstance(getContext(), &pb.GetOneInstanceRequest{ + resp, err = discosvc.GetOneInstance(getContext(), &pb.GetOneInstanceRequest{ ConsumerServiceId: serviceId1, ProviderServiceId: "", ProviderInstanceId: instanceId2, @@ -2060,7 +2062,7 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).ToNot(Equal(pb.ResponseSuccess)) By("provider instance id is empty") - resp, err = instanceResource.GetOneInstance(getContext(), &pb.GetOneInstanceRequest{ + resp, err = discosvc.GetOneInstance(getContext(), &pb.GetOneInstanceRequest{ ConsumerServiceId: serviceId1, ProviderServiceId: serviceId2, ProviderInstanceId: "", @@ -2069,7 +2071,7 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).ToNot(Equal(pb.ResponseSuccess)) By("consumer id is empty") - resp, err = instanceResource.GetOneInstance(getContext(), &pb.GetOneInstanceRequest{ + resp, err = discosvc.GetOneInstance(getContext(), &pb.GetOneInstanceRequest{ ConsumerServiceId: "", ProviderServiceId: serviceId2, ProviderInstanceId: instanceId2, @@ -2078,7 +2080,7 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).To(Equal(pb.ResponseSuccess)) By("consumer does not exist") - resp, err = instanceResource.GetOneInstance(getContext(), &pb.GetOneInstanceRequest{ + resp, err = discosvc.GetOneInstance(getContext(), &pb.GetOneInstanceRequest{ ConsumerServiceId: "not-exist-id", ProviderServiceId: serviceId2, ProviderInstanceId: instanceId2, @@ -2087,7 +2089,7 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).ToNot(Equal(pb.ResponseSuccess)) By("provider tag does not exist") - resp, err = instanceResource.GetOneInstance(getContext(), &pb.GetOneInstanceRequest{ + resp, err = discosvc.GetOneInstance(getContext(), &pb.GetOneInstanceRequest{ ConsumerServiceId: serviceId1, ProviderServiceId: serviceId2, ProviderInstanceId: instanceId2, @@ -2097,7 +2099,7 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).To(Equal(pb.ErrInstanceNotExists)) By("provider tag exist") - resp, err = instanceResource.GetOneInstance(getContext(), + resp, err = discosvc.GetOneInstance(getContext(), &pb.GetOneInstanceRequest{ ConsumerServiceId: serviceId1, ProviderServiceId: serviceId2, @@ -2111,7 +2113,7 @@ var _ = Describe("'Instance' service", func() { Context("when get between diff apps", func() { It("should be failed", func() { - resp, err := instanceResource.GetOneInstance(getContext(), &pb.GetOneInstanceRequest{ + resp, err := discosvc.GetOneInstance(getContext(), &pb.GetOneInstanceRequest{ ConsumerServiceId: serviceId3, ProviderServiceId: serviceId2, ProviderInstanceId: instanceId2, @@ -2119,7 +2121,7 @@ var _ = Describe("'Instance' service", func() { Expect(err).To(BeNil()) Expect(resp.Response.GetCode()).To(Equal(pb.ErrInstanceNotExists)) - respAll, err := instanceResource.GetInstances(getContext(), &pb.GetInstancesRequest{ + respAll, err := discosvc.GetInstances(getContext(), &pb.GetInstancesRequest{ ConsumerServiceId: serviceId3, ProviderServiceId: serviceId2, }) @@ -2131,7 +2133,7 @@ var _ = Describe("'Instance' service", func() { Context("when get instances request is invalid", func() { It("should be failed", func() { By("consumer id is empty") - resp, err := instanceResource.GetInstances(getContext(), &pb.GetInstancesRequest{ + resp, err := discosvc.GetInstances(getContext(), &pb.GetInstancesRequest{ ConsumerServiceId: "", ProviderServiceId: serviceId2, }) @@ -2139,7 +2141,7 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).To(Equal(pb.ResponseSuccess)) By("consumer does not exist") - resp, err = instanceResource.GetInstances(getContext(), &pb.GetInstancesRequest{ + resp, err = discosvc.GetInstances(getContext(), &pb.GetInstancesRequest{ ConsumerServiceId: "noneservice", ProviderServiceId: serviceId2, }) @@ -2147,7 +2149,7 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).ToNot(Equal(pb.ResponseSuccess)) By("valid request") - resp, err = instanceResource.GetInstances(getContext(), &pb.GetInstancesRequest{ + resp, err = discosvc.GetInstances(getContext(), &pb.GetInstancesRequest{ ConsumerServiceId: serviceId1, ProviderServiceId: serviceId2, }) @@ -2180,7 +2182,7 @@ var _ = Describe("'Instance' service", func() { Expect(respCreate.Response.GetCode()).To(Equal(pb.ResponseSuccess)) serviceId = respCreate.ServiceId - resp, err := instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + resp, err := discosvc.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: serviceId, HostName: "UT-HOST", @@ -2197,7 +2199,7 @@ var _ = Describe("'Instance' service", func() { Context("when request is valid", func() { It("should be passed", func() { - resp, err := instanceResource.Unregister(getContext(), &pb.UnregisterInstanceRequest{ + resp, err := discosvc.UnregisterInstance(getContext(), &pb.UnregisterInstanceRequest{ ServiceId: serviceId, InstanceId: instanceId, }) @@ -2209,13 +2211,13 @@ var _ = Describe("'Instance' service", func() { Context("when request is invalid", func() { It("should be failed", func() { By("service id is invalid") - resp, err := instanceResource.Unregister(getContext(), &pb.UnregisterInstanceRequest{ + resp, err := discosvc.UnregisterInstance(getContext(), &pb.UnregisterInstanceRequest{ ServiceId: "", InstanceId: instanceId, }) Expect(err).To(BeNil()) Expect(resp.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - resp, err = instanceResource.Unregister(getContext(), &pb.UnregisterInstanceRequest{ + resp, err = discosvc.UnregisterInstance(getContext(), &pb.UnregisterInstanceRequest{ ServiceId: TOO_LONG_SERVICEID, InstanceId: instanceId, }) @@ -2223,7 +2225,7 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) By("service does not exist") - resp, err = instanceResource.Unregister(getContext(), &pb.UnregisterInstanceRequest{ + resp, err = discosvc.UnregisterInstance(getContext(), &pb.UnregisterInstanceRequest{ ServiceId: "not-exist-id", InstanceId: instanceId, }) @@ -2231,19 +2233,19 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).ToNot(Equal(pb.ResponseSuccess)) By("instance is invalid") - resp, err = instanceResource.Unregister(getContext(), &pb.UnregisterInstanceRequest{ + resp, err = discosvc.UnregisterInstance(getContext(), &pb.UnregisterInstanceRequest{ ServiceId: serviceId, InstanceId: "", }) Expect(err).To(BeNil()) Expect(resp.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - resp, err = instanceResource.Unregister(getContext(), &pb.UnregisterInstanceRequest{ + resp, err = discosvc.UnregisterInstance(getContext(), &pb.UnregisterInstanceRequest{ ServiceId: serviceId, InstanceId: "@", }) Expect(err).To(BeNil()) Expect(resp.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) - resp, err = instanceResource.Unregister(getContext(), &pb.UnregisterInstanceRequest{ + resp, err = discosvc.UnregisterInstance(getContext(), &pb.UnregisterInstanceRequest{ ServiceId: serviceId, InstanceId: TOO_LONG_SERVICEID, }) @@ -2251,7 +2253,7 @@ var _ = Describe("'Instance' service", func() { Expect(resp.Response.GetCode()).To(Equal(pb.ErrInvalidParams)) By("instance does not exist") - resp, err = instanceResource.Unregister(getContext(), &pb.UnregisterInstanceRequest{ + resp, err = discosvc.UnregisterInstance(getContext(), &pb.UnregisterInstanceRequest{ ServiceId: serviceId, InstanceId: "not-exist-id", }) diff --git a/server/service/disco/metadata_dao.go b/server/service/disco/metadata_dao.go new file mode 100644 index 0000000..1120209 --- /dev/null +++ b/server/service/disco/metadata_dao.go @@ -0,0 +1,12 @@ +package disco + +import ( + "context" + + "github.com/apache/servicecomb-service-center/datasource" + pb "github.com/go-chassis/cari/discovery" +) + +func RegisterService(ctx context.Context, request *pb.CreateServiceRequest) (*pb.CreateServiceResponse, error) { + return datasource.GetMetadataManager().RegisterService(ctx, request) +} diff --git a/server/service/microservice.go b/server/service/disco/microservice.go similarity index 96% rename from server/service/microservice.go rename to server/service/disco/microservice.go index 1f2a40c..bcc9eae 100644 --- a/server/service/microservice.go +++ b/server/service/disco/microservice.go @@ -15,7 +15,7 @@ * limitations under the License. */ -package service +package disco import ( "context" @@ -27,7 +27,6 @@ import ( "github.com/apache/servicecomb-service-center/datasource" "github.com/apache/servicecomb-service-center/pkg/gopool" "github.com/apache/servicecomb-service-center/pkg/log" - "github.com/apache/servicecomb-service-center/pkg/proto" "github.com/apache/servicecomb-service-center/pkg/util" "github.com/apache/servicecomb-service-center/server/core" "github.com/apache/servicecomb-service-center/server/plugin/quota" @@ -35,14 +34,8 @@ import ( ) type MicroServiceService struct { - instanceService proto.ServiceInstanceCtrlServerEx } -const ( - ExistTypeMicroservice = "microservice" - ExistTypeSchema = "schema" -) - func (s *MicroServiceService) Create(ctx context.Context, in *pb.CreateServiceRequest) (*pb.CreateServiceResponse, error) { if in == nil || in.Service == nil { log.Errorf(nil, "create micro-service failed: request body is empty") @@ -94,7 +87,7 @@ func (s *MicroServiceService) CreateServicePri(ctx context.Context, in *pb.Creat return resp, nil } - return datasource.GetMetadataManager().RegisterService(ctx, in) + return RegisterService(ctx, in) } func (s *MicroServiceService) Delete(ctx context.Context, in *pb.DeleteServiceRequest) (*pb.DeleteServiceResponse, error) { @@ -235,7 +228,7 @@ func (s *MicroServiceService) UpdateProperties(ctx context.Context, in *pb.Updat func (s *MicroServiceService) Exist(ctx context.Context, in *pb.GetExistenceRequest) (*pb.GetExistenceResponse, error) { switch in.Type { - case ExistTypeMicroservice: + case datasource.ExistTypeMicroservice: err := validator.ExistenceReqValidator().Validate(in) if err != nil { serviceFlag := util.StringJoin([]string{in.Environment, in.AppId, in.ServiceName, in.Version}, "/") @@ -246,7 +239,7 @@ func (s *MicroServiceService) Exist(ctx context.Context, in *pb.GetExistenceRequ } return datasource.GetMetadataManager().ExistService(ctx, in) - case ExistTypeSchema: + case datasource.ExistTypeSchema: err := validator.GetSchemaReqValidator().Validate(in) if err != nil { log.Errorf(err, "schema[%s/%s] exist failed", in.ServiceId, in.SchemaId) @@ -321,7 +314,7 @@ func (s *MicroServiceService) CreateServiceEx(ctx context.Context, in *pb.Create Instance: ins, } req.Instance.ServiceId = serviceID - rsp, err := s.instanceService.Register(ctx, req) + rsp, err := RegisterInstance(ctx, req) if err != nil { chanRsp.Message += fmt.Sprintf("{instance:%v,result:%s}", ins.Endpoints, err.Error()) } diff --git a/server/service/microservice_test.go b/server/service/disco/microservice_test.go similarity index 99% rename from server/service/microservice_test.go rename to server/service/disco/microservice_test.go index 9b5ed72..ee8eb3f 100644 --- a/server/service/microservice_test.go +++ b/server/service/disco/microservice_test.go @@ -14,12 +14,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package service_test +package disco_test import ( "strconv" "strings" + "github.com/apache/servicecomb-service-center/server/service/disco" + "github.com/apache/servicecomb-service-center/server/core" "github.com/apache/servicecomb-service-center/server/plugin/quota" pb "github.com/go-chassis/cari/discovery" @@ -160,7 +162,7 @@ var _ = Describe("'Micro-service' service", func() { Expect(respGetRules.Response.GetCode()).To(Equal(pb.ResponseSuccess)) Expect(respGetRules.Rules[0].Attribute).To(Equal("ServiceName")) - respGetInsts, err := instanceResource.GetInstances(getContext(), &pb.GetInstancesRequest{ + respGetInsts, err := disco.GetInstances(getContext(), &pb.GetInstancesRequest{ ConsumerServiceId: resp.ServiceId, ProviderServiceId: resp.ServiceId, }) @@ -1192,7 +1194,7 @@ var _ = Describe("'Micro-service' service", func() { Expect(respCreate.Response.GetCode()).To(Equal(pb.ResponseSuccess)) serviceConsumerId = respCreate.ServiceId - respFind, err := instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err := disco.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: serviceConsumerId, AppId: provider.AppId, ServiceName: provider.ServiceName, diff --git a/server/service/rule.go b/server/service/disco/rule.go similarity index 99% rename from server/service/rule.go rename to server/service/disco/rule.go index a452952..13a4f68 100644 --- a/server/service/rule.go +++ b/server/service/disco/rule.go @@ -15,7 +15,7 @@ * limitations under the License. */ -package service +package disco import ( "context" diff --git a/server/service/rule_test.go b/server/service/disco/rule_test.go similarity index 97% rename from server/service/rule_test.go rename to server/service/disco/rule_test.go index 7f16fdf..6348a27 100644 --- a/server/service/rule_test.go +++ b/server/service/disco/rule_test.go @@ -14,11 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package service_test +package disco_test import ( "strconv" + discosvc "github.com/apache/servicecomb-service-center/server/service/disco" + "github.com/apache/servicecomb-service-center/server/plugin/quota" pb "github.com/go-chassis/cari/discovery" . "github.com/onsi/ginkgo" @@ -676,7 +678,7 @@ var _ = Describe("'Rule' service", func() { Context("when query instances", func() { It("should be failed", func() { By("consumer version in black list") - resp, err := instanceResource.GetInstances(getContext(), &pb.GetInstancesRequest{ + resp, err := discosvc.GetInstances(getContext(), &pb.GetInstancesRequest{ ConsumerServiceId: consumerVersion, ProviderServiceId: providerBlack, }) @@ -684,7 +686,7 @@ var _ = Describe("'Rule' service", func() { Expect(resp.Response.GetCode()).To(Equal(pb.ErrServiceNotExists)) By("consumer tag in black list") - resp, err = instanceResource.GetInstances(getContext(), &pb.GetInstancesRequest{ + resp, err = discosvc.GetInstances(getContext(), &pb.GetInstancesRequest{ ConsumerServiceId: consumerTag, ProviderServiceId: providerBlack, }) @@ -692,7 +694,7 @@ var _ = Describe("'Rule' service", func() { Expect(resp.Response.GetCode()).To(Equal(pb.ErrServiceNotExists)) By("find should return 200 even if consumer permission deny") - respFind, err := instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err := discosvc.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: consumerVersion, AppId: "query_instance_tag", ServiceName: "query_instance_tag_service", @@ -701,7 +703,7 @@ var _ = Describe("'Rule' service", func() { Expect(err).To(BeNil()) Expect(respFind.Response.GetCode()).To(Equal(pb.ResponseSuccess)) Expect(len(respFind.Instances)).To(Equal(0)) - respFind, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + respFind, err = discosvc.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: consumerTag, AppId: "query_instance_tag", ServiceName: "query_instance_tag_service", @@ -712,7 +714,7 @@ var _ = Describe("'Rule' service", func() { Expect(len(respFind.Instances)).To(Equal(0)) By("consumer not in black list") - resp, err = instanceResource.GetInstances(getContext(), &pb.GetInstancesRequest{ + resp, err = discosvc.GetInstances(getContext(), &pb.GetInstancesRequest{ ConsumerServiceId: providerWhite, ProviderServiceId: providerBlack, }) @@ -720,7 +722,7 @@ var _ = Describe("'Rule' service", func() { Expect(resp.Response.GetCode()).To(Equal(pb.ResponseSuccess)) By("consumer not in white list") - resp, err = instanceResource.GetInstances(getContext(), &pb.GetInstancesRequest{ + resp, err = discosvc.GetInstances(getContext(), &pb.GetInstancesRequest{ ConsumerServiceId: providerBlack, ProviderServiceId: providerWhite, }) @@ -728,7 +730,7 @@ var _ = Describe("'Rule' service", func() { Expect(resp.Response.GetCode()).To(Equal(pb.ErrServiceNotExists)) By("consumer version in white list") - resp, err = instanceResource.GetInstances(getContext(), &pb.GetInstancesRequest{ + resp, err = discosvc.GetInstances(getContext(), &pb.GetInstancesRequest{ ConsumerServiceId: consumerVersion, ProviderServiceId: providerWhite, }) @@ -736,7 +738,7 @@ var _ = Describe("'Rule' service", func() { Expect(resp.Response.GetCode()).To(Equal(pb.ResponseSuccess)) By("consumer tag in white list") - resp, err = instanceResource.GetInstances(getContext(), &pb.GetInstancesRequest{ + resp, err = discosvc.GetInstances(getContext(), &pb.GetInstancesRequest{ ConsumerServiceId: consumerTag, ProviderServiceId: providerWhite, }) diff --git a/server/service/schema.go b/server/service/disco/schema.go similarity index 99% rename from server/service/schema.go rename to server/service/disco/schema.go index 673946a..5824767 100644 --- a/server/service/schema.go +++ b/server/service/disco/schema.go @@ -15,7 +15,7 @@ * limitations under the License. */ -package service +package disco import ( "github.com/apache/servicecomb-service-center/datasource" diff --git a/server/service/schema_test.go b/server/service/disco/schema_test.go similarity index 99% rename from server/service/schema_test.go rename to server/service/disco/schema_test.go index 8a3c29b..46e6958 100644 --- a/server/service/schema_test.go +++ b/server/service/disco/schema_test.go @@ -14,14 +14,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package service_test +package disco_test import ( "strconv" "strings" + "github.com/apache/servicecomb-service-center/datasource" + + "github.com/apache/servicecomb-service-center/server/service/disco" + "github.com/apache/servicecomb-service-center/server/plugin/quota" - "github.com/apache/servicecomb-service-center/server/service" pb "github.com/go-chassis/cari/discovery" . "github.com/onsi/ginkgo" @@ -522,7 +525,7 @@ var _ = Describe("'Schema' service", func() { Expect(respModifySchemas.Response.GetCode()).To(Equal(pb.ErrUndefinedSchemaID)) respExist, err := serviceResource.Exist(getContext(), &pb.GetExistenceRequest{ - Type: service.ExistTypeSchema, + Type: datasource.ExistTypeSchema, ServiceId: serviceIdPro1, SchemaId: "first_schemaId", }) @@ -558,7 +561,7 @@ var _ = Describe("'Schema' service", func() { Expect(respModifySchemas.Response.GetCode()).To(Equal(pb.ResponseSuccess)) respExist, err := serviceResource.Exist(getContext(), &pb.GetExistenceRequest{ - Type: service.ExistTypeSchema, + Type: datasource.ExistTypeSchema, ServiceId: serviceIdPro2, SchemaId: "first_schemaId", }) @@ -901,7 +904,7 @@ var _ = Describe("'Schema' service", func() { }, } By("schema edit not allowed, add a schema with new schemaId should fail") - localServiceResource := service.NewMicroServiceService(instanceResource) + localServiceResource := disco.NewMicroServiceService() respModifySchemas, err = localServiceResource.ModifySchemas(getContext(), &pb.ModifySchemasRequest{ ServiceId: serviceIdPro1, Schemas: schemas, @@ -956,7 +959,7 @@ var _ = Describe("'Schema' service", func() { Expect(respGetOne.Service.Schemas).To(Equal([]string{"first_schemaId"})) By("schema edit not allowed, modify a schema should fail") - localServiceResource := service.NewMicroServiceService(instanceResource) + localServiceResource := disco.NewMicroServiceService() respModifySchema, err := localServiceResource.ModifySchema(getContext(), &pb.ModifySchemaRequest{ ServiceId: serviceIdPro1, SchemaId: schemas[0].SchemaId, diff --git a/server/service/service.go b/server/service/disco/service.go similarity index 63% rename from server/service/service.go rename to server/service/disco/service.go index 6953878..6eda7c8 100644 --- a/server/service/service.go +++ b/server/service/disco/service.go @@ -15,25 +15,21 @@ * limitations under the License. */ -package service +package disco import ( "github.com/apache/servicecomb-service-center/pkg/proto" ) var ( - serviceService proto.ServiceCtrlServer - instanceService proto.ServiceInstanceCtrlServerEx + serviceService proto.ServiceCtrlServer ) -func AssembleResources() (proto.ServiceCtrlServer, proto.ServiceInstanceCtrlServerEx) { - instanceService = &InstanceService{} - serviceService = NewMicroServiceService(instanceService) - return serviceService, instanceService +func AssembleResources() proto.ServiceCtrlServer { + serviceService = NewMicroServiceService() + return serviceService } -func NewMicroServiceService(instCtrlServer proto.ServiceInstanceCtrlServerEx) *MicroServiceService { - return &MicroServiceService{ - instanceService: instCtrlServer, - } +func NewMicroServiceService() *MicroServiceService { + return &MicroServiceService{} } diff --git a/server/service/service_suite_test.go b/server/service/disco/service_suite_test.go similarity index 88% rename from server/service/service_suite_test.go rename to server/service/disco/service_suite_test.go index 58b4036..643c4f1 100644 --- a/server/service/service_suite_test.go +++ b/server/service/disco/service_suite_test.go @@ -14,15 +14,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package service_test +package disco_test // initialize import ( "context" + "github.com/apache/servicecomb-service-center/server/service/disco" + "github.com/apache/servicecomb-service-center/pkg/proto" "github.com/apache/servicecomb-service-center/pkg/util" - "github.com/apache/servicecomb-service-center/server/service" _ "github.com/apache/servicecomb-service-center/test" . "github.com/onsi/ginkgo" @@ -34,10 +35,9 @@ import ( ) var serviceResource proto.ServiceCtrlServer -var instanceResource proto.ServiceInstanceCtrlServerEx var _ = BeforeSuite(func() { - serviceResource, instanceResource = service.AssembleResources() + serviceResource = disco.AssembleResources() }) func getContext() context.Context { diff --git a/server/service/tag.go b/server/service/disco/tag.go similarity index 99% rename from server/service/tag.go rename to server/service/disco/tag.go index 3561fea..0b217ba 100644 --- a/server/service/tag.go +++ b/server/service/disco/tag.go @@ -15,7 +15,7 @@ * limitations under the License. */ -package service +package disco import ( "context" diff --git a/server/service/tag_test.go b/server/service/disco/tag_test.go similarity index 97% rename from server/service/tag_test.go rename to server/service/disco/tag_test.go index 39f8f2c..92b63df 100644 --- a/server/service/tag_test.go +++ b/server/service/disco/tag_test.go @@ -14,13 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package service_test +package disco_test import ( "fmt" "strconv" "strings" + "github.com/apache/servicecomb-service-center/server/service/disco" + "github.com/apache/servicecomb-service-center/server/plugin/quota" pb "github.com/go-chassis/cari/discovery" . "github.com/onsi/ginkgo" @@ -349,7 +351,7 @@ var _ = Describe("'Tag' service", func() { Expect(err).To(BeNil()) Expect(addTagResp.Response.GetCode()).To(Equal(pb.ResponseSuccess)) - instanceResp, err := instanceResource.Register(getContext(), &pb.RegisterInstanceRequest{ + instanceResp, err := disco.RegisterInstance(getContext(), &pb.RegisterInstanceRequest{ Instance: &pb.MicroServiceInstance{ ServiceId: providerId, Endpoints: []string{ @@ -362,7 +364,7 @@ var _ = Describe("'Tag' service", func() { Expect(err).To(BeNil()) Expect(instanceResp.Response.GetCode()).To(Equal(pb.ResponseSuccess)) - findResp, err := instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + findResp, err := disco.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: consumerId, AppId: "find_inst_tag_group", ServiceName: "find_inst_tag_provider", @@ -373,7 +375,7 @@ var _ = Describe("'Tag' service", func() { Expect(findResp.Response.GetCode()).To(Equal(pb.ResponseSuccess)) Expect(len(findResp.Instances)).To(Equal(0)) - findResp, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + findResp, err = disco.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: consumerId, AppId: "find_inst_tag_group", ServiceName: "find_inst_tag_provider", @@ -398,7 +400,7 @@ var _ = Describe("'Tag' service", func() { Expect(err).To(BeNil()) Expect(respAddRule.Response.GetCode()).To(Equal(pb.ResponseSuccess)) - findResp, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + findResp, err = disco.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: consumerId, AppId: "find_inst_tag_group", ServiceName: "find_inst_tag_provider", @@ -416,7 +418,7 @@ var _ = Describe("'Tag' service", func() { Expect(err).To(BeNil()) Expect(addTagResp.Response.GetCode()).To(Equal(pb.ResponseSuccess)) - findResp, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{ + findResp, err = disco.FindInstances(getContext(), &pb.FindInstancesRequest{ ConsumerServiceId: consumerId, AppId: "find_inst_tag_group", ServiceName: "find_inst_tag_provider", diff --git a/server/service/watch.go b/server/service/disco/watch.go similarity index 69% rename from server/service/watch.go rename to server/service/disco/watch.go index 47f9465..8870816 100644 --- a/server/service/watch.go +++ b/server/service/disco/watch.go @@ -15,7 +15,7 @@ * limitations under the License. */ -package service +package disco import ( "context" @@ -29,11 +29,10 @@ import ( "github.com/apache/servicecomb-service-center/pkg/log" "github.com/apache/servicecomb-service-center/pkg/proto" "github.com/apache/servicecomb-service-center/server/connection/grpc" - "github.com/apache/servicecomb-service-center/server/connection/hbws" "github.com/apache/servicecomb-service-center/server/connection/ws" ) -func (s *InstanceService) WatchPreOpera(ctx context.Context, in *pb.WatchInstanceRequest) error { +func WatchPreOpera(ctx context.Context, in *pb.WatchInstanceRequest) error { if in == nil || len(in.SelfServiceId) == 0 { return errors.New("request format invalid") } @@ -50,26 +49,9 @@ func (s *InstanceService) WatchPreOpera(ctx context.Context, in *pb.WatchInstanc return nil } -func (s *InstanceService) HeartBeatPreOpera(ctx context.Context, in *pb.HeartbeatRequest) error { - if in == nil || len(in.ServiceId) == 0 || len(in.InstanceId) == 0 { - return errors.New("request format invalid") - } - resp, err := datasource.GetMetadataManager().ExistInstanceByID(ctx, &pb.MicroServiceInstanceKey{ - ServiceId: in.ServiceId, - InstanceId: in.InstanceId, - }) - if err != nil { - return err - } - if !resp.Exist { - return datasource.ErrInstanceNotExists - } - return nil -} - -func (s *InstanceService) Watch(in *pb.WatchInstanceRequest, stream proto.ServiceInstanceCtrlWatchServer) error { +func Watch(in *pb.WatchInstanceRequest, stream proto.ServiceInstanceCtrlWatchServer) error { log.Infof("new a stream list and watch with service[%s]", in.SelfServiceId) - if err := s.WatchPreOpera(stream.Context(), in); err != nil { + if err := WatchPreOpera(stream.Context(), in); err != nil { log.Errorf(err, "service[%s] establish watch failed: invalid params", in.SelfServiceId) return err } @@ -77,25 +59,16 @@ func (s *InstanceService) Watch(in *pb.WatchInstanceRequest, stream proto.Servic return grpc.Watch(stream.Context(), in.SelfServiceId, stream) } -func (s *InstanceService) WebSocketWatch(ctx context.Context, in *pb.WatchInstanceRequest, conn *websocket.Conn) { +func WebSocketWatch(ctx context.Context, in *pb.WatchInstanceRequest, conn *websocket.Conn) { log.Infof("new a web socket watch with service[%s]", in.SelfServiceId) - if err := s.WatchPreOpera(ctx, in); err != nil { + if err := WatchPreOpera(ctx, in); err != nil { ws.SendEstablishError(conn, err) return } ws.Watch(ctx, in.SelfServiceId, conn) } -func (s *InstanceService) WatchHeartbeat(ctx context.Context, in *pb.HeartbeatRequest, conn *websocket.Conn) { - log.Info(fmt.Sprintf("new a web socket with service[%s] ,instance[%s]", in.ServiceId, in.InstanceId)) - if err := s.HeartBeatPreOpera(ctx, in); err != nil { - hbws.SendEstablishError(conn, err) - return - } - hbws.Heartbeat(ctx, conn, in.ServiceId, in.InstanceId) -} - -func (s *InstanceService) QueryAllProvidersInstances(ctx context.Context, in *pb.WatchInstanceRequest) ([]*pb.WatchInstanceResponse, int64) { +func QueryAllProvidersInstances(ctx context.Context, in *pb.WatchInstanceRequest) ([]*pb.WatchInstanceResponse, int64) { depResp, err := datasource.GetDependencyManager().SearchConsumerDependency(ctx, &pb.GetDependenciesRequest{ ServiceId: in.SelfServiceId, }) diff --git a/server/service/watch_test.go b/server/service/disco/watch_test.go similarity index 81% rename from server/service/watch_test.go rename to server/service/disco/watch_test.go index a058399..46168d8 100644 --- a/server/service/watch_test.go +++ b/server/service/disco/watch_test.go @@ -14,13 +14,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package service_test +package disco_test import ( "context" "testing" - "github.com/apache/servicecomb-service-center/server/service" + "github.com/apache/servicecomb-service-center/server/service/disco" + pb "github.com/go-chassis/cari/discovery" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" @@ -43,7 +44,7 @@ func TestInstanceService_WebSocketWatch(t *testing.T) { defer func() { recover() }() - instanceResource.WebSocketWatch(context.Background(), &pb.WatchInstanceRequest{}, nil) + disco.WebSocketWatch(context.Background(), &pb.WatchInstanceRequest{}, nil) } var _ = Describe("'Instance' service", func() { @@ -70,25 +71,24 @@ var _ = Describe("'Instance' service", func() { Context("when request is invalid", func() { It("should be failed", func() { By("service does not exist") - IC := instanceResource.(*service.InstanceService) - err := IC.WatchPreOpera(getContext(), &pb.WatchInstanceRequest{ + err := disco.WatchPreOpera(getContext(), &pb.WatchInstanceRequest{ SelfServiceId: "-1", }) Expect(err).NotTo(BeNil()) - err = IC.Watch(&pb.WatchInstanceRequest{ + err = disco.Watch(&pb.WatchInstanceRequest{ SelfServiceId: "-1", }, &grpcWatchServer{}) Expect(err).NotTo(BeNil()) By("service id is empty") - err = instanceResource.(*service.InstanceService).WatchPreOpera(getContext(), &pb.WatchInstanceRequest{ + err = disco.WatchPreOpera(getContext(), &pb.WatchInstanceRequest{ SelfServiceId: "", }) Expect(err).NotTo(BeNil()) By("request is valid") - err = instanceResource.(*service.InstanceService).WatchPreOpera(getContext(), + err = disco.WatchPreOpera(getContext(), &pb.WatchInstanceRequest{ SelfServiceId: serviceId, }) diff --git a/server/connection/hbws/websocket.go b/server/service/heartbeat/websocket.go similarity index 82% rename from server/connection/hbws/websocket.go rename to server/service/heartbeat/websocket.go index 314f426..263ae2e 100644 --- a/server/connection/hbws/websocket.go +++ b/server/service/heartbeat/websocket.go @@ -15,14 +15,18 @@ * limitations under the License. */ -package hbws +package heartbeat import ( "context" + "errors" "fmt" "sync" "time" + "github.com/apache/servicecomb-service-center/datasource" + discosvc "github.com/apache/servicecomb-service-center/server/service/disco" + pb "github.com/go-chassis/cari/discovery" "github.com/gorilla/websocket" @@ -30,7 +34,6 @@ import ( "github.com/apache/servicecomb-service-center/pkg/util" "github.com/apache/servicecomb-service-center/server/config" "github.com/apache/servicecomb-service-center/server/connection" - "github.com/apache/servicecomb-service-center/server/core" "github.com/apache/servicecomb-service-center/server/metrics" ) @@ -122,7 +125,7 @@ func (c *client) handleMessage() { ServiceId: c.serviceID, InstanceId: c.instanceID, } - _, err = core.InstanceAPI.Heartbeat(c.cxt, request) + _, err = discosvc.Heartbeat(c.cxt, request) if err != nil { log.Error("instance heartbeat report failed ", err) } @@ -164,3 +167,28 @@ func process(client *client) { go client.heartbeat() client.handleMessage() } + +func WatchHeartbeat(ctx context.Context, in *pb.HeartbeatRequest, conn *websocket.Conn) { + log.Info(fmt.Sprintf("new a web socket with service[%s] ,instance[%s]", in.ServiceId, in.InstanceId)) + if err := preOp(ctx, in); err != nil { + SendEstablishError(conn, err) + return + } + Heartbeat(ctx, conn, in.ServiceId, in.InstanceId) +} +func preOp(ctx context.Context, in *pb.HeartbeatRequest) error { + if in == nil || len(in.ServiceId) == 0 || len(in.InstanceId) == 0 { + return errors.New("request format invalid") + } + resp, err := datasource.GetMetadataManager().ExistInstanceByID(ctx, &pb.MicroServiceInstanceKey{ + ServiceId: in.ServiceId, + InstanceId: in.InstanceId, + }) + if err != nil { + return err + } + if !resp.Exist { + return datasource.ErrInstanceNotExists + } + return nil +} diff --git a/server/connection/hbws/websocket_test.go b/server/service/heartbeat/websocket_test.go similarity index 93% rename from server/connection/hbws/websocket_test.go rename to server/service/heartbeat/websocket_test.go index f35f2f0..4b6744f 100644 --- a/server/connection/hbws/websocket_test.go +++ b/server/service/heartbeat/websocket_test.go @@ -17,7 +17,7 @@ * under the License. */ -package hbws_test +package heartbeat_test import ( "context" @@ -27,10 +27,11 @@ import ( "testing" "time" + "github.com/apache/servicecomb-service-center/server/service/heartbeat" + "github.com/gorilla/websocket" "github.com/stretchr/testify/assert" - "github.com/apache/servicecomb-service-center/server/connection/hbws" "github.com/apache/servicecomb-service-center/server/core" ) @@ -77,7 +78,7 @@ func NewTest() *watcherConn { func TestHeartbeat(t *testing.T) { mock := NewTest() - go hbws.Heartbeat(context.Background(), mock.serverConn, "", "") + go heartbeat.Heartbeat(context.Background(), mock.serverConn, "", "") err := mock.serverConn.WriteMessage(websocket.TextMessage, []byte("hello")) assert.Nil(t, err) _, p, err := mock.clientConn.ReadMessage() diff --git a/server/service/rbac/account_dao.go b/server/service/rbac/account_service.go similarity index 100% rename from server/service/rbac/account_dao.go rename to server/service/rbac/account_service.go diff --git a/server/service/rbac/account_dao_test.go b/server/service/rbac/account_service_test.go similarity index 100% rename from server/service/rbac/account_dao_test.go rename to server/service/rbac/account_service_test.go diff --git a/server/service/rbac/role.go b/server/service/rbac/init.go similarity index 100% rename from server/service/rbac/role.go rename to server/service/rbac/init.go diff --git a/server/service/rbac/role_dao.go b/server/service/rbac/role_service.go similarity index 100% rename from server/service/rbac/role_dao.go rename to server/service/rbac/role_service.go diff --git a/server/service/rbac/role_dao_test.go b/server/service/rbac/role_service_test.go similarity index 100% rename from server/service/rbac/role_dao_test.go rename to server/service/rbac/role_service_test.go diff --git a/test/test.go b/test/test.go index df8a2d0..caf37f2 100644 --- a/test/test.go +++ b/test/test.go @@ -20,12 +20,12 @@ package test import ( _ "github.com/apache/servicecomb-service-center/server/init" + "github.com/apache/servicecomb-service-center/server/service/disco" _ "github.com/apache/servicecomb-service-center/server/bootstrap" "github.com/apache/servicecomb-service-center/datasource" "github.com/apache/servicecomb-service-center/server/core" - "github.com/apache/servicecomb-service-center/server/service" "github.com/go-chassis/go-archaius" ) @@ -42,5 +42,5 @@ func init() { archaius.Set("registry.heartbeat.kind", "checker") } datasource.Init(datasource.Options{Kind: datasource.Kind(t.(string))}) - core.ServiceAPI, core.InstanceAPI = service.AssembleResources() + core.ServiceAPI = disco.AssembleResources() }