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/incubator-servicecomb-service-center.git


The following commit(s) were added to refs/heads/master by this push:
     new 77596a5  SCB-127 Bug fix: Can not find any instance of default app if 
SC startup in non-auth mode. (#238)
77596a5 is described below

commit 77596a5d7ae14a371093e89691cb41c0d05d745f
Author: little-cui <[email protected]>
AuthorDate: Tue Jan 2 19:17:18 2018 +0800

    SCB-127 Bug fix: Can not find any instance of default app if SC startup in 
non-auth mode. (#238)
---
 server/core/microservice.go      | 23 +++++++++++++++++++----
 server/service/instances_test.go |  2 ++
 2 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/server/core/microservice.go b/server/core/microservice.go
index 3cd8af6..73f885b 100644
--- a/server/core/microservice.go
+++ b/server/core/microservice.go
@@ -20,11 +20,16 @@ import (
        "github.com/apache/incubator-servicecomb-service-center/pkg/util"
        pb 
"github.com/apache/incubator-servicecomb-service-center/server/core/proto"
        "github.com/apache/incubator-servicecomb-service-center/version"
+       "github.com/astaxie/beego"
        "golang.org/x/net/context"
+       "strings"
 )
 
-var Service *pb.MicroService
-var Instance *pb.MicroServiceInstance
+var (
+       Service  *pb.MicroService
+       Instance *pb.MicroServiceInstance
+       isAuth   bool
+)
 
 const (
        REGISTRY_DOMAIN  = "default"
@@ -40,6 +45,8 @@ const (
 )
 
 func init() {
+       
SetSharedMode(len(strings.TrimSpace(beego.AppConfig.String("auth_plugin"))) > 0)
+
        Service = &pb.MicroService{
                Environment: pb.ENV_PROD,
                AppId:       REGISTRY_APP_ID,
@@ -79,7 +86,15 @@ func IsDefaultDomainProject(domainProject string) bool {
        return domainProject == util.StringJoin([]string{REGISTRY_DOMAIN, 
REGISTRY_PROJECT}, "/")
 }
 
+func SetSharedMode(b bool) {
+       isAuth = b
+}
+
 func IsShared(key *pb.MicroServiceKey) bool {
+       if !isAuth {
+               // shared micro-service only can be registered in auth mode.
+               return false
+       }
        if !IsDefaultDomainProject(key.Tenant) {
                return false
        }
@@ -87,10 +102,10 @@ func IsShared(key *pb.MicroServiceKey) bool {
 }
 
 func IsSCKey(key *pb.MicroServiceKey) bool {
-       if !IsShared(key) {
+       if !IsDefaultDomainProject(key.Tenant) {
                return false
        }
-       return key.ServiceName == Service.ServiceName
+       return key.AppId == Service.AppId && key.ServiceName == 
Service.ServiceName
 }
 
 func IsSCInstance(ctx context.Context) bool {
diff --git a/server/service/instances_test.go b/server/service/instances_test.go
index 81ea206..3e3750b 100644
--- a/server/service/instances_test.go
+++ b/server/service/instances_test.go
@@ -888,6 +888,7 @@ var _ = Describe("'Instance' service", func() {
                                Expect(len(respFind.Instances)).To(Equal(0))
 
                                By("shared service discovery")
+                               core.SetSharedMode(true)
                                core.Service.Environment = pb.ENV_PROD
                                respFind, err = instanceResource.Find(
                                        util.SetTargetDomainProject(
@@ -915,6 +916,7 @@ var _ = Describe("'Instance' service", func() {
                                Expect(len(respFind.Instances)).To(Equal(1))
                                
Expect(respFind.Instances[0].InstanceId).To(Equal(instanceId5))
                                core.Service.Environment = pb.ENV_DEV
+                               core.SetSharedMode(false)
                        })
                })
 

-- 
To stop receiving notification emails like this one, please contact
['"[email protected]" <[email protected]>'].

Reply via email to