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 9215840 [SCB-2094] reImplement service/dep exist interface (#720)
9215840 is described below
commit 9215840fa30f33dad5dda7b7e885941c9bcb3c87
Author: xzccfzy <[email protected]>
AuthorDate: Tue Oct 20 09:47:33 2020 +0800
[SCB-2094] reImplement service/dep exist interface (#720)
Co-authored-by: 薛泽超 <[email protected]>
---
datasource/dep.go | 7 +-
datasource/etcd/dep.go | 86 +-------
datasource/etcd/dep_test.go | 511 +++++++++++---------------------------------
3 files changed, 141 insertions(+), 463 deletions(-)
diff --git a/datasource/dep.go b/datasource/dep.go
index ddfae4c..6b702cc 100644
--- a/datasource/dep.go
+++ b/datasource/dep.go
@@ -24,9 +24,8 @@ import (
// DependencyManager contains the CRUD of microservice dependencies
type DependencyManager interface {
- AddDependency(ctx context.Context, request *pb.AddDependenciesRequest)
(*pb.AddDependenciesResponse, error)
- CreateDependency(ctx context.Context, request
*pb.CreateDependenciesRequest) (*pb.CreateDependenciesResponse, error)
- SearchProviderDependency(ctx context.Context, request
*pb.GetDependenciesRequest) (*pb.GetProDependenciesResponse, error)
- SearchConsumerDependency(ctx context.Context, request
*pb.GetDependenciesRequest) (*pb.GetConDependenciesResponse, error)
+ SearchProviderDependency(ctx context.Context, request
*pb.GetDependenciesRequest) ([]*pb.MicroService, error)
+ SearchConsumerDependency(ctx context.Context, request
*pb.GetDependenciesRequest) ([]*pb.MicroService, error)
+ AddOrUpdateDependencies(ctx context.Context, dependencyInfos
[]*pb.ConsumerDependency, override bool) (*pb.Response, error)
DeleteDependency()
}
diff --git a/datasource/etcd/dep.go b/datasource/etcd/dep.go
index 8c9710f..aad3796 100644
--- a/datasource/etcd/dep.go
+++ b/datasource/etcd/dep.go
@@ -29,113 +29,45 @@ import (
"github.com/apache/servicecomb-service-center/server/core/proto"
"github.com/apache/servicecomb-service-center/server/plugin/registry"
scerr "github.com/apache/servicecomb-service-center/server/scerror"
- "github.com/apache/servicecomb-service-center/server/service"
serviceUtil
"github.com/apache/servicecomb-service-center/server/service/util"
)
-func (ds *DataSource) AddDependency(ctx context.Context, request
*pb.AddDependenciesRequest) (*pb.AddDependenciesResponse, error) {
- if err := service.Validate(request); err != nil {
- return &pb.AddDependenciesResponse{
- Response:
serviceUtil.BadParamsResponse(err.Error()).Response,
- }, nil
- }
-
- resp, err := ds.AddOrUpdateDependencies(ctx, request.Dependencies,
false)
- return &pb.AddDependenciesResponse{
- Response: resp,
- }, err
-
-}
-
-func (ds *DataSource) CreateDependency(ctx context.Context, request
*pb.CreateDependenciesRequest) (*pb.CreateDependenciesResponse, error) {
- if err := service.Validate(request); err != nil {
- return &pb.CreateDependenciesResponse{
- Response:
serviceUtil.BadParamsResponse(err.Error()).Response,
- }, nil
- }
- resp, err := ds.AddOrUpdateDependencies(ctx, request.Dependencies,
false)
- return &pb.CreateDependenciesResponse{
- Response: resp,
- }, err
-}
-
-func (ds *DataSource) SearchProviderDependency(ctx context.Context, request
*pb.GetDependenciesRequest) (*pb.GetProDependenciesResponse, error) {
- err := service.Validate(request)
- if err != nil {
- log.Errorf(err, "GetProviderDependencies failed for validating
parameters failed")
- return &pb.GetProDependenciesResponse{
- Response: proto.CreateResponse(scerr.ErrInvalidParams,
err.Error()),
- }, nil
- }
+func (ds *DataSource) SearchProviderDependency(ctx context.Context, request
*pb.GetDependenciesRequest) ([]*pb.MicroService, error) {
domainProject := util.ParseDomainProject(ctx)
providerServiceID := request.ServiceId
-
provider, err := serviceUtil.GetService(ctx, domainProject,
providerServiceID)
+
if err != nil {
log.Errorf(err, "GetProviderDependencies failed, provider is
%s", providerServiceID)
return nil, err
}
if provider == nil {
log.Errorf(err, "GetProviderDependencies failed for
provider[%s] does not exist", providerServiceID)
- return &pb.GetProDependenciesResponse{
- Response:
proto.CreateResponse(scerr.ErrServiceNotExists, "Provider does not exist"),
- }, nil
+ return nil, err
}
dr := serviceUtil.NewProviderDependencyRelation(ctx, domainProject,
provider)
services, err :=
dr.GetDependencyConsumers(toDependencyFilterOptions(request)...)
- if err != nil {
- log.Errorf(err, "GetProviderDependencies failed, provider is
%s/%s/%s/%s",
- provider.Environment, provider.AppId,
provider.ServiceName, provider.Version)
- return &pb.GetProDependenciesResponse{
- Response: proto.CreateResponse(scerr.ErrInternal,
err.Error()),
- }, err
- }
- return &pb.GetProDependenciesResponse{
- Response: proto.CreateResponse(proto.Response_SUCCESS, "Get
all consumers successful."),
- Consumers: services,
- }, nil
+ return services, err
}
-func (ds *DataSource) SearchConsumerDependency(ctx context.Context, request
*pb.GetDependenciesRequest) (*pb.GetConDependenciesResponse, error) {
- err := service.Validate(request)
- if err != nil {
- log.Errorf(err, "GetConsumerDependencies failed for validating
parameters failed")
- return &pb.GetConDependenciesResponse{
- Response: proto.CreateResponse(scerr.ErrInvalidParams,
err.Error()),
- }, nil
- }
+func (ds *DataSource) SearchConsumerDependency(ctx context.Context, request
*pb.GetDependenciesRequest) ([]*pb.MicroService, error) {
consumerID := request.ServiceId
domainProject := util.ParseDomainProject(ctx)
-
consumer, err := serviceUtil.GetService(ctx, domainProject, consumerID)
+
if err != nil {
log.Errorf(err, "GetConsumerDependencies failed, consumer is
%s", consumerID)
- return &pb.GetConDependenciesResponse{
- Response: proto.CreateResponse(scerr.ErrInternal,
err.Error()),
- }, err
+ return nil, err
}
if consumer == nil {
log.Errorf(err, "GetConsumerDependencies failed for
consumer[%s] does not exist", consumerID)
- return &pb.GetConDependenciesResponse{
- Response:
proto.CreateResponse(scerr.ErrServiceNotExists, "Consumer does not exist"),
- }, nil
+ return nil, err
}
dr := serviceUtil.NewConsumerDependencyRelation(ctx, domainProject,
consumer)
services, err :=
dr.GetDependencyProviders(toDependencyFilterOptions(request)...)
- if err != nil {
- log.Errorf(err, "GetConsumerDependencies failed, consumer is
%s/%s/%s/%s",
- consumer.Environment, consumer.AppId,
consumer.ServiceName, consumer.Version)
- return &pb.GetConDependenciesResponse{
- Response: proto.CreateResponse(scerr.ErrInternal,
err.Error()),
- }, err
- }
-
- return &pb.GetConDependenciesResponse{
- Response: proto.CreateResponse(proto.Response_SUCCESS, "Get
all providers successfully."),
- Providers: services,
- }, nil
+ return services, err
}
func (ds *DataSource) DeleteDependency() {
diff --git a/datasource/etcd/dep_test.go b/datasource/etcd/dep_test.go
index f2d07e6..64ef8c5 100644
--- a/datasource/etcd/dep_test.go
+++ b/datasource/etcd/dep_test.go
@@ -25,7 +25,6 @@ import (
"github.com/apache/servicecomb-service-center/server/service/event"
"github.com/go-chassis/go-archaius"
"github.com/stretchr/testify/assert"
- "strconv"
"testing"
)
@@ -148,218 +147,57 @@ func Test_Creat(t *testing.T) {
}
// consumer does not exist
- resp, err :=
datasource.Instance().CreateDependency(depGetContext(),
&pb.CreateDependenciesRequest{
- Dependencies: []*pb.ConsumerDependency{
- {
- Consumer: &pb.MicroServiceKey{
- AppId: "noexistapp",
- ServiceName: "noexistservice",
- Version: "1.0.0",
- },
- Providers: providers,
- },
- },
- })
- assert.NotNil(t, resp)
- assert.NoError(t, err)
- assert.Equal(t, scerr.ErrServiceNotExists,
resp.Response.GetCode())
-
- // provider version is invalid
- resp, err =
datasource.Instance().CreateDependency(depGetContext(),
&pb.CreateDependenciesRequest{
- Dependencies: []*pb.ConsumerDependency{
- {
- Consumer: consumer,
- Providers: []*pb.MicroServiceKey{
- {
- AppId:
"dep_create_dep_group",
- ServiceName:
"dep_create_dep_provider",
- Version:
"1.0.32768",
- },
- },
- },
- },
- })
- assert.NotNil(t, resp)
- assert.NoError(t, err)
- assert.Equal(t, scerr.ErrInvalidParams, resp.Response.GetCode())
-
- // consumer version is invalid
- resp, err =
datasource.Instance().CreateDependency(depGetContext(),
&pb.CreateDependenciesRequest{
- Dependencies: []*pb.ConsumerDependency{
- {
- Consumer: &pb.MicroServiceKey{
- AppId:
"dep_create_dep_group",
- ServiceName:
"dep_create_dep_consumer",
- Version: "1.0.0+",
- },
- Providers: providers,
- },
- },
- })
- assert.NotNil(t, resp)
- assert.NoError(t, err)
- assert.Equal(t, scerr.ErrInvalidParams, resp.Response.GetCode())
-
- resp, err =
datasource.Instance().CreateDependency(depGetContext(),
&pb.CreateDependenciesRequest{
- Dependencies: []*pb.ConsumerDependency{
- {
- Consumer: &pb.MicroServiceKey{
- AppId:
"dep_create_dep_group",
- ServiceName:
"dep_create_dep_consumer",
- Version: "1.0.0-1.0.1",
- },
- Providers: providers,
- },
- },
- })
- assert.NotNil(t, resp)
- assert.NoError(t, err)
- assert.Equal(t, scerr.ErrInvalidParams, resp.Response.GetCode())
-
- resp, err =
datasource.Instance().CreateDependency(depGetContext(),
&pb.CreateDependenciesRequest{
- Dependencies: []*pb.ConsumerDependency{
- {
- Consumer: &pb.MicroServiceKey{
- AppId:
"dep_create_dep_group",
- ServiceName:
"dep_create_dep_consumer",
- Version: "latest",
- },
- Providers: providers,
- },
- },
- })
- assert.NotNil(t, resp)
- assert.NoError(t, err)
- assert.Equal(t, scerr.ErrInvalidParams, resp.Response.GetCode())
-
- resp, err =
datasource.Instance().CreateDependency(depGetContext(),
&pb.CreateDependenciesRequest{
- Dependencies: []*pb.ConsumerDependency{
- {
- Consumer: &pb.MicroServiceKey{
- AppId:
"dep_create_dep_group",
- ServiceName:
"dep_create_dep_consumer",
- Version: "",
- },
- Providers: providers,
+ resp, err :=
datasource.Instance().AddOrUpdateDependencies(depGetContext(),
[]*pb.ConsumerDependency{
+ {
+ Consumer: &pb.MicroServiceKey{
+ AppId: "noexistapp",
+ ServiceName: "noexistservice",
+ Version: "1.0.0",
},
+ Providers: providers,
},
- })
+ }, false)
assert.NotNil(t, resp)
assert.NoError(t, err)
- assert.Equal(t, scerr.ErrInvalidParams, resp.Response.GetCode())
+ assert.Equal(t, scerr.ErrServiceNotExists, resp.GetCode())
- resp, err =
datasource.Instance().CreateDependency(depGetContext(),
&pb.CreateDependenciesRequest{
- Dependencies: []*pb.ConsumerDependency{
- {
- Consumer: &pb.MicroServiceKey{
- AppId:
"dep_create_dep_group",
- ServiceName: "*",
- Version: "1.0.0",
- },
- Providers: providers,
- },
- },
- })
- assert.NotNil(t, resp)
- assert.NoError(t, err)
- assert.Equal(t, scerr.ErrInvalidParams, resp.Response.GetCode())
-
- // provider app is invalid
- resp, err =
datasource.Instance().CreateDependency(depGetContext(),
&pb.CreateDependenciesRequest{
- Dependencies: []*pb.ConsumerDependency{
- {
- Consumer: consumer,
- Providers: []*pb.MicroServiceKey{
- {
- AppId: "*",
- ServiceName:
"dep_service_name_provider",
- Version: "2.0.0",
- },
- },
- },
- },
- })
- assert.NotNil(t, resp)
- assert.NoError(t, err)
- assert.Equal(t, scerr.ErrInvalidParams, resp.Response.GetCode())
-
- // provider serviceName is invalid
- resp, err =
datasource.Instance().CreateDependency(depGetContext(),
&pb.CreateDependenciesRequest{
- Dependencies: []*pb.ConsumerDependency{
- {
- Consumer: consumer,
- Providers: []*pb.MicroServiceKey{
- {
- AppId:
"dep_service_group_provider",
- ServiceName: "-",
- Version: "2.0.0",
- },
- },
- },
- },
- })
- assert.NotNil(t, resp)
- assert.NoError(t, err)
- assert.Equal(t, scerr.ErrInvalidParams, resp.Response.GetCode())
-
- // provider version is invalid
- resp, err =
datasource.Instance().CreateDependency(depGetContext(),
&pb.CreateDependenciesRequest{
- Dependencies: []*pb.ConsumerDependency{
- {
- Consumer: consumer,
- Providers: []*pb.MicroServiceKey{
- {
- AppId:
"dep_service_group_provider",
- ServiceName:
"dep_service_name_provider",
- Version: "",
- },
- },
- },
- },
- })
- assert.NotNil(t, resp)
- assert.NoError(t, err)
- assert.Equal(t, scerr.ErrInvalidParams, resp.Response.GetCode())
+ assert.Equal(t, nil, deh.Handle())
// provider in diff env
- resp, err =
datasource.Instance().CreateDependency(depGetContext(),
&pb.CreateDependenciesRequest{
- Dependencies: []*pb.ConsumerDependency{
- {
- Consumer: consumer,
- Providers: []*pb.MicroServiceKey{
- {
- Environment:
pb.ENV_PROD,
- AppId:
"dep_service_group_provider",
- ServiceName:
"dep_service_name_provider",
- Version: "latest",
- },
+ resp, err =
datasource.Instance().AddOrUpdateDependencies(depGetContext(),
[]*pb.ConsumerDependency{
+ {
+ Consumer: consumer,
+ Providers: []*pb.MicroServiceKey{
+ {
+ Environment: pb.ENV_PROD,
+ AppId:
"dep_service_group_provider",
+ ServiceName:
"dep_service_name_provider",
+ Version: "latest",
},
},
},
- })
+ }, false)
assert.NotNil(t, resp)
assert.NoError(t, err)
- assert.Equal(t, proto.Response_SUCCESS, resp.Response.GetCode())
+ assert.Equal(t, proto.Response_SUCCESS, resp.GetCode())
// consumer in diff env
consumer.Environment = pb.ENV_PROD
- resp, err =
datasource.Instance().CreateDependency(depGetContext(),
&pb.CreateDependenciesRequest{
- Dependencies: []*pb.ConsumerDependency{
- {
- Consumer: consumer,
- Providers: []*pb.MicroServiceKey{
- {
- AppId:
"dep_service_group_provider",
- ServiceName:
"dep_service_name_provider",
- Version: "latest",
- },
+ resp, err =
datasource.Instance().AddOrUpdateDependencies(depGetContext(),
[]*pb.ConsumerDependency{
+ {
+ Consumer: consumer,
+ Providers: []*pb.MicroServiceKey{
+ {
+ AppId:
"dep_service_group_provider",
+ ServiceName:
"dep_service_name_provider",
+ Version: "latest",
},
},
},
- })
+ }, false)
assert.NotNil(t, resp)
assert.NoError(t, err)
- assert.Equal(t, proto.Response_SUCCESS, resp.Response.GetCode())
+ assert.Equal(t, proto.Response_SUCCESS, resp.GetCode())
assert.Equal(t, nil, deh.Handle())
@@ -368,41 +206,14 @@ func Test_Creat(t *testing.T) {
})
assert.NotNil(t, respCon)
assert.NoError(t, err)
- assert.Equal(t, proto.Response_SUCCESS,
respCon.Response.GetCode())
- assert.Equal(t, 0, len(respCon.Providers))
+ assert.Equal(t, 0, len(respCon))
respCon, err =
datasource.Instance().SearchConsumerDependency(depGetContext(),
&pb.GetDependenciesRequest{
ServiceId: consumerId2,
})
assert.NotNil(t, respCon)
assert.NoError(t, err)
- assert.Equal(t, proto.Response_SUCCESS,
respCon.Response.GetCode())
- assert.Equal(t, 0, len(respCon.Providers))
-
- // dependencies is invalid
- var deps []*pb.ConsumerDependency
- for i := 0; i < 101; i++ {
- deps = append(deps, &pb.ConsumerDependency{
- Consumer: &pb.MicroServiceKey{
- AppId: "dep_create_dep_group",
- ServiceName: "dep_create_dep_consumer"
+ strconv.Itoa(i),
- Version: "1.0.0",
- },
- Providers: []*pb.MicroServiceKey{
- {
- AppId:
"dep_service_group_provider",
- ServiceName:
"dep_service_name_provider",
- Version: "latest",
- },
- },
- })
- }
- resp, err =
datasource.Instance().CreateDependency(depGetContext(),
&pb.CreateDependenciesRequest{
- Dependencies: deps,
- })
- assert.NotNil(t, resp)
- assert.NoError(t, err)
- assert.Equal(t, scerr.ErrInvalidParams, resp.Response.GetCode())
+ assert.Equal(t, 0, len(respCon))
})
t.Run("when request is valid, should be passed", func(t *testing.T) {
@@ -413,23 +224,21 @@ func Test_Creat(t *testing.T) {
}
// add latest
- resp, err :=
datasource.Instance().CreateDependency(depGetContext(),
&pb.CreateDependenciesRequest{
- Dependencies: []*pb.ConsumerDependency{
- {
- Consumer: consumer,
- Providers: []*pb.MicroServiceKey{
- {
- AppId:
"dep_create_dep_group",
- ServiceName:
"dep_create_dep_provider",
- Version: "latest",
- },
+ resp, err :=
datasource.Instance().AddOrUpdateDependencies(depGetContext(),
[]*pb.ConsumerDependency{
+ {
+ Consumer: consumer,
+ Providers: []*pb.MicroServiceKey{
+ {
+ AppId:
"dep_create_dep_group",
+ ServiceName:
"dep_create_dep_provider",
+ Version: "latest",
},
},
},
- })
+ }, false)
assert.NotNil(t, resp)
assert.NoError(t, err)
- assert.Equal(t, proto.Response_SUCCESS, resp.Response.GetCode())
+ assert.Equal(t, proto.Response_SUCCESS, resp.GetCode())
assert.Equal(t, nil, deh.Handle())
@@ -438,120 +247,111 @@ func Test_Creat(t *testing.T) {
})
assert.NotNil(t, respPro)
assert.NoError(t, err)
- assert.Equal(t, proto.Response_SUCCESS,
respPro.Response.GetCode())
+ assert.Equal(t, "1.0.1", respPro[0].Version)
// add 1.0.0+
- resp, err =
datasource.Instance().CreateDependency(depGetContext(),
&pb.CreateDependenciesRequest{
- Dependencies: []*pb.ConsumerDependency{
- {
- Consumer: consumer,
- Providers: []*pb.MicroServiceKey{
- {
- AppId:
"dep_create_dep_group",
- ServiceName:
"dep_create_dep_provider",
- Version: "1.0.0+",
- },
+ resp, err =
datasource.Instance().AddOrUpdateDependencies(depGetContext(),
[]*pb.ConsumerDependency{
+ {
+ Consumer: consumer,
+ Providers: []*pb.MicroServiceKey{
+ {
+ AppId:
"dep_create_dep_group",
+ ServiceName:
"dep_create_dep_provider",
+ Version: "1.0.0+",
},
},
},
- })
+ }, false)
assert.NotNil(t, resp)
assert.NoError(t, err)
- assert.Equal(t, proto.Response_SUCCESS, resp.Response.GetCode())
+ assert.Equal(t, proto.Response_SUCCESS, resp.GetCode())
+
+ assert.Equal(t, nil, deh.Handle())
respPro, err =
datasource.Instance().SearchConsumerDependency(depGetContext(),
&pb.GetDependenciesRequest{
ServiceId: consumerId1,
})
assert.NotNil(t, respPro)
assert.NoError(t, err)
- assert.Equal(t, proto.Response_SUCCESS,
respPro.Response.GetCode())
+ assert.Equal(t, 2, len(respPro))
// add *
- resp, err =
datasource.Instance().CreateDependency(depGetContext(),
&pb.CreateDependenciesRequest{
- Dependencies: []*pb.ConsumerDependency{
- {
- Consumer: &pb.MicroServiceKey{
- ServiceName:
"dep_create_dep_consumer_all",
- AppId:
"dep_create_dep_group",
- Version: "1.0.0",
- },
- Providers: []*pb.MicroServiceKey{
- {
- ServiceName: "*",
- },
+ resp, err =
datasource.Instance().AddOrUpdateDependencies(depGetContext(),
[]*pb.ConsumerDependency{
+ {
+ Consumer: &pb.MicroServiceKey{
+ ServiceName:
"dep_create_dep_consumer_all",
+ AppId: "dep_create_dep_group",
+ Version: "1.0.0",
+ },
+ Providers: []*pb.MicroServiceKey{
+ {
+ ServiceName: "*",
},
},
},
- })
+ }, false)
assert.NotNil(t, resp)
assert.NoError(t, err)
- assert.Equal(t, proto.Response_SUCCESS, resp.Response.GetCode())
+ assert.Equal(t, proto.Response_SUCCESS, resp.GetCode())
respPro, err =
datasource.Instance().SearchConsumerDependency(depGetContext(),
&pb.GetDependenciesRequest{
ServiceId: consumerId3,
})
assert.NotNil(t, respPro)
assert.NoError(t, err)
- assert.Equal(t, proto.Response_SUCCESS,
respPro.Response.GetCode())
- assert.Equal(t, 0, len(respPro.Providers))
+ assert.Equal(t, 0, len(respPro))
// clean all
- resp, err =
datasource.Instance().CreateDependency(depGetContext(),
&pb.CreateDependenciesRequest{
- Dependencies: []*pb.ConsumerDependency{
- {
- Consumer: &pb.MicroServiceKey{
- ServiceName:
"dep_create_dep_consumer_all",
- AppId:
"dep_create_dep_group",
- Version: "1.0.0",
- },
- Providers: nil,
+ resp, err =
datasource.Instance().AddOrUpdateDependencies(depGetContext(),
[]*pb.ConsumerDependency{
+ {
+ Consumer: &pb.MicroServiceKey{
+ ServiceName:
"dep_create_dep_consumer_all",
+ AppId: "dep_create_dep_group",
+ Version: "1.0.0",
},
+ Providers: nil,
},
- })
+ }, false)
assert.NotNil(t, resp)
assert.NoError(t, err)
- assert.Equal(t, proto.Response_SUCCESS, resp.Response.GetCode())
+ assert.Equal(t, proto.Response_SUCCESS, resp.GetCode())
// add multiple providers
- resp, err =
datasource.Instance().CreateDependency(depGetContext(),
&pb.CreateDependenciesRequest{
- Dependencies: []*pb.ConsumerDependency{
- {
- Consumer: consumer,
- Providers: []*pb.MicroServiceKey{
- {
- AppId:
"dep_create_dep_group",
- ServiceName:
"dep_create_dep_provider",
- Version: "1.0.0",
- },
- {
- ServiceName: "*",
- },
+ resp, err =
datasource.Instance().AddOrUpdateDependencies(depGetContext(),
[]*pb.ConsumerDependency{
+ {
+ Consumer: consumer,
+ Providers: []*pb.MicroServiceKey{
+ {
+ AppId:
"dep_create_dep_group",
+ ServiceName:
"dep_create_dep_provider",
+ Version: "1.0.0",
+ },
+ {
+ ServiceName: "*",
},
},
},
- })
+ }, false)
assert.NotNil(t, resp)
assert.NoError(t, err)
- assert.Equal(t, proto.Response_SUCCESS, resp.Response.GetCode())
+ assert.Equal(t, proto.Response_SUCCESS, resp.GetCode())
// add 1.0.0-2.0.0 to override *
- resp, err =
datasource.Instance().CreateDependency(depGetContext(),
&pb.CreateDependenciesRequest{
- Dependencies: []*pb.ConsumerDependency{
- {
- Consumer: consumer,
- Providers: []*pb.MicroServiceKey{
- {
- AppId:
"dep_create_dep_group",
- ServiceName:
"dep_create_dep_provider",
- Version:
"1.0.0-1.0.1",
- },
+ resp, err =
datasource.Instance().AddOrUpdateDependencies(depGetContext(),
[]*pb.ConsumerDependency{
+ {
+ Consumer: consumer,
+ Providers: []*pb.MicroServiceKey{
+ {
+ AppId:
"dep_create_dep_group",
+ ServiceName:
"dep_create_dep_provider",
+ Version: "1.0.0-1.0.1",
},
},
},
- })
+ }, false)
assert.NotNil(t, resp)
assert.NoError(t, err)
- assert.Equal(t, proto.Response_SUCCESS, resp.Response.GetCode())
+ assert.Equal(t, proto.Response_SUCCESS, resp.GetCode())
assert.Equal(t, nil, deh.Handle())
@@ -560,27 +360,24 @@ func Test_Creat(t *testing.T) {
})
assert.NotNil(t, respPro)
assert.NoError(t, err)
- assert.Equal(t, proto.Response_SUCCESS,
respPro.Response.GetCode())
- assert.Equal(t, "1.0.0", respPro.Providers[0].Version)
+ assert.Equal(t, "1.0.0", respPro[0].Version)
// add not override
- respAdd, err :=
datasource.Instance().AddDependency(depGetContext(), &pb.AddDependenciesRequest{
- Dependencies: []*pb.ConsumerDependency{
- {
- Consumer: consumer,
- Providers: []*pb.MicroServiceKey{
- {
- AppId:
"dep_create_dep_group",
- ServiceName:
"dep_create_dep_provider",
- Version:
"1.0.0-3.0.0",
- },
+ respAdd, err :=
datasource.Instance().AddOrUpdateDependencies(depGetContext(),
[]*pb.ConsumerDependency{
+ {
+ Consumer: consumer,
+ Providers: []*pb.MicroServiceKey{
+ {
+ AppId:
"dep_create_dep_group",
+ ServiceName:
"dep_create_dep_provider",
+ Version: "1.0.0-3.0.0",
},
},
},
- })
+ }, false)
assert.NotNil(t, respAdd)
assert.NoError(t, err)
- assert.Equal(t, proto.Response_SUCCESS,
respAdd.Response.GetCode())
+ assert.Equal(t, proto.Response_SUCCESS, respAdd.GetCode())
assert.Equal(t, nil, deh.Handle())
@@ -589,31 +386,26 @@ func Test_Creat(t *testing.T) {
})
assert.NotNil(t, respPro)
assert.NoError(t, err)
- assert.Equal(t, proto.Response_SUCCESS,
respPro.Response.GetCode())
// add provider is empty
- resp, err =
datasource.Instance().CreateDependency(depGetContext(),
&pb.CreateDependenciesRequest{
- Dependencies: []*pb.ConsumerDependency{
- {
- Consumer: consumer,
- Providers: []*pb.MicroServiceKey{},
- },
+ resp, err =
datasource.Instance().AddOrUpdateDependencies(depGetContext(),
[]*pb.ConsumerDependency{
+ {
+ Consumer: consumer,
+ Providers: []*pb.MicroServiceKey{},
},
- })
+ }, false)
assert.NotNil(t, resp)
assert.NoError(t, err)
- assert.Equal(t, proto.Response_SUCCESS, resp.Response.GetCode())
+ assert.Equal(t, proto.Response_SUCCESS, resp.GetCode())
- resp, err =
datasource.Instance().CreateDependency(depGetContext(),
&pb.CreateDependenciesRequest{
- Dependencies: []*pb.ConsumerDependency{
- {
- Consumer: consumer,
- },
+ resp, err =
datasource.Instance().AddOrUpdateDependencies(depGetContext(),
[]*pb.ConsumerDependency{
+ {
+ Consumer: consumer,
},
- })
+ }, false)
assert.NotNil(t, resp)
assert.NoError(t, err)
- assert.Equal(t, proto.Response_SUCCESS, resp.Response.GetCode())
+ assert.Equal(t, proto.Response_SUCCESS, resp.GetCode())
assert.Equal(t, nil, deh.Handle())
@@ -622,9 +414,6 @@ func Test_Creat(t *testing.T) {
})
assert.NotNil(t, respPro)
assert.NoError(t, err)
- assert.Equal(t, proto.Response_SUCCESS,
respPro.Response.GetCode())
- //assert.Equal(t, 0, len(respPro.Providers))
-
})
}
@@ -689,40 +478,6 @@ func Test_Get(t *testing.T) {
providerId2 = resp.ServiceId
})
- t.Run("when request is invalid, should be failed", func(t *testing.T) {
- //service id is empty when get provider
- resp, err :=
datasource.Instance().SearchProviderDependency(depGetContext(),
&pb.GetDependenciesRequest{
- ServiceId: "",
- })
- assert.NotNil(t, resp)
- assert.NoError(t, err)
- assert.Equal(t, scerr.ErrInvalidParams, resp.Response.GetCode())
-
- //service does not exist when get provider
- resp, err =
datasource.Instance().SearchProviderDependency(depGetContext(),
&pb.GetDependenciesRequest{
- ServiceId: "noneservice",
- })
- assert.NotNil(t, resp)
- assert.NoError(t, err)
- assert.Equal(t, scerr.ErrServiceNotExists,
resp.Response.GetCode())
-
- //service id is empty when get consumer
- resp, err =
datasource.Instance().SearchProviderDependency(depGetContext(),
&pb.GetDependenciesRequest{
- ServiceId: "",
- })
- assert.NotNil(t, resp)
- assert.NoError(t, err)
- assert.Equal(t, scerr.ErrInvalidParams, resp.Response.GetCode())
-
- //service does not exist when get consumer
- resp, err =
datasource.Instance().SearchProviderDependency(depGetContext(),
&pb.GetDependenciesRequest{
- ServiceId: "noneservice",
- })
- assert.NotNil(t, resp)
- assert.NoError(t, err)
- assert.Equal(t, scerr.ErrServiceNotExists,
resp.Response.GetCode())
- })
-
t.Run("when request is valid, should be passed", func(t *testing.T) {
//get provider
resp, err :=
datasource.Instance().SearchProviderDependency(depGetContext(),
&pb.GetDependenciesRequest{
@@ -730,7 +485,6 @@ func Test_Get(t *testing.T) {
})
assert.NotNil(t, resp)
assert.NoError(t, err)
- assert.Equal(t, proto.Response_SUCCESS, resp.Response.GetCode())
//get consumer
resp, err =
datasource.Instance().SearchProviderDependency(depGetContext(),
&pb.GetDependenciesRequest{
@@ -738,7 +492,6 @@ func Test_Get(t *testing.T) {
})
assert.NotNil(t, resp)
assert.NoError(t, err)
- assert.Equal(t, proto.Response_SUCCESS, resp.Response.GetCode())
})
t.Run("when after finding instance, should created dependencies between
C and P", func(t *testing.T) {
@@ -761,7 +514,6 @@ func Test_Get(t *testing.T) {
})
assert.NotNil(t, respGetP)
assert.NoError(t, err)
- assert.Equal(t, proto.Response_SUCCESS,
respGetP.Response.GetCode())
// get provider's deps
respGetC, err :=
datasource.Instance().SearchConsumerDependency(depGetContext(),
&pb.GetDependenciesRequest{
@@ -769,7 +521,6 @@ func Test_Get(t *testing.T) {
})
assert.NotNil(t, respGetC)
assert.NoError(t, err)
- assert.Equal(t, proto.Response_SUCCESS,
respGetC.Response.GetCode())
// get self deps
resp, err =
datasource.Instance().FindInstances(depGetContext(), &pb.FindInstancesRequest{
@@ -790,7 +541,6 @@ func Test_Get(t *testing.T) {
})
assert.NotNil(t, respGetC)
assert.NoError(t, err)
- assert.Equal(t, proto.Response_SUCCESS,
respGetC.Response.GetCode())
// find before provider register
resp, err =
datasource.Instance().FindInstances(depGetContext(), &pb.FindInstancesRequest{
@@ -834,9 +584,8 @@ func Test_Get(t *testing.T) {
})
assert.NotNil(t, respGetC)
assert.NoError(t, err)
- assert.Equal(t, proto.Response_SUCCESS,
respGetC.Response.GetCode())
- assert.Equal(t, 1, len(respGetC.Providers))
- assert.Equal(t, finder1, respGetC.Providers[0].ServiceId)
+ assert.Equal(t, 1, len(respGetC))
+ assert.Equal(t, finder1, respGetC[0].ServiceId)
// find after delete micro service
respDelP, err :=
datasource.Instance().UnregisterService(depGetContext(),
&pb.DeleteServiceRequest{
@@ -853,8 +602,7 @@ func Test_Get(t *testing.T) {
})
assert.NotNil(t, respGetC)
assert.NoError(t, err)
- assert.Equal(t, proto.Response_SUCCESS,
respGetC.Response.GetCode())
- assert.Equal(t, 0, len(respGetC.Providers))
+ assert.Equal(t, 0, len(respGetC))
respCreateF, err =
datasource.Instance().RegisterService(depGetContext(), &pb.CreateServiceRequest{
Service: &pb.MicroService{
@@ -887,8 +635,7 @@ func Test_Get(t *testing.T) {
})
assert.NotNil(t, respGetC)
assert.NoError(t, err)
- assert.Equal(t, proto.Response_SUCCESS,
respGetC.Response.GetCode())
- assert.Equal(t, 1, len(respGetC.Providers))
- assert.Equal(t, finder1, respGetC.Providers[0].ServiceId)
+ assert.Equal(t, 1, len(respGetC))
+ assert.Equal(t, finder1, respGetC[0].ServiceId)
})
}