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 09040b9  SCB-1015 Support the forth microservice version number 
registration (#488)
09040b9 is described below

commit 09040b90d0dc3c87f976caec1e0b6d2c5b1d86db
Author: little-cui <sure_0...@qq.com>
AuthorDate: Wed Nov 14 08:55:22 2018 +0800

    SCB-1015 Support the forth microservice version number registration (#488)
---
 server/plugin/pkg/registry/etcd/etcd_test.go |  2 +-
 server/service/microservice_test.go          | 24 +++++++++++++++++++++++-
 server/service/util/versionrule.go           |  4 ++--
 server/service/util/versionrule_test.go      |  7 +++++++
 4 files changed, 33 insertions(+), 4 deletions(-)

diff --git a/server/plugin/pkg/registry/etcd/etcd_test.go 
b/server/plugin/pkg/registry/etcd/etcd_test.go
index 79aed50..aa4e69f 100644
--- a/server/plugin/pkg/registry/etcd/etcd_test.go
+++ b/server/plugin/pkg/registry/etcd/etcd_test.go
@@ -120,7 +120,7 @@ func TestEtcdClient(t *testing.T) {
 
        // base test
        inst := NewRegistry()
-       if inst == nil || firstEndpoint != endpoint {
+       if inst == nil || strings.Index(endpoint, firstEndpoint) < 0 {
                t.Fatalf("TestEtcdClient failed, %s != %s", firstEndpoint, 
endpoint)
        }
        old1 := registry.Configuration().ClusterAddresses
diff --git a/server/service/microservice_test.go 
b/server/service/microservice_test.go
index 4b7792a..420c25c 100644
--- a/server/service/microservice_test.go
+++ b/server/service/microservice_test.go
@@ -64,7 +64,7 @@ var _ = Describe("'Micro-service' service", func() {
                                        Service: &pb.MicroService{
                                                AppId:       
TOO_LONG_APPID[:len(TOO_LONG_APPID)-1],
                                                ServiceName: 
TOO_LONG_SERVICENAME[:len(TOO_LONG_SERVICENAME)-1],
-                                               Version:     
"32767.32767.32767",
+                                               Version:     
"32767.32767.32767.32767",
                                                Alias:       
TOO_LONG_ALIAS[:len(TOO_LONG_ALIAS)-1],
                                                Level:       "BACK",
                                                Status:      "UP",
@@ -495,6 +495,20 @@ var _ = Describe("'Micro-service' service", func() {
                                Expect(err).To(BeNil())
                                
Expect(resp.Response.Code).To(Equal(scerr.ErrInvalidParams))
 
+                               By("invalid version 4")
+                               r = &pb.CreateServiceRequest{
+                                       Service: &pb.MicroService{
+                                               AppId:       "default",
+                                               ServiceName: "service-validate",
+                                               Version:     "1.1.0.0.0",
+                                               Level:       "BACK",
+                                               Status:      "UP",
+                                       },
+                               }
+                               resp, err = 
serviceResource.Create(getContext(), r)
+                               Expect(err).To(BeNil())
+                               
Expect(resp.Response.Code).To(Equal(scerr.ErrInvalidParams))
+
                                By("invalid level")
                                r = &pb.CreateServiceRequest{
                                        Service: &pb.MicroService{
@@ -840,6 +854,14 @@ var _ = Describe("'Micro-service' service", func() {
                                })
                                Expect(err).To(BeNil())
                                
Expect(resp.Response.Code).To(Equal(scerr.ErrInvalidParams))
+                               resp, err = serviceResource.Exist(getContext(), 
&pb.GetExistenceRequest{
+                                       Type:        "microservice",
+                                       AppId:       "default",
+                                       ServiceName: "exist-invalid-version",
+                                       Version:     "3.0.0.0.0",
+                               })
+                               Expect(err).To(BeNil())
+                               
Expect(resp.Response.Code).To(Equal(scerr.ErrInvalidParams))
 
                                By("version is empty")
                                resp, err = serviceResource.Exist(getContext(), 
&pb.GetExistenceRequest{
diff --git a/server/service/util/versionrule.go 
b/server/service/util/versionrule.go
index 78feb9a..ed7f360 100644
--- a/server/service/util/versionrule.go
+++ b/server/service/util/versionrule.go
@@ -254,9 +254,9 @@ func (vr *VersionRegexp) validateVersionRule(versionRule 
string) (err error) {
 func NewVersionRegexp(fuzzy bool) (vr *VersionRegexp) {
        vr = &VersionRegexp{Fuzzy: fuzzy}
        if fuzzy {
-               vr.Regex, _ = 
regexp.Compile(`^\d+(\.\d+){0,2}\+?$|^\d+(\.\d+){0,2}-\d+(\.\d+){0,2}$|^latest$`)
+               vr.Regex, _ = 
regexp.Compile(`^\d+(\.\d+){0,3}\+?$|^\d+(\.\d+){0,3}-\d+(\.\d+){0,3}$|^latest$`)
                return
        }
-       vr.Regex, _ = regexp.Compile(`^\d+(\.\d+){0,2}$`)
+       vr.Regex, _ = regexp.Compile(`^\d+(\.\d+){0,3}$`)
        return
 }
diff --git a/server/service/util/versionrule_test.go 
b/server/service/util/versionrule_test.go
index 71bbc7f..8d1f105 100644
--- a/server/service/util/versionrule_test.go
+++ b/server/service/util/versionrule_test.go
@@ -330,6 +330,9 @@ var _ = Describe("Version Rule sorter", func() {
                                Expect(vr.MatchString("1.-.2")).To(BeFalse())
                                Expect(vr.MatchString("60000-1")).To(BeFalse())
                                Expect(vr.MatchString("1.1-2.2")).To(BeTrue())
+                               
Expect(vr.MatchString("1.1.1.1-2.2.2.2")).To(BeTrue())
+                               
Expect(vr.MatchString("1.1.1.1.1-2.2.2.2")).To(BeFalse())
+                               
Expect(vr.MatchString("1.1.1.1-2.2.2.2.2")).To(BeFalse())
                        })
                        It("AtLess", func() {
                                vr := NewVersionRegexp(false)
@@ -343,6 +346,8 @@ var _ = Describe("Version Rule sorter", func() {
                                Expect(vr.MatchString(".+")).To(BeFalse())
                                Expect(vr.MatchString("60000+")).To(BeFalse())
                                Expect(vr.MatchString("1.0+")).To(BeTrue())
+                               Expect(vr.MatchString("1.0.0.0+")).To(BeTrue())
+                               
Expect(vr.MatchString("1.0.0.0.0+")).To(BeFalse())
                        })
                        It("Explicit", func() {
                                vr := NewVersionRegexp(false)
@@ -361,6 +366,8 @@ var _ = Describe("Version Rule sorter", func() {
                                Expect(vr.MatchString("1.")).To(BeFalse())
                                Expect(vr.MatchString(".1")).To(BeFalse())
                                Expect(vr.MatchString("1.4")).To(BeTrue())
+                               Expect(vr.MatchString("1.4.0.0")).To(BeTrue())
+                               
Expect(vr.MatchString("1.4.0.0.0")).To(BeFalse())
                        })
                })
                Context("Exception", func() {

Reply via email to