Skip to content

Commit

Permalink
Add statistics option in governance api.
Browse files Browse the repository at this point in the history
  • Loading branch information
little-cui committed Oct 25, 2017
1 parent 5051cc4 commit f614055
Showing 1 changed file with 39 additions and 23 deletions.
62 changes: 39 additions & 23 deletions server/service/governservice.go
Expand Up @@ -28,41 +28,56 @@ type GovernServiceController struct {
}

func (governServiceController *GovernServiceController) GetServicesInfo(ctx context.Context, in *pb.GetServicesInfoRequest) (*pb.GetServicesInfoResponse, error) {
options := in.Options
//获取所有服务
opts := serviceUtil.QueryOptions(serviceUtil.WithNoCache(in.NoCache))
services, err := serviceUtil.GetAllServiceUtil(ctx, opts...)
if err != nil {
util.Logger().Errorf(err, "Get all services for govern service faild.")
return &pb.GetServicesInfoResponse{
Response: pb.CreateResponse(pb.Response_FAIL, "Get all service failed."),
}, err

optionMap := make(map[string]struct{}, len(in.Options))
for _, opt := range in.Options {
optionMap[opt] = struct{}{}
}

for _, opt := range options {
if opt == "all" {
options = []string{"tags", "rules", "instances", "schemas", "dependencies"}
break
options := make([]string, 0, len(optionMap))
if _, ok := optionMap["all"]; ok {
optionMap["statistics"] = struct{}{}
options = []string{"tags", "rules", "instances", "schemas", "dependencies"}
} else {
for opt := range optionMap {
options = append(options, opt)
}
if opt == "statistics" {
s, err := statistics(ctx, opts...)
if err != nil {
return &pb.GetServicesInfoResponse{
Response: pb.CreateResponse(pb.Response_FAIL, "Statistics failed."),
}, err
}
}

var st *pb.Statistics
if _, ok := optionMap["statistics"]; ok {
var err error
st, err = statistics(ctx, opts...)
if err != nil {
return &pb.GetServicesInfoResponse{
Response: pb.CreateResponse(pb.Response_FAIL, "Statistics failed."),
}, err
}
if len(optionMap) == 1 {
return &pb.GetServicesInfoResponse{
Response: pb.CreateResponse(pb.Response_SUCCESS, "Statistics successfully."),
Statistics: s,
Statistics: st,
}, nil
}
}

//获取所有服务
services, err := serviceUtil.GetAllServiceUtil(ctx, opts...)
if err != nil {
util.Logger().Errorf(err, "Get all services for govern service faild.")
return &pb.GetServicesInfoResponse{
Response: pb.CreateResponse(pb.Response_FAIL, "Get all service failed."),
}, err
}

allServiceDetails := []*pb.ServiceDetail{}
tenant := util.ParseTenantProject(ctx)
serviceId := ""
for _, service := range services {
serviceId = service.ServiceId
serviceDetail, err := getServiceDetailUtil(ctx, options, tenant, serviceId, service, opts...)
if apt.Service.ServiceId == service.ServiceId {
continue
}
serviceDetail, err := getServiceDetailUtil(ctx, options, tenant, service.ServiceId, service, opts...)
if err != nil {
return &pb.GetServicesInfoResponse{
Response: pb.CreateResponse(pb.Response_FAIL, "Get one service detail failed."),
Expand All @@ -75,6 +90,7 @@ func (governServiceController *GovernServiceController) GetServicesInfo(ctx cont
return &pb.GetServicesInfoResponse{
Response: pb.CreateResponse(pb.Response_SUCCESS, "Get services info successfully."),
AllServicesDetail: allServiceDetails,
Statistics: st,
}, nil
}

Expand Down

0 comments on commit f614055

Please sign in to comment.