tianxiaoliang commented on a change in pull request #809:
URL: 
https://github.com/apache/servicecomb-service-center/pull/809#discussion_r555036521



##########
File path: datasource/mongo/ms.go
##########
@@ -2010,19 +2018,26 @@ func (ds *DataSource) findSharedServiceInstance(ctx 
context.Context, request *di
        findFlag := func() string {
                return fmt.Sprintf("find shared provider[%s/%s/%s/%s]", 
provider.Environment, provider.AppId, provider.ServiceName, provider.Version)
        }
-       services, err := findServices(ctx, provider)
+       services, exist, err := findServices(ctx, provider)

Review comment:
       同类问题

##########
File path: datasource/mongo/ms.go
##########
@@ -2411,21 +2450,34 @@ func findServices(ctx context.Context, key 
*discovery.MicroServiceKey) ([]*Servi
                        StringBuilder([]string{ColumnServiceInfo, ColumnEnv}):  
       key.Environment,
                        StringBuilder([]string{ColumnServiceInfo, 
ColumnAppID}):       key.AppId,
                        StringBuilder([]string{ColumnServiceInfo, 
ColumnServiceName}): key.ServiceName,
-                       StringBuilder([]string{ColumnServiceInfo, 
ColumnVersion}):     bson.M{"$gte": start, "$lte": end}}
-               return servicesFilter(ctx, filter)
+                       StringBuilder([]string{ColumnServiceInfo, 
ColumnAlias}):       key.Alias,
+                       StringBuilder([]string{ColumnServiceInfo, 
ColumnVersion}):     bson.M{"$gte": start, "$lte": end},
+               }
+               services, err = servicesFilter(ctx, filter)
        default:
                filter := bson.M{
                        ColumnDomain:  tenant[0],
                        ColumnProject: tenant[1],
                        StringBuilder([]string{ColumnServiceInfo, ColumnEnv}):  
       key.Environment,
                        StringBuilder([]string{ColumnServiceInfo, 
ColumnAppID}):       key.AppId,
                        StringBuilder([]string{ColumnServiceInfo, 
ColumnServiceName}): key.ServiceName,
-                       StringBuilder([]string{ColumnServiceInfo, 
ColumnVersion}):     key.Version}
-               return servicesFilter(ctx, filter)
+                       StringBuilder([]string{ColumnServiceInfo, 
ColumnAlias}):       key.Alias,
+                       StringBuilder([]string{ColumnServiceInfo, 
ColumnVersion}):     key.Version,
+               }
+               services, err = servicesFilter(ctx, filter)
+               // If not found by version, exist is set to false
+               if len(services) == 0 {
+                       exist = false

Review comment:
       这是一种err,不可以接受bool方案

##########
File path: datasource/mongo/ms.go
##########
@@ -2010,19 +2018,26 @@ func (ds *DataSource) findSharedServiceInstance(ctx 
context.Context, request *di
        findFlag := func() string {
                return fmt.Sprintf("find shared provider[%s/%s/%s/%s]", 
provider.Environment, provider.AppId, provider.ServiceName, provider.Version)
        }
-       services, err := findServices(ctx, provider)
+       services, exist, err := findServices(ctx, provider)
        if err != nil {
                log.Error(fmt.Sprintf("find shared service instance failed %s", 
findFlag()), err)
                return &discovery.FindInstancesResponse{
                        Response: 
discovery.CreateResponse(discovery.ErrInternal, err.Error()),
                }, err
        }
        if services == nil {
-               mes := fmt.Errorf("%s failed, provider does not exist", 
findFlag())
-               log.Error("find shared service instance failed", mes)
-               return &discovery.FindInstancesResponse{
-                       Response: 
discovery.CreateResponse(discovery.ErrServiceNotExists, mes.Error()),
-               }, nil
+               if exist {

Review comment:
       同类问题




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to