SCB-2176 Fix: POST tags should be covered (#829)
diff --git a/server/plugin/quota/buildin/common.go b/server/plugin/quota/buildin/common.go
index 38dfe79..ee351f3 100644
--- a/server/plugin/quota/buildin/common.go
+++ b/server/plugin/quota/buildin/common.go
@@ -29,7 +29,6 @@
"github.com/apache/servicecomb-service-center/server/plugin/quota"
"github.com/apache/servicecomb-service-center/server/plugin/registry"
scerr "github.com/apache/servicecomb-service-center/server/scerror"
- serviceUtil "github.com/apache/servicecomb-service-center/server/service/util"
)
type GetCurUsedNum func(context.Context, *quota.ApplyQuotaResource) (int64, error)
@@ -96,11 +95,8 @@
key = core.GenerateServiceSchemaKey(domainProject, serviceID, "")
indexer = backend.Store().Schema()
case quota.TagQuotaType:
- tags, err := serviceUtil.GetTagsUtils(ctx, domainProject, serviceID)
- if err != nil {
- return 0, err
- }
- return int64(len(tags)), nil
+ // always re-create the service old tags
+ return 0, nil
default:
return 0, fmt.Errorf("not define quota type '%s'", res.QuotaType)
}
diff --git a/server/service/tag.go b/server/service/tag.go
index 42189fe..7eed8b4 100644
--- a/server/service/tag.go
+++ b/server/service/tag.go
@@ -26,8 +26,6 @@
apt "github.com/apache/servicecomb-service-center/server/core"
"github.com/apache/servicecomb-service-center/server/core/backend"
"github.com/apache/servicecomb-service-center/server/core/proto"
- "github.com/apache/servicecomb-service-center/server/plugin"
- "github.com/apache/servicecomb-service-center/server/plugin/quota"
"github.com/apache/servicecomb-service-center/server/plugin/registry"
scerr "github.com/apache/servicecomb-service-center/server/scerror"
serviceUtil "github.com/apache/servicecomb-service-center/server/service/util"
@@ -53,38 +51,7 @@
}, nil
}
- addTags := in.Tags
- res := quota.NewApplyQuotaResource(quota.TagQuotaType, domainProject, in.ServiceId, int64(len(addTags)))
- rst := plugin.Plugins().Quota().Apply4Quotas(ctx, res)
- errQuota := rst.Err
- if errQuota != nil {
- log.Errorf(errQuota, "add service[%s]'s tags %v failed, operator: %s", in.ServiceId, addTags, remoteIP)
- response := &pb.AddServiceTagsResponse{
- Response: proto.CreateResponseWithSCErr(errQuota),
- }
- if errQuota.InternalError() {
- return response, errQuota
- }
- return response, nil
- }
-
- dataTags, err := serviceUtil.GetTagsUtils(ctx, domainProject, in.ServiceId)
- if err != nil {
- log.Errorf(err, "add service[%s]'s tags %v failed, get existed tag failed, operator: %s",
- in.ServiceId, addTags, remoteIP)
- return &pb.AddServiceTagsResponse{
- Response: proto.CreateResponse(scerr.ErrInternal, err.Error()),
- }, err
- }
- for key, value := range dataTags {
- if _, ok := addTags[key]; ok {
- continue
- }
- addTags[key] = value
- }
- dataTags = addTags
-
- checkErr := serviceUtil.AddTagIntoETCD(ctx, domainProject, in.ServiceId, dataTags)
+ checkErr := serviceUtil.AddTagIntoETCD(ctx, domainProject, in.ServiceId, in.Tags)
if checkErr != nil {
log.Errorf(checkErr, "add service[%s]'s tags %v failed, operator: %s", in.ServiceId, in.Tags, remoteIP)
resp := &pb.AddServiceTagsResponse{
diff --git a/server/service/tag_test.go b/server/service/tag_test.go
index c467edf..72a6e4f 100644
--- a/server/service/tag_test.go
+++ b/server/service/tag_test.go
@@ -138,7 +138,7 @@
Expect(err).To(BeNil())
Expect(respAddTags.Response.GetCode()).To(Equal(scerr.ErrInvalidParams))
- size = quota.DefaultRuleQuota / 2
+ size = quota.DefaultRuleQuota
tags = make(map[string]string, size)
for i := 0; i < size; i++ {
s := "tag" + strconv.Itoa(i)
@@ -150,14 +150,6 @@
})
Expect(err).To(BeNil())
Expect(respAddTags.Response.GetCode()).To(Equal(proto.Response_SUCCESS))
-
- tags["out"] = "range"
- respAddTags, _ = serviceResource.AddTags(getContext(), &pb.AddServiceTagsRequest{
- ServiceId: serviceId2,
- Tags: tags,
- })
- Expect(err).To(BeNil())
- Expect(respAddTags.Response.GetCode()).To(Equal(scerr.ErrNotEnoughQuota))
})
})
})