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 <[email protected]>
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() {