diff --git a/.gitignore b/.gitignore index 9b3a010..073c08c 100644 --- a/.gitignore +++ b/.gitignore @@ -30,4 +30,5 @@ go.sum aksk.conf config.yaml -log/ \ No newline at end of file +log/ +/go_build_gitlink_org_cn_JCCE_PCM diff --git a/adaptor/pod_adaptor/server/pod/pod.go b/adaptor/pod_adaptor/server/pod/pod.go index ac17671..50ae6ad 100644 --- a/adaptor/pod_adaptor/server/pod/pod.go +++ b/adaptor/pod_adaptor/server/pod/pod.go @@ -14,6 +14,47 @@ import ( "github.com/pkg/errors" ) +// GetPodRegion get the available region for pod +func GetPodRegion(ctx context.Context, req *pbpod.GetPodRegionReq) (resp *pbpod.GetPodRegionResp, err error) { + var ( + regionInit tenanter.Region + regions []*pbtenant.Region + ) + + switch req.GetProvider() { + case pbtenant.CloudProvider_ali: + regionInit, _ = tenanter.NewRegion(req.GetProvider(), 2) + case pbtenant.CloudProvider_tencent: + regionInit, _ = tenanter.NewRegion(req.GetProvider(), 5) + case pbtenant.CloudProvider_huawei: + regionInit, _ = tenanter.NewRegion(req.GetProvider(), 5) + } + tenanters, err := tenanter.GetTenanters(req.GetProvider()) + if err != nil { + return nil, errors.WithMessage(err, "getTenanters error") + } + + for _, tenant := range tenanters { + + pod, err := poder.NewPodClient(req.GetProvider(), regionInit, tenant) + if err != nil { + return nil, errors.WithMessage(err, "NewPodClient error") + } + request := &pbpod.GetPodRegionReq{ + Provider: req.GetProvider(), + } + resp, err := pod.GetPodRegion(ctx, request) + if err != nil { + return nil, errors.Wrap(err, "GetPodRegion error") + } + for _, region := range resp.GetRegions() { + regions = append(regions, region) + } + } + + return &pbpod.GetPodRegionResp{Regions: regions}, nil +} + func CreatePods(ctx context.Context, req *pbpod.CreatePodsReq) (*pbpod.CreatePodsResp, error) { var ( wg sync.WaitGroup @@ -68,9 +109,9 @@ func CreatePod(ctx context.Context, req *pbpod.CreatePodReq) (*pbpod.CreatePodRe return nil, errors.WithMessagef(err, "provider %v regionId %v", req.Provider, req.RegionId) } - for _, tenanter := range tenanters { - if req.AccountName == "" || tenanter.AccountName() == req.AccountName { - if pod, err = poder.NewPodClient(req.Provider, region, tenanter); err != nil { + for _, tenant := range tenanters { + if req.AccountName == "" || tenant.AccountName() == req.AccountName { + if pod, err = poder.NewPodClient(req.Provider, region, tenant); err != nil { return nil, errors.WithMessage(err, "NewPodClient error") } break @@ -95,9 +136,9 @@ func DeletePod(ctx context.Context, req *pbpod.DeletePodReq) (*pbpod.DeletePodRe return nil, errors.WithMessagef(err, "provider %v regionId %v", req.Provider, req.RegionId) } - for _, tenanter := range tenanters { - if req.AccountName == "" || tenanter.AccountName() == req.AccountName { - if pod, err = poder.NewPodClient(req.Provider, region, tenanter); err != nil { + for _, tenant := range tenanters { + if req.AccountName == "" || tenant.AccountName() == req.AccountName { + if pod, err = poder.NewPodClient(req.Provider, region, tenant); err != nil { return nil, errors.WithMessage(err, "NewPodClient error") } break @@ -122,9 +163,9 @@ func UpdatePod(ctx context.Context, req *pbpod.UpdatePodReq) (*pbpod.UpdatePodRe return nil, errors.WithMessagef(err, "provider %v regionId %v", req.Provider, req.RegionId) } - for _, tenanter := range tenanters { - if req.AccountName == "" || tenanter.AccountName() == req.AccountName { - if pod, err = poder.NewPodClient(req.Provider, region, tenanter); err != nil { + for _, tenant := range tenanters { + if req.AccountName == "" || tenant.AccountName() == req.AccountName { + if pod, err = poder.NewPodClient(req.Provider, region, tenant); err != nil { return nil, errors.WithMessage(err, "NewPodClient error") } break @@ -149,9 +190,9 @@ func ListPodDetail(ctx context.Context, req *pbpod.ListPodDetailReq) (*pbpod.Lis return nil, errors.WithMessagef(err, "provider %v regionId %v", req.Provider, req.RegionId) } - for _, tenanter := range tenanters { - if req.AccountName == "" || tenanter.AccountName() == req.AccountName { - if pod, err = poder.NewPodClient(req.Provider, region, tenanter); err != nil { + for _, tenant := range tenanters { + if req.AccountName == "" || tenant.AccountName() == req.AccountName { + if pod, err = poder.NewPodClient(req.Provider, region, tenant); err != nil { return nil, errors.WithMessage(err, "NewPodClient error") } break @@ -172,12 +213,16 @@ func ListPod(ctx context.Context, req *pbpod.ListPodReq) (*pbpod.ListPodResp, er if err != nil { return nil, errors.WithMessage(err, "getTenanters error") } + //get the available region for product + reqPodRegion := &pbpod.GetPodRegionReq{Provider: req.GetProvider()} + respPodRegion, err := GetPodRegion(ctx, reqPodRegion) + if err != nil { + return nil, errors.WithMessage(err, "getPodRegion error") + } - regions := tenanter.GetAllRegionIds(req.Provider) - - wg.Add(len(tenanters) * len(regions)) + wg.Add(len(tenanters) * len(respPodRegion.Regions)) for _, t := range tenanters { - for _, region := range regions { + for _, region := range respPodRegion.Regions { go func(tenant tenanter.Tenanter, region tenanter.Region) { defer wg.Done() pod, err := poder.NewPodClient(req.Provider, region, tenant) @@ -230,9 +275,9 @@ func ListPodAll(ctx context.Context) (*pbpod.ListPodResp, error) { go func(provider int32) { defer wg.Done() - //针对私有K8S集群,调用listAll时默认只查询default namespace下的pod + //针对私有K8S集群,调用listAll时默认只查询ListPodDetailReq namespace下的pod if provider == 3 { - resp, err := ListPod(ctx, &pbpod.ListPodReq{Provider: pbtenant.CloudProvider(provider), Namespace: "default"}) + resp, err := ListPod(ctx, &pbpod.ListPodReq{Provider: pbtenant.CloudProvider(provider), Namespace: "pcm"}) if err != nil { glog.Errorf("List error %v", err) return diff --git a/adaptor/pod_adaptor/service/poder/ali_eci.go b/adaptor/pod_adaptor/service/poder/ali_eci.go index a9e4867..8fd7a22 100644 --- a/adaptor/pod_adaptor/service/poder/ali_eci.go +++ b/adaptor/pod_adaptor/service/poder/ali_eci.go @@ -2,17 +2,17 @@ package poder import ( "context" + "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests" + alieci "github.com/aliyun/alibaba-cloud-sdk-go/services/eci" + "github.com/bitly/go-simplejson" + "github.com/golang/glog" "strconv" "sync" - "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests" - + "github.com/pkg/errors" "gitlink.org.cn/JCCE/PCM/common/tenanter" "gitlink.org.cn/JCCE/PCM/lan_trans/idl/pbpod" "gitlink.org.cn/JCCE/PCM/lan_trans/idl/pbtenant" - - alieci "github.com/aliyun/alibaba-cloud-sdk-go/services/eci" - "github.com/pkg/errors" ) var aliClientMutex sync.Mutex @@ -23,6 +23,44 @@ type AliEci struct { tenanter tenanter.Tenanter } +func (eci *AliEci) GetPodRegion(ctx context.Context, req *pbpod.GetPodRegionReq) (*pbpod.GetPodRegionResp, error) { + + regions := make([]*pbtenant.Region, 0) + + requestRegion := requests.NewCommonRequest() + requestRegion.Method = "POST" + requestRegion.Scheme = "https" // https | http + requestRegion.Domain = "eci.aliyuncs.com" + requestRegion.Version = "2018-08-08" + requestRegion.ApiName = "DescribeRegions" + //这里需要给一个空字符串的RegionId + requestRegion.QueryParams["RegionId"] = "" + + resp, err := eci.cli.ProcessCommonRequest(requestRegion) + + var respRegion *simplejson.Json + respRegion, err = simplejson.NewJson([]byte(resp.GetHttpContentString())) + if err != nil { + panic("解析失败") + } + + i := 0 + for i < len(respRegion.Get("Regions").MustArray()) { + regionsJson := respRegion.Get("Regions").GetIndex(i) + regionName, _ := regionsJson.Get("RegionId").String() + regionId, _ := tenanter.GetAliRegionId(regionName) + regionPod := &pbtenant.Region{ + Id: regionId, + Name: regionName, + } + regions = append(regions, regionPod) + i++ + } + + return &pbpod.GetPodRegionResp{Regions: regions}, nil + +} + func newAliEciClient(region tenanter.Region, tenant tenanter.Tenanter) (Poder, error) { var ( client *alieci.Client @@ -50,7 +88,6 @@ func newAliEciClient(region tenanter.Region, tenant tenanter.Tenanter) (Poder, e func (eci *AliEci) CreatePod(ctx context.Context, req *pbpod.CreatePodReq) (*pbpod.CreatePodResp, error) { request := alieci.CreateCreateContainerGroupRequest() - request.RegionId = eci.region.GetName() request.ContainerGroupName = req.PodName requestContainer := make([]alieci.CreateContainerGroupContainer, 1) @@ -69,45 +106,45 @@ func (eci *AliEci) CreatePod(ctx context.Context, req *pbpod.CreatePodReq) (*pbp if len(resp.ContainerGroupId) > 0 { isFinished = true } + glog.Infof("--------------------Aliyun ECI Instance created--------------------") return &pbpod.CreatePodResp{ - Pods: nil, Finished: isFinished, - RequestId: "ali pod ID:" + resp.ContainerGroupId, + RequestId: "Create Ali pod request ID:" + resp.RequestId, + PodId: resp.ContainerGroupId, + PodName: req.PodName, }, nil } func (eci *AliEci) DeletePod(ctx context.Context, req *pbpod.DeletePodReq) (*pbpod.DeletePodResp, error) { - //生成删除请求 deleteContainerGroupRequest := alieci.CreateDeleteContainerGroupRequest() deleteContainerGroupRequest.RegionId = eci.region.GetName() deleteContainerGroupRequest.ContainerGroupId = req.PodId - deleteContainerGroupResponse, err := eci.cli.DeleteContainerGroup(deleteContainerGroupRequest) + resp, err := eci.cli.DeleteContainerGroup(deleteContainerGroupRequest) isFinished := true if err != nil { isFinished = false return nil, errors.Wrap(err, "Aliyun DeletePod error") } - requestId := deleteContainerGroupResponse.RequestId + glog.Infof("--------------------Aliyun ECI Instance deleted--------------------") return &pbpod.DeletePodResp{ - //Pods: nil, Finished: isFinished, - RequestId: requestId, + RequestId: "Delete Ali pod request ID:" + resp.RequestId, + PodId: req.PodId, + PodName: req.PodName, }, nil } func (eci *AliEci) UpdatePod(ctx context.Context, req *pbpod.UpdatePodReq) (*pbpod.UpdatePodResp, error) { - //TODO implement ali eci update pod - //生成更新请求 + updateContainerGroupRequest := alieci.CreateUpdateContainerGroupRequest() updateContainerGroupRequest.RegionId = eci.region.GetName() updateContainerGroupRequest.ContainerGroupId = req.PodId - //容器实体内容,这里测试可以修改配置文件中的重启策略 updateContainerRequestContainer := make([]alieci.UpdateContainerGroupContainer, 1) updateContainerRequestContainer[0].Image = req.ContainerImage updateContainerRequestContainer[0].Name = req.ContainerName @@ -116,19 +153,20 @@ func (eci *AliEci) UpdatePod(ctx context.Context, req *pbpod.UpdatePodReq) (*pbp updateContainerGroupRequest.Container = &updateContainerRequestContainer updateContainerGroupRequest.RestartPolicy = req.RestartPolicy - updateContainerGroupResponse, err := eci.cli.UpdateContainerGroup(updateContainerGroupRequest) + resp, err := eci.cli.UpdateContainerGroup(updateContainerGroupRequest) isFinished := true if err != nil { isFinished = false - return nil, errors.Wrap(err, "Aliyun DeletePod error") + return nil, errors.Wrap(err, "Aliyun UpdatePod error") } - requestId := updateContainerGroupResponse.RequestId + glog.Infof("--------------------Aliyun ECI Instance updated--------------------") return &pbpod.UpdatePodResp{ - //Pods: nil, Finished: isFinished, - RequestId: requestId, + RequestId: "Update Ali pod request ID:" + resp.RequestId, + PodId: req.PodId, + PodName: req.PodName, }, nil } @@ -136,6 +174,7 @@ func (eci *AliEci) ListPodDetail(ctx context.Context, req *pbpod.ListPodDetailRe request := alieci.CreateDescribeContainerGroupsRequest() request.NextToken = req.NextToken resp, err := eci.cli.DescribeContainerGroups(request) + if err != nil { return nil, errors.Wrap(err, "Aliyun ListDetail error") } @@ -176,55 +215,3 @@ func (eci *AliEci) ListPodDetail(ctx context.Context, req *pbpod.ListPodDetailRe RequestId: resp.RequestId, }, nil } - -//// UpdateContainerGroup 更新Pod -//func UpdateContainerGroup(cloudStack string, akskPath string, configPath string) string { -// var client *eci.Client -// -// configCommon, _ := config.PCMconfig(configPath) -// configAksk, _ := aksk.AkskConfig(cloudStack, akskPath) -// -// client, _ = eci.NewClientWithAccessKey(configCommon.RegionId, configAksk.AccessKey, configAksk.SecretKey) -// -// //生成更新请求 -// updateContainerGroupRequest := eci.CreateUpdateContainerGroupRequest() -// updateContainerGroupRequest.RegionId = configCommon.RegionIdUpdate -// updateContainerGroupRequest.ContainerGroupId = configCommon.ContainerGroupIdUpdate -// -// //容器实体内容,这里测试可以修改配置文件中的重启策略 -// updateContainerRequestContainer := make([]eci.UpdateContainerGroupContainer, 1) -// updateContainerRequestContainer[0].Image = configCommon.ContainerImage -// updateContainerRequestContainer[0].Name = configCommon.ContainerName -// updateContainerGroupRequest.Container = &updateContainerRequestContainer -// updateContainerGroupRequest.RestartPolicy = configCommon.RestartPolicyUpdate -// -// updateContainerGroupResponse, err := client.UpdateContainerGroup(updateContainerGroupRequest) -// if err != nil { -// panic(err) -// } -// requestId := updateContainerGroupResponse.RequestId -// fmt.Println("Alibaba ContainerGroup: ", configCommon.ContainerGroupIdUpdate, " Updated with request ID:", requestId) -// return requestId -//} -// -//// DeleteContainerGroup 删除Pod -//func DeleteContainerGroup(cloudStack string, akskPath string, configPath string) string { -// var client *eci.Client -// configCommon, _ := config.PCMconfig(configPath) -// configAksk, _ := aksk.AkskConfig(cloudStack, akskPath) -// client, _ = eci.NewClientWithAccessKey(configCommon.RegionId, configAksk.AccessKey, configAksk.SecretKey) -// -// //生成删除请求 -// deleteContainerGroupRequest := eci.CreateDeleteContainerGroupRequest() -// deleteContainerGroupRequest.RegionId = configCommon.RegionIdDelete -// deleteContainerGroupRequest.ContainerGroupId = configCommon.ContainerGroupIdDelete -// -// deleteContainerGroupResponse, err := client.DeleteContainerGroup(deleteContainerGroupRequest) -// if err != nil { -// panic(err) -// } -// requestId := deleteContainerGroupResponse.RequestId -// fmt.Println("Alibaba ContainerGroup: ", configCommon.ContainerGroupIdUpdate, " Deleted with request ID:", requestId) -// -// return requestId -//} diff --git a/adaptor/pod_adaptor/service/poder/huawei_cci.go b/adaptor/pod_adaptor/service/poder/huawei_cci.go index b733e55..ad3b0b2 100644 --- a/adaptor/pod_adaptor/service/poder/huawei_cci.go +++ b/adaptor/pod_adaptor/service/poder/huawei_cci.go @@ -3,6 +3,7 @@ package poder import ( "context" "fmt" + util "github.com/alibabacloud-go/tea-utils/service" "sync" "k8s.io/apimachinery/pkg/api/resource" @@ -31,6 +32,25 @@ type HuaweiCci struct { tenanter tenanter.Tenanter } +func (cci *HuaweiCci) GetPodRegion(ctx context.Context, req *pbpod.GetPodRegionReq) (*pbpod.GetPodRegionResp, error) { + //todo + var ( + regions []*pbtenant.Region + ) + huaweiRegionName, _ := tenanter.GetHuaweiRegionName(5) + region := &pbtenant.Region{ + Id: 5, + Name: huaweiRegionName, + } + regions = append(regions, region) + resp := &pbpod.GetPodRegionResp{ + Regions: regions, + } + + return resp, nil +} + +//CCI auth through iam const ( apiVersion = "client.authentication.k8s.io/v1beta1" iamEndpoint = "https://iam.myhuaweicloud.com" @@ -107,7 +127,6 @@ func (cci *HuaweiCci) CreatePod(ctx context.Context, req *pbpod.CreatePodReq) (* } resp, err := cci.cli.CoreV1().Pods(req.Namespace).Create(&pod) - glog.Info("Huawei create pod resp", resp) if err != nil { return nil, errors.Wrap(err, "Huaweiyun CreatePod error") } @@ -117,33 +136,39 @@ func (cci *HuaweiCci) CreatePod(ctx context.Context, req *pbpod.CreatePodReq) (* isFinished = true } + glog.Infof("--------------------Huawei CCI Instance created--------------------") + return &pbpod.CreatePodResp{ - Pods: nil, Finished: isFinished, - RequestId: "huawei pod Name:" + resp.Name, + RequestId: "Create huawei pod request ID:" + resp.GenerateName, + PodId: string(resp.Generation), + PodName: resp.Name, }, nil } func (cci *HuaweiCci) DeletePod(ctx context.Context, req *pbpod.DeletePodReq) (*pbpod.DeletePodResp, error) { - podName := req.PodName - fmt.Println("Huawei ContainerGroup:", podName, " Deleted") - err := cci.cli.CoreV1().Pods(req.Namespace).Delete(podName, &metav1.DeleteOptions{}) - glog.Info("Huawei delete pod resp", err) + err := cci.cli.CoreV1().Pods(req.GetNamespace()).Delete(req.PodName, &metav1.DeleteOptions{}) + isFinished := true if err != nil { isFinished = false return nil, errors.Wrap(err, "Huaweiyun DeletePod error") } + glog.Infof("--------------------Huawei CCI Instance deleted--------------------") + glog.Infof(*util.ToJSONString(util.ToMap(err))) + return &pbpod.DeletePodResp{ - //Pods: err, - Finished: isFinished, - //RequestId: resp.RequestId, + Finished: isFinished, + RequestId: "Delete huawei pod request ID:" + req.PodName, + PodId: req.PodName, + PodName: req.PodName, }, nil } func (cci *HuaweiCci) UpdatePod(ctx context.Context, req *pbpod.UpdatePodReq) (*pbpod.UpdatePodResp, error) { + qresp, err := cci.cli.CoreV1().Pods(req.GetNamespace()).Get(req.PodName, metav1.GetOptions{}) if err != nil { return nil, errors.Wrap(err, "Huaweiyun UpdatePod error") @@ -165,20 +190,25 @@ func (cci *HuaweiCci) UpdatePod(ctx context.Context, req *pbpod.UpdatePodReq) (* return nil, errors.Wrap(err, "Huaweiyun UpdatePod error") } + glog.Infof("--------------------Huawei CCI Instance updated--------------------") + isFinished := false if len(resp.UID) > 0 { isFinished = true } return &pbpod.UpdatePodResp{ - Pod: nil, - Finished: isFinished, - //RequestId: resp.RequestId, + Finished: isFinished, + RequestId: "Update huawei pod request ID:" + resp.GenerateName, + PodId: string(resp.Generation), + PodName: resp.Name, }, nil } func (cci *HuaweiCci) ListPodDetail(ctx context.Context, req *pbpod.ListPodDetailReq) (*pbpod.ListPodDetailResp, error) { + resp, err := cci.cli.CoreV1().Pods(req.GetNamespace()).List(metav1.ListOptions{}) + if err != nil { return nil, errors.Wrap(err, "Huaweiyun ListDetail pod error") } @@ -200,6 +230,8 @@ func (cci *HuaweiCci) ListPodDetail(ctx context.Context, req *pbpod.ListPodDetai } } + glog.Infof("--------------------Huawei CCI Instance updated--------------------") + isFinished := false if len(pods) < int(req.PageSize) { isFinished = true @@ -210,7 +242,5 @@ func (cci *HuaweiCci) ListPodDetail(ctx context.Context, req *pbpod.ListPodDetai Finished: isFinished, PageNumber: req.PageNumber + 1, PageSize: req.PageSize, - //NextToken: resp.NextToken, - //RequestId: resp.RequestId, }, nil } diff --git a/adaptor/pod_adaptor/service/poder/k8s.go b/adaptor/pod_adaptor/service/poder/k8s.go index 36f9a73..25cdbf4 100644 --- a/adaptor/pod_adaptor/service/poder/k8s.go +++ b/adaptor/pod_adaptor/service/poder/k8s.go @@ -30,6 +30,24 @@ type K8SPoder struct { tenanter tenanter.Tenanter } +func (k K8SPoder) GetPodRegion(ctx context.Context, req *pbpod.GetPodRegionReq) (*pbpod.GetPodRegionResp, error) { + //todo + var ( + regions []*pbtenant.Region + ) + huaweiRegionName, _ := tenanter.GetK8SRegionName(0) + region := &pbtenant.Region{ + Id: 0, + Name: huaweiRegionName, + } + regions = append(regions, region) + resp := &pbpod.GetPodRegionResp{ + Regions: regions, + } + + return resp, nil +} + func newK8SClient(tenant tenanter.Tenanter) (Poder, error) { var ( client *k8s.Clientset @@ -64,45 +82,6 @@ func newK8SClient(tenant tenanter.Tenanter) (Poder, error) { }, nil } -func (k K8SPoder) ListPodDetail(ctx context.Context, req *pbpod.ListPodDetailReq) (*pbpod.ListPodDetailResp, error) { - //TODO implement me - resp, err := k.cli.CoreV1().Pods(req.GetNamespace()).List(metav1.ListOptions{}) - if err != nil { - return nil, errors.Wrap(err, "K8S ListDetail pod error") - } - glog.Info("K8S ListDetail pod success", resp.Items) - var pods = make([]*pbpod.PodInstance, len(resp.Items)) - for k, v := range resp.Items { - pods[k] = &pbpod.PodInstance{ - Provider: pbtenant.CloudProvider_k8s, - AccountName: req.AccountName, - PodId: string(v.GetUID()), - PodName: v.Name, - ContainerImage: v.Spec.Containers[0].Image, - ContainerName: v.Spec.Containers[0].Name, - CpuPod: v.Spec.Containers[0].Resources.Requests.Cpu().String(), - MemoryPod: v.Spec.Containers[0].Resources.Requests.Memory().String(), - Namespace: v.Namespace, - Status: string(v.Status.Phase), - } - } - - isFinished := false - if len(pods) < int(req.PageSize) { - isFinished = true - } - - return &pbpod.ListPodDetailResp{ - Pods: pods, - Finished: isFinished, - PageNumber: req.PageNumber + 1, - PageSize: req.PageSize, - //NextToken: resp.NextToken, - //RequestId: resp.RequestId, - }, nil - -} - func (k *K8SPoder) CreatePod(ctx context.Context, req *pbpod.CreatePodReq) (*pbpod.CreatePodResp, error) { pod := corev1.Pod{ @@ -134,21 +113,22 @@ func (k *K8SPoder) CreatePod(ctx context.Context, req *pbpod.CreatePodReq) (*pbp } resp, err := k.cli.CoreV1().Pods(req.Namespace).Create(&pod) - - glog.Info("K8S create pod resp", resp) if err != nil { return nil, errors.Wrap(err, "K8S CreatePod error") } + glog.Infof("--------------------K8S Pod Instance created--------------------") + isFinished := false if len(resp.UID) > 0 { isFinished = true } return &pbpod.CreatePodResp{ - Pods: nil, Finished: isFinished, RequestId: "K8S pod Name:" + resp.Name, + PodId: string(resp.UID), + PodName: resp.Name, }, nil } @@ -159,7 +139,8 @@ func (k K8SPoder) DeletePod(ctx context.Context, req *pbpod.DeletePodReq) (*pbpo fmt.Println("K8S ContainerGroup:", podName, " Deleted") err := k.cli.CoreV1().Pods(req.Namespace).Delete(podName, &metav1.DeleteOptions{}) - glog.Info("K8S delete pod resp", err) + glog.Infof("--------------------K8S Pod Instance deleted--------------------") + isFinished := true if err != nil { isFinished = false @@ -167,9 +148,10 @@ func (k K8SPoder) DeletePod(ctx context.Context, req *pbpod.DeletePodReq) (*pbpo } return &pbpod.DeletePodResp{ - //Pods: err, - Finished: isFinished, - //RequestId: resp.RequestId, + Finished: isFinished, + RequestId: "K8S pod Name:" + req.PodName, + PodId: req.PodName, + PodName: req.PodName, }, nil } @@ -191,20 +173,60 @@ func (k K8SPoder) UpdatePod(ctx context.Context, req *pbpod.UpdatePodReq) (*pbpo } pod.Spec.Containers[0].Image = req.ContainerImage resp, err := k.cli.CoreV1().Pods(req.Namespace).Update(&pod) - glog.Info("K8S update pod resp", resp) if err != nil { return nil, errors.Wrap(err, "K8S UpdatePod error") } + glog.Infof("--------------------K8S Pod Instance updated--------------------") + isFinished := false if len(resp.UID) > 0 { isFinished = true } return &pbpod.UpdatePodResp{ - Pod: nil, - Finished: isFinished, - //RequestId: resp.RequestId, + Finished: isFinished, + RequestId: "K8S pod Name:" + req.PodName, + PodId: string(resp.UID), + PodName: req.PodName, + }, nil + +} + +func (k K8SPoder) ListPodDetail(ctx context.Context, req *pbpod.ListPodDetailReq) (*pbpod.ListPodDetailResp, error) { + resp, err := k.cli.CoreV1().Pods(req.GetNamespace()).List(metav1.ListOptions{}) + if err != nil { + return nil, errors.Wrap(err, "K8S ListDetail pod error") + } + + var pods = make([]*pbpod.PodInstance, len(resp.Items)) + for k, v := range resp.Items { + pods[k] = &pbpod.PodInstance{ + Provider: pbtenant.CloudProvider_k8s, + AccountName: req.AccountName, + PodId: string(v.GetUID()), + PodName: v.Name, + ContainerImage: v.Spec.Containers[0].Image, + ContainerName: v.Spec.Containers[0].Name, + CpuPod: v.Spec.Containers[0].Resources.Requests.Cpu().String(), + MemoryPod: v.Spec.Containers[0].Resources.Requests.Memory().String(), + Namespace: v.Namespace, + Status: string(v.Status.Phase), + } + } + + glog.Infof("--------------------Huawei CCI Instance updated--------------------") + + isFinished := false + if len(pods) < int(req.PageSize) { + isFinished = true + } + + return &pbpod.ListPodDetailResp{ + Pods: pods, + Finished: isFinished, + PageNumber: req.PageNumber + 1, + PageSize: req.PageSize, }, nil } diff --git a/adaptor/pod_adaptor/service/poder/poder.go b/adaptor/pod_adaptor/service/poder/poder.go index 3c99f89..63e4d3d 100644 --- a/adaptor/pod_adaptor/service/poder/poder.go +++ b/adaptor/pod_adaptor/service/poder/poder.go @@ -21,6 +21,7 @@ type Poder interface { CreatePod(ctx context.Context, req *pbpod.CreatePodReq) (resp *pbpod.CreatePodResp, err error) DeletePod(ctx context.Context, req *pbpod.DeletePodReq) (*pbpod.DeletePodResp, error) UpdatePod(ctx context.Context, req *pbpod.UpdatePodReq) (*pbpod.UpdatePodResp, error) + GetPodRegion(ctx context.Context, req *pbpod.GetPodRegionReq) (*pbpod.GetPodRegionResp, error) } func NewPodClient(provider pbtenant.CloudProvider, region tenanter.Region, tenant tenanter.Tenanter) (poder Poder, err error) { diff --git a/adaptor/pod_adaptor/service/poder/tencent_eks.go b/adaptor/pod_adaptor/service/poder/tencent_eks.go index fc6e5a3..da56265 100644 --- a/adaptor/pod_adaptor/service/poder/tencent_eks.go +++ b/adaptor/pod_adaptor/service/poder/tencent_eks.go @@ -25,6 +25,27 @@ type TencentEks struct { tenanter tenanter.Tenanter } +func (eks TencentEks) GetPodRegion(ctx context.Context, req *pbpod.GetPodRegionReq) (*pbpod.GetPodRegionResp, error) { + + regions := make([]*pbtenant.Region, 0) + + request := tencenteks.NewDescribeEKSContainerInstanceRegionsRequest() + resp, err := eks.cli.DescribeEKSContainerInstanceRegions(request) + if err != nil { + return nil, errors.Wrap(err, "tencent eks describe region error") + } + for _, eksRegion := range resp.Response.Regions { + + regionPod := &pbtenant.Region{ + Id: int32(*eksRegion.RegionId), + Name: *eksRegion.RegionName, + } + regions = append(regions, regionPod) + } + return &pbpod.GetPodRegionResp{Regions: regions}, nil + +} + func newTencentEksClient(region tenanter.Region, tenant tenanter.Tenanter) (Poder, error) { var ( client *tencenteks.Client @@ -46,7 +67,7 @@ func newTencentEksClient(region tenanter.Region, tenant tenanter.Tenanter) (Pode } if err != nil { - return nil, errors.Wrap(err, "init ali ecs client error") + return nil, errors.Wrap(err, "init tencent eks client error") } return &TencentEks{ @@ -76,8 +97,6 @@ func (eks TencentEks) CreatePod(ctx context.Context, req *pbpod.CreatePodReq) (* container[0] = new(tencenteks.Container) container[0].Name = &containerName container[0].Image = &containerImage - //container[0].Cpu = containerCpuPt - //container[0].Memory = containerMemoryPt request.Containers = container eksCpu64, err := strconv.ParseFloat(eksCpu, 64) @@ -94,15 +113,17 @@ func (eks TencentEks) CreatePod(ctx context.Context, req *pbpod.CreatePodReq) (* } isFinished := false - if resp.Response.RequestId != nil { isFinished = true } + glog.Infof("--------------------K8S Pod Instance created--------------------") + return &pbpod.CreatePodResp{ - Pods: nil, Finished: isFinished, - RequestId: *resp.Response.RequestId, + RequestId: "tencent pod create request id:" + *resp.Response.RequestId, + PodId: *resp.Response.EksCiIds[0], + PodName: req.PodName, }, nil } @@ -119,12 +140,13 @@ func (eks *TencentEks) DeletePod(ctx context.Context, req *pbpod.DeletePodReq) ( return nil, errors.Wrap(err, "Tencent DeletePod error") } - requestId := resp.Response.RequestId + glog.Infof("--------------------K8S Pod Instance deleted--------------------") return &pbpod.DeletePodResp{ - Pods: nil, Finished: isFinished, - RequestId: *requestId, + RequestId: "tencent pod delete request id:" + *resp.Response.RequestId, + PodId: req.PodId, + PodName: req.PodName, }, nil } @@ -146,14 +168,16 @@ func (eks *TencentEks) UpdatePod(ctx context.Context, req *pbpod.UpdatePodReq) ( isFinished := true if err != nil { isFinished = false - glog.Errorf("Tencent UpdatePod error: %v", err) return nil, errors.Wrap(err, "Tencent UpdatePod error") } + glog.Infof("--------------------K8S Pod Instance deleted--------------------") + return &pbpod.UpdatePodResp{ - Pod: nil, Finished: isFinished, - RequestId: "tencent pod ID:" + *resp.Response.EksCiId, + RequestId: "tencent pod update request id:" + *resp.Response.RequestId, + PodId: req.PodId, + PodName: req.PodName, }, nil } @@ -187,88 +211,14 @@ func (eks TencentEks) ListPodDetail(ctx context.Context, req *pbpod.ListPodDetai if len(ekspods) < int(req.PageSize) { isFinished = true } + + glog.Infof("--------------------K8S Pod Instance deleted--------------------") + return &pbpod.ListPodDetailResp{ Pods: ekspods, Finished: isFinished, PageNumber: req.PageNumber + 1, PageSize: req.PageSize, - //NextToken: resp.NextToken, - RequestId: *resp.Response.RequestId, + RequestId: *resp.Response.RequestId, }, nil } - -// -//func ListEksInstance(cloudStack string, akskPath string, configPath string) { -// -// configCommon, _ := pcmCommon.PCMconfig(configPath) -// configAksk, _ := aksk.AkskConfig(cloudStack, akskPath) -// -// credential := common.NewCredential(configAksk.AccessKey, configAksk.SecretKey) -// cpf := profile.NewClientProfile() -// cpf.HttpProfile.Endpoint = "tke.tencentcloudapi.com" -// client, _ := tke.NewClient(credential, configCommon.RegionId, cpf) -// -// request := tke.NewDescribeEKSContainerInstancesRequest() -// -// response, err := client.DescribeEKSContainerInstances(request) -// if _, ok := err.(*errors.TencentCloudSDKError); ok { -// fmt.Printf("An API error has returned: %s", err) -// return -// } -// if err != nil { -// panic(err) -// } -// fmt.Printf("%s", response.ToJsonString()) -//} -// -//func UpdateEksInstance(cloudStack string, akskPath string, configPath string) { -// -// configCommon, _ := pcmCommon.PCMconfig(configPath) -// configAksk, _ := aksk.AkskConfig(cloudStack, akskPath) -// -// credential := common.NewCredential(configAksk.AccessKey, configAksk.SecretKey) -// cpf := profile.NewClientProfile() -// cpf.HttpProfile.Endpoint = "tke.tencentcloudapi.com" -// client, _ := tke.NewClient(credential, configCommon.RegionId, cpf) -// -// request := tke.NewUpdateEKSContainerInstanceRequest() -// request.EksCiId = &configCommon.ContainerGroupIdUpdate -// request.Name = &configCommon.ContainerGroupNameUpdate -// -// response, err := client.UpdateEKSContainerInstance(request) -// if _, ok := err.(*errors.TencentCloudSDKError); ok { -// fmt.Printf("An API error has returned: %s", err) -// return -// } -// if err != nil { -// panic(err) -// } -// fmt.Printf("%s", response.ToJsonString()) -//} -// -//func DeleteEksInstance(cloudStack string, akskPath string, configPath string) { -// -// configCommon, _ := pcmCommon.PCMconfig(configPath) -// configAksk, _ := aksk.AkskConfig(cloudStack, akskPath) -// -// credential := common.NewCredential(configAksk.AccessKey, configAksk.SecretKey) -// cpf := profile.NewClientProfile() -// cpf.HttpProfile.Endpoint = "tke.tencentcloudapi.com" -// client, _ := tke.NewClient(credential, configCommon.RegionId, cpf) -// -// request := tke.NewDeleteEKSContainerInstancesRequest() -// eksCiIds := make([]*string, 1) -// eksCiIds[0] = &configCommon.ContainerGroupIdDelete -// -// request.EksCiIds = eksCiIds -// -// response, err := client.DeleteEKSContainerInstances(request) -// if _, ok := err.(*errors.TencentCloudSDKError); ok { -// fmt.Printf("An API error has returned: %s", err) -// return -// } -// if err != nil { -// panic(err) -// } -// fmt.Printf("%s", response.ToJsonString()) -//} diff --git a/adaptor/vm_adaptor/service/ecser/ecser_test.go b/adaptor/vm_adaptor/service/ecser/ecser_test.go index 482a212..fa51434 100644 --- a/adaptor/vm_adaptor/service/ecser/ecser_test.go +++ b/adaptor/vm_adaptor/service/ecser/ecser_test.go @@ -2,27 +2,25 @@ package ecser import ( "context" + "gitlink.org.cn/JCCE/PCM/common/tenanter" + "gitlink.org.cn/JCCE/PCM/lan_trans/idl/pbecs" + "gitlink.org.cn/JCCE/PCM/lan_trans/idl/pbtenant" "testing" ) func TestEcser_ListDetail(t *testing.T) { region, _ := tenanter.NewRegion(pbtenant.CloudProvider_ali, int32(pbtenant.AliRegionId_ali_cn_hangzhou)) ali, _ := NewEcsClient(pbtenant.CloudProvider_ali, region, aliTenant[0]) - aliFailed, _ := NewEcsClient(pbtenant.CloudProvider_ali, region, tenanter.NewTenantWithAccessKey("empty", "", "")) + aliFailed, _ := NewEcsClient(pbtenant.CloudProvider_ali, region, tenanter.NewTenantWithAccessKey("empty", "", "", "", "")) region, _ = tenanter.NewRegion(pbtenant.CloudProvider_tencent, int32(pbtenant.TencentRegionId_tc_ap_beijing)) tc, _ := NewEcsClient(pbtenant.CloudProvider_tencent, region, tcTenant[0]) - tcFailed, _ := NewEcsClient(pbtenant.CloudProvider_tencent, region, tenanter.NewTenantWithAccessKey("empty", "", "")) + tcFailed, _ := NewEcsClient(pbtenant.CloudProvider_tencent, region, tenanter.NewTenantWithAccessKey("empty", "", "", "", "")) region, _ = tenanter.NewRegion(pbtenant.CloudProvider_huawei, int32(pbtenant.HuaweiRegionId_hw_cn_southwest_2)) hw, _ := NewEcsClient(pbtenant.CloudProvider_huawei, region, hwTenant[0]) // hwFailed, _ := newHuaweiEcsClient(int32(pbtenant.HuaweiRegionId_hw_cn_north_1), tenanter.NewTenantWithAccessKey("empty", "", "", "")) - region, _ = tenanter.NewRegion(pbtenant.CloudProvider_aws, int32(pbtenant.AwsRegionId_aws_us_east_2)) - aws, _ := NewEcsClient(pbtenant.CloudProvider_aws, region, awsTenant[0]) - - // google, _ := NewGoogleEcsClient(tenanter.NewTenantWithAccessKey("", "")) - type args struct { req *pbecs.ListDetailReq } @@ -45,8 +43,6 @@ func TestEcser_ListDetail(t *testing.T) { // {name: "hw wrong cli", fields: hwFailed, args: args{pageNumber: 1, pageSize: 1}, wantErr: true}, {name: "hw right cli", fields: hw, args: args{&pbecs.ListDetailReq{PageNumber: 1, PageSize: 10}}, wantErr: false}, - {name: "aws right cli", fields: aws, args: args{&pbecs.ListDetailReq{PageNumber: 1, PageSize: 10}}, wantErr: false}, - // {name: "right cli", fields: google, args: args{pageNumber: 1, pageSize: 10}, wantErr: false}, } diff --git a/adaptor/vm_adaptor/service/ecser/main_test.go b/adaptor/vm_adaptor/service/ecser/main_test.go index 2477e03..21eb0e8 100644 --- a/adaptor/vm_adaptor/service/ecser/main_test.go +++ b/adaptor/vm_adaptor/service/ecser/main_test.go @@ -25,8 +25,5 @@ func TestMain(m *testing.M) { if hwTenant, err = tenanter.GetTenanters(pbtenant.CloudProvider_huawei); err != nil { panic("get hwTenant failed") } - if awsTenant, err = tenanter.GetTenanters(pbtenant.CloudProvider_aws); err != nil { - panic("get awsTenant failed") - } os.Exit(m.Run()) } diff --git a/common/server/server_pod.go b/common/server/server_pod.go index f180983..d928ab0 100644 --- a/common/server/server_pod.go +++ b/common/server/server_pod.go @@ -11,6 +11,17 @@ import ( "google.golang.org/grpc/status" ) +// GetProdRegions get available region for product +func (s *Server) GetProdRegions(ctx context.Context, req *pbpod.GetPodRegionReq) (*pbpod.GetPodRegionResp, error) { + resp, err := pod.GetPodRegion(ctx, req) + if err != nil { + glog.Errorf("CreatePods error %+v", err) + return nil, status.Errorf(codes.Internal, err.Error()) + } + return resp, nil +} + +// CreatePods create multiple pod on multiple clouds func (s *Server) CreatePods(ctx context.Context, req *pbpod.CreatePodsReq) (*pbpod.CreatePodsResp, error) { resp, err := pod.CreatePods(ctx, req) if err != nil { @@ -20,6 +31,7 @@ func (s *Server) CreatePods(ctx context.Context, req *pbpod.CreatePodsReq) (*pbp return resp, nil } +// CreatePod create pod on one cloud func (s *Server) CreatePod(ctx context.Context, req *pbpod.CreatePodReq) (*pbpod.CreatePodResp, error) { resp, err := pod.CreatePod(ctx, req) if err != nil { @@ -29,6 +41,7 @@ func (s *Server) CreatePod(ctx context.Context, req *pbpod.CreatePodReq) (*pbpod return resp, nil } +// DeletePod delete specified pod func (s *Server) DeletePod(ctx context.Context, req *pbpod.DeletePodReq) (*pbpod.DeletePodResp, error) { resp, err := pod.DeletePod(ctx, req) if err != nil { @@ -38,6 +51,7 @@ func (s *Server) DeletePod(ctx context.Context, req *pbpod.DeletePodReq) (*pbpod return resp, nil } +// UpdatePod update specified pod func (s *Server) UpdatePod(ctx context.Context, req *pbpod.UpdatePodReq) (*pbpod.UpdatePodResp, error) { resp, err := pod.UpdatePod(ctx, req) if err != nil { diff --git a/common/tenanter/main_test.go b/common/tenanter/main_test.go index 2088988..51cda47 100644 --- a/common/tenanter/main_test.go +++ b/common/tenanter/main_test.go @@ -10,7 +10,6 @@ var ( aliTenant []Tenanter tcTenant []Tenanter hwTenant []Tenanter - awsTenant []Tenanter ) func TestMain(m *testing.M) { @@ -28,8 +27,6 @@ func TestMain(m *testing.M) { if hwTenant, err = GetTenanters(pbtenant.CloudProvider_huawei); err != nil { panic("get hwTenant failed") } - if awsTenant, err = GetTenanters(pbtenant.CloudProvider_aws); err != nil { - panic("get awsTenant failed") - } + os.Exit(m.Run()) } diff --git a/common/tenanter/region.go b/common/tenanter/region.go index 9a9f898..ad4148d 100644 --- a/common/tenanter/region.go +++ b/common/tenanter/region.go @@ -35,11 +35,11 @@ func NewRegion(provider pbtenant.CloudProvider, regionId int32) (Region, error) switch provider { case pbtenant.CloudProvider_ali: - r.regionName, err = getAliRegionName(regionId) + r.regionName, err = GetAliRegionName(regionId) case pbtenant.CloudProvider_tencent: - r.regionName, err = getTencentRegionName(regionId) + r.regionName, err = GetTencentRegionName(regionId) case pbtenant.CloudProvider_huawei: - r.regionName, err = getHuaweiRegionName(regionId) + r.regionName, err = GetHuaweiRegionName(regionId) //case pbtenant.CloudProvider_aws: // r.regionName, err = getAwsRegionName(regionId) } @@ -87,8 +87,8 @@ func GetAllRegionIds(provider pbtenant.CloudProvider) (regions []Region) { return } -// prefix ali_ -func getAliRegionName(regionId int32) (string, error) { +// GetAliRegionName prefix ali_ +func GetAliRegionName(regionId int32) (string, error) { name, ok := pbtenant.AliRegionId_name[regionId] if !ok || regionId == int32(pbtenant.AliRegionId_ali_all) { return "", errors.WithMessagef(ErrNoExistAliRegionId, "input region id is %d", regionId) @@ -97,8 +97,18 @@ func getAliRegionName(regionId int32) (string, error) { return region[4:], nil } -// prefix tc_ -func getTencentRegionName(regionId int32) (string, error) { +// GetAliRegionId prefix ali_ +func GetAliRegionId(regionName string) (int32, error) { + regionName = "ali_" + strings.ReplaceAll(regionName, "-", "_") + id, ok := pbtenant.AliRegionId_value[regionName] + if !ok || regionName == "" { + return 0, errors.WithMessagef(ErrNoExistAliRegionId, "input region id is %s", regionName) + } + return id, nil +} + +// GetTencentRegionName prefix tencent +func GetTencentRegionName(regionId int32) (string, error) { name, ok := pbtenant.TencentRegionId_name[regionId] if !ok || regionId == int32(pbtenant.TencentRegionId_tc_all) { return "", errors.WithMessagef(ErrNoExistTencentRegionId, "input region id is %d", regionId) @@ -107,8 +117,8 @@ func getTencentRegionName(regionId int32) (string, error) { return region[3:], nil } -// prefix hw_ -func getHuaweiRegionName(regionId int32) (string, error) { +// GetHuaweiRegionName prefix huawei +func GetHuaweiRegionName(regionId int32) (string, error) { name, ok := pbtenant.HuaweiRegionId_name[regionId] if !ok || regionId == int32(pbtenant.HuaweiRegionId_hw_all) { return "", errors.WithMessagef(ErrNoExistHuaweiRegionId, "input region id is %d", regionId) @@ -117,8 +127,38 @@ func getHuaweiRegionName(regionId int32) (string, error) { return region[3:], nil } -// prefix aws_ -func getAwsRegionName(regionId int32) (string, error) { +// GetHuaweiRegionId prefix huawei +func GetHuaweiRegionId(regionName string) (int32, error) { + regionName = "hw_" + strings.ReplaceAll(regionName, "-", "_") + id, ok := pbtenant.AliRegionId_value[regionName] + if !ok || regionName == "" { + return 0, errors.WithMessagef(ErrNoExistAliRegionId, "input region id is %s", regionName) + } + return id, nil +} + +// GetK8SRegionName prefix ali_ +func GetK8SRegionName(regionId int32) (string, error) { + name, ok := pbtenant.AliRegionId_name[regionId] + if !ok || regionId == int32(pbtenant.AliRegionId_ali_all) { + return "", errors.WithMessagef(ErrNoExistAliRegionId, "input region id is %d", regionId) + } + region := strings.ReplaceAll(name, "_", "-") + return region[4:], nil +} + +// GetK8SRegionId prefix ali_ +func GetK8SRegionId(regionName string) (int32, error) { + regionName = "ali_" + strings.ReplaceAll(regionName, "-", "_") + id, ok := pbtenant.AliRegionId_value[regionName] + if !ok || regionName == "" { + return 0, errors.WithMessagef(ErrNoExistAliRegionId, "input region id is %s", regionName) + } + return id, nil +} + +// GetAwsRegionName prefix aws_ +func GetAwsRegionName(regionId int32) (string, error) { name, ok := pbtenant.AwsRegionId_name[regionId] if !ok || regionId == int32(pbtenant.AwsRegionId_aws_all) { return "", errors.WithMessagef(ErrNoExistAwsRegionId, "input region id is %d", regionId) diff --git a/common/tenanter/region_test.go b/common/tenanter/region_test.go index 5d2bcfa..7314a41 100644 --- a/common/tenanter/region_test.go +++ b/common/tenanter/region_test.go @@ -17,7 +17,6 @@ func TestGetAllRegionIds(t *testing.T) { {name: "ali", args: args{provider: pbtenant.CloudProvider_ali}}, {name: "tencent", args: args{provider: pbtenant.CloudProvider_tencent}}, {name: "huawei", args: args{provider: pbtenant.CloudProvider_huawei}}, - {name: "aws", args: args{provider: pbtenant.CloudProvider_aws}}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { diff --git a/configs/config_template.yaml b/configs/config_template.yaml index 27b43ac..5e14b97 100644 --- a/configs/config_template.yaml +++ b/configs/config_template.yaml @@ -12,3 +12,7 @@ configs: name: "huawei-PCM" accessid: "" accesssecret: "" + - provider: 3 + name: "K8S-PCM" + url: "" + token: "" \ No newline at end of file diff --git a/go.mod b/go.mod index a07670c..b8706ae 100644 --- a/go.mod +++ b/go.mod @@ -9,6 +9,7 @@ require ( github.com/alibabacloud-go/tea v1.1.15 github.com/alibabacloud-go/tea-utils v1.3.9 github.com/aliyun/alibaba-cloud-sdk-go v1.61.1530 + github.com/bitly/go-simplejson v0.5.0 github.com/go-yaml/yaml v2.1.0+incompatible github.com/golang/glog v1.0.0 github.com/grpc-ecosystem/grpc-gateway/v2 v2.10.0 @@ -30,6 +31,7 @@ require ( github.com/alibabacloud-go/endpoint-util v1.1.0 // indirect github.com/alibabacloud-go/openapi-util v0.0.7 // indirect github.com/aliyun/credentials-go v1.1.2 // indirect + github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/gogo/protobuf v0.0.0-20171007142547-342cbe0a0415 // indirect github.com/golang/protobuf v1.5.2 // indirect diff --git a/idl/pbpod/pod.proto b/idl/pbpod/pod.proto index be97908..6abbc4a 100644 --- a/idl/pbpod/pod.proto +++ b/idl/pbpod/pod.proto @@ -41,7 +41,7 @@ message PodInstance { message CreatePodsReq { - // 云类型 + // 创建请求集合 repeated CreatePodReq createPodReq = 1; } @@ -82,12 +82,14 @@ message CreatePodReq { } message CreatePodResp { - // Pod集合 - repeated PodInstance pods = 1; // 查询是否完成,如果为否-false,则可以将下面三个分页参数填入到请求中,继续查询 - bool finished = 2; + bool finished = 1; // 请求id,出现问题后提供给云厂商,排查问题 - string request_id = 3; + string request_id = 2; + // podId + string pod_id = 3; + // podName + string pod_name = 4; } message DeletePodReq { @@ -106,12 +108,14 @@ message DeletePodReq { } message DeletePodResp { - // Pod集合 - repeated PodInstance pods = 1; // 查询是否完成,如果为否-false,则可以将下面三个分页参数填入到请求中,继续查询 - bool finished = 2; + bool finished = 1; // 请求id,出现问题后提供给云厂商,排查问题 - string request_id = 3; + string request_id = 2; + // podId + string pod_id = 3; + // podName + string pod_name = 4; } message UpdatePodReq { @@ -142,12 +146,14 @@ message UpdatePodReq { } message UpdatePodResp { - // Pod集合 - PodInstance pod = 1; // 查询是否完成,如果为否-false,则可以将下面三个分页参数填入到请求中,继续查询 - bool finished = 2; + bool finished = 1; // 请求id,出现问题后提供给云厂商,排查问题 - string request_id = 3; + string request_id = 2; + // podId + string pod_id = 3; + // podName + string pod_name = 4; } message ListPodDetailReq { @@ -187,19 +193,30 @@ message ListPodDetailResp { } message ListPodReq { - // 云名称 + // cloud name pbtenant.CloudProvider provider = 1; // string namespace =2; } message ListPodResp { - // pod集合 + // pod list repeated PodInstance pods = 1; } -message ListPodAllReq{} +message GetPodRegionReq { + // cloud name + pbtenant.CloudProvider provider = 1; +} + +message GetPodRegionResp { + // region list + repeated pbtenant.Region regions = 1; +} + + +message ListPodAllReq{} // Pod类产品接口 // 阿里云 - ECI diff --git a/idl/pbtenant/tenant.proto b/idl/pbtenant/tenant.proto index 237a3f5..2c25af5 100644 --- a/idl/pbtenant/tenant.proto +++ b/idl/pbtenant/tenant.proto @@ -57,6 +57,15 @@ message CloudConfig { string token = 6; } + +message Region { + //id + int32 id = 1; + //name + string name = 2; +} + + // 阿里云区域,需要将对应的 _ 转化为 - enum AliRegionId { ali_all = 0; diff --git a/lan_trans/idl/demo/demo.pb.gw.go b/lan_trans/idl/demo/demo.pb.gw.go index 66ed1dc..5fedd6b 100644 --- a/lan_trans/idl/demo/demo.pb.gw.go +++ b/lan_trans/idl/demo/demo.pb.gw.go @@ -77,12 +77,13 @@ func RegisterDemoServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/demo.DemoService/Echo") + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/demo.DemoService/Echo", runtime.WithHTTPPathPattern("/apis/demo")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_DemoService_Echo_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_DemoService_Echo_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -139,12 +140,13 @@ func RegisterDemoServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/demo.DemoService/Echo") + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/demo.DemoService/Echo", runtime.WithHTTPPathPattern("/apis/demo")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_DemoService_Echo_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_DemoService_Echo_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) diff --git a/lan_trans/idl/pbecs/ecs.pb.gw.go b/lan_trans/idl/pbecs/ecs.pb.gw.go index 20ef7d4..42f8e1d 100644 --- a/lan_trans/idl/pbecs/ecs.pb.gw.go +++ b/lan_trans/idl/pbecs/ecs.pb.gw.go @@ -269,12 +269,13 @@ func RegisterEcsServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/pbecs.EcsService/CreateMultipleEcs") + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/pbecs.EcsService/CreateMultipleEcs", runtime.WithHTTPPathPattern("/apis/ecs/createMultiple")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_EcsService_CreateMultipleEcs_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_EcsService_CreateMultipleEcs_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -292,12 +293,13 @@ func RegisterEcsServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/pbecs.EcsService/CreateEcs") + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/pbecs.EcsService/CreateEcs", runtime.WithHTTPPathPattern("/apis/ecs/create")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_EcsService_CreateEcs_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_EcsService_CreateEcs_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -315,12 +317,13 @@ func RegisterEcsServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/pbecs.EcsService/DeleteEcs") + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/pbecs.EcsService/DeleteEcs", runtime.WithHTTPPathPattern("/apis/ecs/delete")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_EcsService_DeleteEcs_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_EcsService_DeleteEcs_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -338,12 +341,13 @@ func RegisterEcsServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/pbecs.EcsService/UpdateEcs") + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/pbecs.EcsService/UpdateEcs", runtime.WithHTTPPathPattern("/apis/ecs/update")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_EcsService_UpdateEcs_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_EcsService_UpdateEcs_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -361,12 +365,13 @@ func RegisterEcsServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/pbecs.EcsService/ListEcsDetail") + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/pbecs.EcsService/ListEcsDetail", runtime.WithHTTPPathPattern("/apis/ecs/detail")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_EcsService_ListEcsDetail_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_EcsService_ListEcsDetail_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -384,12 +389,13 @@ func RegisterEcsServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/pbecs.EcsService/ListEcs") + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/pbecs.EcsService/ListEcs", runtime.WithHTTPPathPattern("/apis/ecs")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_EcsService_ListEcs_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_EcsService_ListEcs_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -407,12 +413,13 @@ func RegisterEcsServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/pbecs.EcsService/ListEcsAll") + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/pbecs.EcsService/ListEcsAll", runtime.WithHTTPPathPattern("/apis/ecs/all")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_EcsService_ListEcsAll_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_EcsService_ListEcsAll_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -469,12 +476,13 @@ func RegisterEcsServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/pbecs.EcsService/CreateMultipleEcs") + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/pbecs.EcsService/CreateMultipleEcs", runtime.WithHTTPPathPattern("/apis/ecs/createMultiple")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_EcsService_CreateMultipleEcs_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_EcsService_CreateMultipleEcs_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -489,12 +497,13 @@ func RegisterEcsServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/pbecs.EcsService/CreateEcs") + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/pbecs.EcsService/CreateEcs", runtime.WithHTTPPathPattern("/apis/ecs/create")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_EcsService_CreateEcs_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_EcsService_CreateEcs_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -509,12 +518,13 @@ func RegisterEcsServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/pbecs.EcsService/DeleteEcs") + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/pbecs.EcsService/DeleteEcs", runtime.WithHTTPPathPattern("/apis/ecs/delete")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_EcsService_DeleteEcs_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_EcsService_DeleteEcs_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -529,12 +539,13 @@ func RegisterEcsServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/pbecs.EcsService/UpdateEcs") + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/pbecs.EcsService/UpdateEcs", runtime.WithHTTPPathPattern("/apis/ecs/update")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_EcsService_UpdateEcs_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_EcsService_UpdateEcs_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -549,12 +560,13 @@ func RegisterEcsServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/pbecs.EcsService/ListEcsDetail") + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/pbecs.EcsService/ListEcsDetail", runtime.WithHTTPPathPattern("/apis/ecs/detail")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_EcsService_ListEcsDetail_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_EcsService_ListEcsDetail_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -569,12 +581,13 @@ func RegisterEcsServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/pbecs.EcsService/ListEcs") + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/pbecs.EcsService/ListEcs", runtime.WithHTTPPathPattern("/apis/ecs")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_EcsService_ListEcs_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_EcsService_ListEcs_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -589,12 +602,13 @@ func RegisterEcsServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/pbecs.EcsService/ListEcsAll") + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/pbecs.EcsService/ListEcsAll", runtime.WithHTTPPathPattern("/apis/ecs/all")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_EcsService_ListEcsAll_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_EcsService_ListEcsAll_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) diff --git a/lan_trans/idl/pbpod/pod.pb.go b/lan_trans/idl/pbpod/pod.pb.go index 06db2b4..d8bd282 100644 --- a/lan_trans/idl/pbpod/pod.pb.go +++ b/lan_trans/idl/pbpod/pod.pb.go @@ -1113,7 +1113,7 @@ type ListPodReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 云名称 + // cloud name Provider pbtenant.CloudProvider `protobuf:"varint,1,opt,name=provider,proto3,enum=pbtenant.CloudProvider" json:"provider,omitempty"` // Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` @@ -1170,7 +1170,7 @@ type ListPodResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // pod集合 + // pod list Pods []*PodInstance `protobuf:"bytes,1,rep,name=pods,proto3" json:"pods,omitempty"` } @@ -1213,6 +1213,102 @@ func (x *ListPodResp) GetPods() []*PodInstance { return nil } +type GetPodRegionReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // cloud name + Provider pbtenant.CloudProvider `protobuf:"varint,1,opt,name=provider,proto3,enum=pbtenant.CloudProvider" json:"provider,omitempty"` +} + +func (x *GetPodRegionReq) Reset() { + *x = GetPodRegionReq{} + if protoimpl.UnsafeEnabled { + mi := &file_idl_pbpod_pod_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetPodRegionReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetPodRegionReq) ProtoMessage() {} + +func (x *GetPodRegionReq) ProtoReflect() protoreflect.Message { + mi := &file_idl_pbpod_pod_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetPodRegionReq.ProtoReflect.Descriptor instead. +func (*GetPodRegionReq) Descriptor() ([]byte, []int) { + return file_idl_pbpod_pod_proto_rawDescGZIP(), []int{13} +} + +func (x *GetPodRegionReq) GetProvider() pbtenant.CloudProvider { + if x != nil { + return x.Provider + } + return pbtenant.CloudProvider(0) +} + +type GetPodRegionResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // region list + Regions []*pbtenant.Region `protobuf:"bytes,1,rep,name=regions,proto3" json:"regions,omitempty"` +} + +func (x *GetPodRegionResp) Reset() { + *x = GetPodRegionResp{} + if protoimpl.UnsafeEnabled { + mi := &file_idl_pbpod_pod_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetPodRegionResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetPodRegionResp) ProtoMessage() {} + +func (x *GetPodRegionResp) ProtoReflect() protoreflect.Message { + mi := &file_idl_pbpod_pod_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetPodRegionResp.ProtoReflect.Descriptor instead. +func (*GetPodRegionResp) Descriptor() ([]byte, []int) { + return file_idl_pbpod_pod_proto_rawDescGZIP(), []int{14} +} + +func (x *GetPodRegionResp) GetRegions() []*pbtenant.Region { + if x != nil { + return x.Regions + } + return nil +} + type ListPodAllReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1222,7 +1318,7 @@ type ListPodAllReq struct { func (x *ListPodAllReq) Reset() { *x = ListPodAllReq{} if protoimpl.UnsafeEnabled { - mi := &file_idl_pbpod_pod_proto_msgTypes[13] + mi := &file_idl_pbpod_pod_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1235,7 +1331,7 @@ func (x *ListPodAllReq) String() string { func (*ListPodAllReq) ProtoMessage() {} func (x *ListPodAllReq) ProtoReflect() protoreflect.Message { - mi := &file_idl_pbpod_pod_proto_msgTypes[13] + mi := &file_idl_pbpod_pod_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1248,7 +1344,7 @@ func (x *ListPodAllReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ListPodAllReq.ProtoReflect.Descriptor instead. func (*ListPodAllReq) Descriptor() ([]byte, []int) { - return file_idl_pbpod_pod_proto_rawDescGZIP(), []int{13} + return file_idl_pbpod_pod_proto_rawDescGZIP(), []int{15} } var File_idl_pbpod_pod_proto protoreflect.FileDescriptor @@ -1431,49 +1527,58 @@ var file_idl_pbpod_pod_proto_rawDesc = []byte{ 0x65, 0x22, 0x35, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x26, 0x0a, 0x04, 0x70, 0x6f, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x70, 0x6f, 0x64, 0x2e, 0x50, 0x6f, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x52, 0x04, 0x70, 0x6f, 0x64, 0x73, 0x22, 0x0f, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, - 0x50, 0x6f, 0x64, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x32, 0xda, 0x04, 0x0a, 0x0a, 0x50, 0x6f, - 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5b, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x50, 0x6f, 0x64, 0x73, 0x12, 0x14, 0x2e, 0x70, 0x62, 0x70, 0x6f, 0x64, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x64, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x70, - 0x62, 0x70, 0x6f, 0x64, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x64, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x61, 0x70, - 0x69, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x3a, 0x01, 0x2a, 0x12, 0x53, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, - 0x6f, 0x64, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x70, 0x6f, 0x64, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x50, 0x6f, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x70, 0x6f, 0x64, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x1b, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x70, 0x6f, 0x64, - 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x53, 0x0a, 0x09, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x64, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x70, 0x6f, 0x64, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x70, - 0x62, 0x70, 0x6f, 0x64, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22, 0x10, 0x2f, 0x61, 0x70, 0x69, - 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, - 0x53, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x64, 0x12, 0x13, 0x2e, 0x70, - 0x62, 0x70, 0x6f, 0x64, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x64, 0x52, 0x65, - 0x71, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x70, 0x6f, 0x64, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x50, 0x6f, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x1a, - 0x10, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x5c, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x64, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x70, 0x6f, 0x64, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x50, 0x6f, 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x18, - 0x2e, 0x70, 0x62, 0x70, 0x6f, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x64, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, - 0x12, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x2f, 0x64, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x12, 0x43, 0x0a, 0x07, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x64, 0x12, 0x11, 0x2e, - 0x70, 0x62, 0x70, 0x6f, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x64, 0x52, 0x65, 0x71, - 0x1a, 0x12, 0x2e, 0x70, 0x62, 0x70, 0x6f, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x11, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0b, 0x12, 0x09, 0x2f, 0x61, - 0x70, 0x69, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x12, 0x4d, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x50, - 0x6f, 0x64, 0x41, 0x6c, 0x6c, 0x12, 0x14, 0x2e, 0x70, 0x62, 0x70, 0x6f, 0x64, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x50, 0x6f, 0x64, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x70, 0x62, - 0x70, 0x6f, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x70, - 0x6f, 0x64, 0x2f, 0x61, 0x6c, 0x6c, 0x42, 0x2d, 0x5a, 0x2b, 0x67, 0x69, 0x74, 0x6c, 0x69, 0x6e, - 0x6b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x6e, 0x2f, 0x4a, 0x43, 0x43, 0x45, 0x2f, 0x50, 0x43, - 0x4d, 0x2f, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x2f, 0x69, 0x64, 0x6c, 0x2f, - 0x70, 0x62, 0x70, 0x6f, 0x64, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x63, 0x65, 0x52, 0x04, 0x70, 0x6f, 0x64, 0x73, 0x22, 0x46, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x50, + 0x6f, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x33, 0x0a, 0x08, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, + 0x70, 0x62, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x22, 0x3e, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x62, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, + 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, + 0x22, 0x0f, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x64, 0x41, 0x6c, 0x6c, 0x52, 0x65, + 0x71, 0x32, 0xda, 0x04, 0x0a, 0x0a, 0x50, 0x6f, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x5b, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x64, 0x73, 0x12, 0x14, + 0x2e, 0x70, 0x62, 0x70, 0x6f, 0x64, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x64, + 0x73, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x70, 0x62, 0x70, 0x6f, 0x64, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x50, 0x6f, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x20, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x2f, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x3a, 0x01, 0x2a, 0x12, 0x53, 0x0a, + 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x64, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x70, + 0x6f, 0x64, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x64, 0x52, 0x65, 0x71, 0x1a, + 0x14, 0x2e, 0x70, 0x62, 0x70, 0x6f, 0x64, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22, 0x10, 0x2f, + 0x61, 0x70, 0x69, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x3a, + 0x01, 0x2a, 0x12, 0x53, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x64, 0x12, + 0x13, 0x2e, 0x70, 0x62, 0x70, 0x6f, 0x64, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, + 0x64, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x70, 0x6f, 0x64, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x50, 0x6f, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x15, 0x22, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x2f, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x53, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x50, 0x6f, 0x64, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x70, 0x6f, 0x64, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x50, 0x6f, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x70, 0x6f, + 0x64, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x1a, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x70, + 0x6f, 0x64, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x5c, 0x0a, 0x0d, + 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x17, 0x2e, + 0x70, 0x62, 0x70, 0x6f, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x64, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x70, 0x62, 0x70, 0x6f, 0x64, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x50, 0x6f, 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, + 0x70, 0x6f, 0x64, 0x2f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x43, 0x0a, 0x07, 0x4c, 0x69, + 0x73, 0x74, 0x50, 0x6f, 0x64, 0x12, 0x11, 0x2e, 0x70, 0x62, 0x70, 0x6f, 0x64, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x50, 0x6f, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x70, 0x62, 0x70, 0x6f, 0x64, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x11, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x0b, 0x12, 0x09, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x12, + 0x4d, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x64, 0x41, 0x6c, 0x6c, 0x12, 0x14, 0x2e, + 0x70, 0x62, 0x70, 0x6f, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x64, 0x41, 0x6c, 0x6c, + 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x70, 0x62, 0x70, 0x6f, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x50, 0x6f, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, + 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x2f, 0x61, 0x6c, 0x6c, 0x42, 0x2d, + 0x5a, 0x2b, 0x67, 0x69, 0x74, 0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x6e, + 0x2f, 0x4a, 0x43, 0x43, 0x45, 0x2f, 0x50, 0x43, 0x4d, 0x2f, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x2f, 0x69, 0x64, 0x6c, 0x2f, 0x70, 0x62, 0x70, 0x6f, 0x64, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1488,7 +1593,7 @@ func file_idl_pbpod_pod_proto_rawDescGZIP() []byte { return file_idl_pbpod_pod_proto_rawDescData } -var file_idl_pbpod_pod_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_idl_pbpod_pod_proto_msgTypes = make([]protoimpl.MessageInfo, 16) var file_idl_pbpod_pod_proto_goTypes = []interface{}{ (*PodInstance)(nil), // 0: pbpod.PodInstance (*CreatePodsReq)(nil), // 1: pbpod.CreatePodsReq @@ -1503,41 +1608,46 @@ var file_idl_pbpod_pod_proto_goTypes = []interface{}{ (*ListPodDetailResp)(nil), // 10: pbpod.ListPodDetailResp (*ListPodReq)(nil), // 11: pbpod.ListPodReq (*ListPodResp)(nil), // 12: pbpod.ListPodResp - (*ListPodAllReq)(nil), // 13: pbpod.ListPodAllReq - (pbtenant.CloudProvider)(0), // 14: pbtenant.CloudProvider + (*GetPodRegionReq)(nil), // 13: pbpod.GetPodRegionReq + (*GetPodRegionResp)(nil), // 14: pbpod.GetPodRegionResp + (*ListPodAllReq)(nil), // 15: pbpod.ListPodAllReq + (pbtenant.CloudProvider)(0), // 16: pbtenant.CloudProvider + (*pbtenant.Region)(nil), // 17: pbtenant.Region } var file_idl_pbpod_pod_proto_depIdxs = []int32{ - 14, // 0: pbpod.PodInstance.provider:type_name -> pbtenant.CloudProvider + 16, // 0: pbpod.PodInstance.provider:type_name -> pbtenant.CloudProvider 3, // 1: pbpod.CreatePodsReq.createPodReq:type_name -> pbpod.CreatePodReq - 14, // 2: pbpod.CreatePodReq.provider:type_name -> pbtenant.CloudProvider + 16, // 2: pbpod.CreatePodReq.provider:type_name -> pbtenant.CloudProvider 0, // 3: pbpod.CreatePodResp.pods:type_name -> pbpod.PodInstance - 14, // 4: pbpod.DeletePodReq.provider:type_name -> pbtenant.CloudProvider + 16, // 4: pbpod.DeletePodReq.provider:type_name -> pbtenant.CloudProvider 0, // 5: pbpod.DeletePodResp.pods:type_name -> pbpod.PodInstance - 14, // 6: pbpod.UpdatePodReq.provider:type_name -> pbtenant.CloudProvider + 16, // 6: pbpod.UpdatePodReq.provider:type_name -> pbtenant.CloudProvider 0, // 7: pbpod.UpdatePodResp.pod:type_name -> pbpod.PodInstance - 14, // 8: pbpod.ListPodDetailReq.provider:type_name -> pbtenant.CloudProvider + 16, // 8: pbpod.ListPodDetailReq.provider:type_name -> pbtenant.CloudProvider 0, // 9: pbpod.ListPodDetailResp.pods:type_name -> pbpod.PodInstance - 14, // 10: pbpod.ListPodReq.provider:type_name -> pbtenant.CloudProvider + 16, // 10: pbpod.ListPodReq.provider:type_name -> pbtenant.CloudProvider 0, // 11: pbpod.ListPodResp.pods:type_name -> pbpod.PodInstance - 1, // 12: pbpod.PodService.CreatePods:input_type -> pbpod.CreatePodsReq - 3, // 13: pbpod.PodService.CreatePod:input_type -> pbpod.CreatePodReq - 5, // 14: pbpod.PodService.DeletePod:input_type -> pbpod.DeletePodReq - 7, // 15: pbpod.PodService.UpdatePod:input_type -> pbpod.UpdatePodReq - 9, // 16: pbpod.PodService.ListPodDetail:input_type -> pbpod.ListPodDetailReq - 11, // 17: pbpod.PodService.ListPod:input_type -> pbpod.ListPodReq - 13, // 18: pbpod.PodService.ListPodAll:input_type -> pbpod.ListPodAllReq - 2, // 19: pbpod.PodService.CreatePods:output_type -> pbpod.CreatePodsResp - 4, // 20: pbpod.PodService.CreatePod:output_type -> pbpod.CreatePodResp - 6, // 21: pbpod.PodService.DeletePod:output_type -> pbpod.DeletePodResp - 8, // 22: pbpod.PodService.UpdatePod:output_type -> pbpod.UpdatePodResp - 10, // 23: pbpod.PodService.ListPodDetail:output_type -> pbpod.ListPodDetailResp - 12, // 24: pbpod.PodService.ListPod:output_type -> pbpod.ListPodResp - 12, // 25: pbpod.PodService.ListPodAll:output_type -> pbpod.ListPodResp - 19, // [19:26] is the sub-list for method output_type - 12, // [12:19] is the sub-list for method input_type - 12, // [12:12] is the sub-list for extension type_name - 12, // [12:12] is the sub-list for extension extendee - 0, // [0:12] is the sub-list for field type_name + 16, // 12: pbpod.GetPodRegionReq.provider:type_name -> pbtenant.CloudProvider + 17, // 13: pbpod.GetPodRegionResp.regions:type_name -> pbtenant.Region + 1, // 14: pbpod.PodService.CreatePods:input_type -> pbpod.CreatePodsReq + 3, // 15: pbpod.PodService.CreatePod:input_type -> pbpod.CreatePodReq + 5, // 16: pbpod.PodService.DeletePod:input_type -> pbpod.DeletePodReq + 7, // 17: pbpod.PodService.UpdatePod:input_type -> pbpod.UpdatePodReq + 9, // 18: pbpod.PodService.ListPodDetail:input_type -> pbpod.ListPodDetailReq + 11, // 19: pbpod.PodService.ListPod:input_type -> pbpod.ListPodReq + 15, // 20: pbpod.PodService.ListPodAll:input_type -> pbpod.ListPodAllReq + 2, // 21: pbpod.PodService.CreatePods:output_type -> pbpod.CreatePodsResp + 4, // 22: pbpod.PodService.CreatePod:output_type -> pbpod.CreatePodResp + 6, // 23: pbpod.PodService.DeletePod:output_type -> pbpod.DeletePodResp + 8, // 24: pbpod.PodService.UpdatePod:output_type -> pbpod.UpdatePodResp + 10, // 25: pbpod.PodService.ListPodDetail:output_type -> pbpod.ListPodDetailResp + 12, // 26: pbpod.PodService.ListPod:output_type -> pbpod.ListPodResp + 12, // 27: pbpod.PodService.ListPodAll:output_type -> pbpod.ListPodResp + 21, // [21:28] is the sub-list for method output_type + 14, // [14:21] is the sub-list for method input_type + 14, // [14:14] is the sub-list for extension type_name + 14, // [14:14] is the sub-list for extension extendee + 0, // [0:14] is the sub-list for field type_name } func init() { file_idl_pbpod_pod_proto_init() } @@ -1703,6 +1813,30 @@ func file_idl_pbpod_pod_proto_init() { } } file_idl_pbpod_pod_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetPodRegionReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_idl_pbpod_pod_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetPodRegionResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_idl_pbpod_pod_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListPodAllReq); i { case 0: return &v.state @@ -1721,7 +1855,7 @@ func file_idl_pbpod_pod_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_idl_pbpod_pod_proto_rawDesc, NumEnums: 0, - NumMessages: 14, + NumMessages: 16, NumExtensions: 0, NumServices: 1, }, diff --git a/lan_trans/idl/pbpod/pod.pb.gw.go b/lan_trans/idl/pbpod/pod.pb.gw.go index 8a65b39..8aed6f3 100644 --- a/lan_trans/idl/pbpod/pod.pb.gw.go +++ b/lan_trans/idl/pbpod/pod.pb.gw.go @@ -269,12 +269,13 @@ func RegisterPodServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/pbpod.PodService/CreatePods") + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/pbpod.PodService/CreatePods", runtime.WithHTTPPathPattern("/apis/pod/createMulti")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_PodService_CreatePods_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_PodService_CreatePods_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -292,12 +293,13 @@ func RegisterPodServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/pbpod.PodService/CreatePod") + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/pbpod.PodService/CreatePod", runtime.WithHTTPPathPattern("/apis/pod/create")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_PodService_CreatePod_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_PodService_CreatePod_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -315,12 +317,13 @@ func RegisterPodServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/pbpod.PodService/DeletePod") + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/pbpod.PodService/DeletePod", runtime.WithHTTPPathPattern("/apis/pod/delete")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_PodService_DeletePod_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_PodService_DeletePod_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -338,12 +341,13 @@ func RegisterPodServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/pbpod.PodService/UpdatePod") + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/pbpod.PodService/UpdatePod", runtime.WithHTTPPathPattern("/apis/pod/update")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_PodService_UpdatePod_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_PodService_UpdatePod_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -361,12 +365,13 @@ func RegisterPodServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/pbpod.PodService/ListPodDetail") + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/pbpod.PodService/ListPodDetail", runtime.WithHTTPPathPattern("/apis/pod/detail")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_PodService_ListPodDetail_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_PodService_ListPodDetail_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -384,12 +389,13 @@ func RegisterPodServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/pbpod.PodService/ListPod") + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/pbpod.PodService/ListPod", runtime.WithHTTPPathPattern("/apis/pod")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_PodService_ListPod_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_PodService_ListPod_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -407,12 +413,13 @@ func RegisterPodServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/pbpod.PodService/ListPodAll") + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/pbpod.PodService/ListPodAll", runtime.WithHTTPPathPattern("/apis/pod/all")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_PodService_ListPodAll_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_PodService_ListPodAll_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -469,12 +476,13 @@ func RegisterPodServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/pbpod.PodService/CreatePods") + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/pbpod.PodService/CreatePods", runtime.WithHTTPPathPattern("/apis/pod/createMulti")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_PodService_CreatePods_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_PodService_CreatePods_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -489,12 +497,13 @@ func RegisterPodServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/pbpod.PodService/CreatePod") + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/pbpod.PodService/CreatePod", runtime.WithHTTPPathPattern("/apis/pod/create")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_PodService_CreatePod_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_PodService_CreatePod_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -509,12 +518,13 @@ func RegisterPodServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/pbpod.PodService/DeletePod") + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/pbpod.PodService/DeletePod", runtime.WithHTTPPathPattern("/apis/pod/delete")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_PodService_DeletePod_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_PodService_DeletePod_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -529,12 +539,13 @@ func RegisterPodServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/pbpod.PodService/UpdatePod") + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/pbpod.PodService/UpdatePod", runtime.WithHTTPPathPattern("/apis/pod/update")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_PodService_UpdatePod_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_PodService_UpdatePod_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -549,12 +560,13 @@ func RegisterPodServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/pbpod.PodService/ListPodDetail") + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/pbpod.PodService/ListPodDetail", runtime.WithHTTPPathPattern("/apis/pod/detail")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_PodService_ListPodDetail_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_PodService_ListPodDetail_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -569,12 +581,13 @@ func RegisterPodServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/pbpod.PodService/ListPod") + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/pbpod.PodService/ListPod", runtime.WithHTTPPathPattern("/apis/pod")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_PodService_ListPod_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_PodService_ListPod_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -589,12 +602,13 @@ func RegisterPodServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/pbpod.PodService/ListPodAll") + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/pbpod.PodService/ListPodAll", runtime.WithHTTPPathPattern("/apis/pod/all")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_PodService_ListPodAll_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_PodService_ListPodAll_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) diff --git a/lan_trans/idl/pbtenant/tenant.pb.go b/lan_trans/idl/pbtenant/tenant.pb.go index 0b05b84..de387a5 100644 --- a/lan_trans/idl/pbtenant/tenant.pb.go +++ b/lan_trans/idl/pbtenant/tenant.pb.go @@ -735,6 +735,63 @@ func (x *CloudConfig) GetToken() string { return "" } +type Region struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + //id + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + //name + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *Region) Reset() { + *x = Region{} + if protoimpl.UnsafeEnabled { + mi := &file_idl_pbtenant_tenant_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Region) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Region) ProtoMessage() {} + +func (x *Region) ProtoReflect() protoreflect.Message { + mi := &file_idl_pbtenant_tenant_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Region.ProtoReflect.Descriptor instead. +func (*Region) Descriptor() ([]byte, []int) { + return file_idl_pbtenant_tenant_proto_rawDescGZIP(), []int{2} +} + +func (x *Region) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *Region) GetName() string { + if x != nil { + return x.Name + } + return "" +} + var File_idl_pbtenant_tenant_proto protoreflect.FileDescriptor var file_idl_pbtenant_tenant_proto_rawDesc = []byte{ @@ -761,136 +818,139 @@ var file_idl_pbtenant_tenant_proto_rawDesc = []byte{ 0x09, 0x52, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2a, 0x49, 0x0a, 0x0d, 0x43, 0x6c, 0x6f, 0x75, 0x64, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x07, 0x0a, 0x03, 0x61, 0x6c, 0x69, 0x10, - 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x0a, - 0x0a, 0x06, 0x68, 0x75, 0x61, 0x77, 0x65, 0x69, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x6b, 0x38, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x68, 0x61, 0x72, 0x76, 0x65, 0x73, 0x74, 0x65, 0x72, - 0x10, 0x04, 0x2a, 0x77, 0x0a, 0x0c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, 0x6f, 0x64, 0x75, - 0x63, 0x74, 0x12, 0x0f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x61, 0x6c, - 0x6c, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x65, - 0x63, 0x73, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, - 0x72, 0x64, 0x73, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, - 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, - 0x64, 0x75, 0x63, 0x74, 0x5f, 0x6f, 0x73, 0x73, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x70, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x70, 0x6f, 0x64, 0x10, 0x05, 0x2a, 0xf3, 0x03, 0x0a, 0x0b, - 0x41, 0x6c, 0x69, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x0b, 0x0a, 0x07, 0x61, - 0x6c, 0x69, 0x5f, 0x61, 0x6c, 0x6c, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x61, 0x6c, 0x69, 0x5f, - 0x63, 0x6e, 0x5f, 0x71, 0x69, 0x6e, 0x67, 0x64, 0x61, 0x6f, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, - 0x61, 0x6c, 0x69, 0x5f, 0x63, 0x6e, 0x5f, 0x62, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x10, 0x02, - 0x12, 0x16, 0x0a, 0x12, 0x61, 0x6c, 0x69, 0x5f, 0x63, 0x6e, 0x5f, 0x7a, 0x68, 0x61, 0x6e, 0x67, - 0x6a, 0x69, 0x61, 0x6b, 0x6f, 0x75, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x61, 0x6c, 0x69, 0x5f, - 0x63, 0x6e, 0x5f, 0x68, 0x75, 0x68, 0x65, 0x68, 0x61, 0x6f, 0x74, 0x65, 0x10, 0x04, 0x12, 0x15, - 0x0a, 0x11, 0x61, 0x6c, 0x69, 0x5f, 0x63, 0x6e, 0x5f, 0x77, 0x75, 0x6c, 0x61, 0x6e, 0x63, 0x68, - 0x61, 0x62, 0x75, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x61, 0x6c, 0x69, 0x5f, 0x63, 0x6e, 0x5f, - 0x68, 0x61, 0x6e, 0x67, 0x7a, 0x68, 0x6f, 0x75, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x61, 0x6c, - 0x69, 0x5f, 0x63, 0x6e, 0x5f, 0x73, 0x68, 0x61, 0x6e, 0x67, 0x68, 0x61, 0x69, 0x10, 0x07, 0x12, - 0x13, 0x0a, 0x0f, 0x61, 0x6c, 0x69, 0x5f, 0x63, 0x6e, 0x5f, 0x73, 0x68, 0x65, 0x6e, 0x7a, 0x68, - 0x65, 0x6e, 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x6c, 0x69, 0x5f, 0x63, 0x6e, 0x5f, 0x68, - 0x65, 0x79, 0x75, 0x61, 0x6e, 0x10, 0x09, 0x12, 0x14, 0x0a, 0x10, 0x61, 0x6c, 0x69, 0x5f, 0x63, - 0x6e, 0x5f, 0x67, 0x75, 0x61, 0x6e, 0x67, 0x7a, 0x68, 0x6f, 0x75, 0x10, 0x0a, 0x12, 0x12, 0x0a, - 0x0e, 0x61, 0x6c, 0x69, 0x5f, 0x63, 0x6e, 0x5f, 0x63, 0x68, 0x65, 0x6e, 0x67, 0x64, 0x75, 0x10, - 0x0b, 0x12, 0x13, 0x0a, 0x0f, 0x61, 0x6c, 0x69, 0x5f, 0x63, 0x6e, 0x5f, 0x68, 0x6f, 0x6e, 0x67, - 0x6b, 0x6f, 0x6e, 0x67, 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, 0x61, 0x6c, 0x69, 0x5f, 0x61, 0x70, - 0x5f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x31, 0x10, 0x0d, 0x12, 0x16, - 0x0a, 0x12, 0x61, 0x6c, 0x69, 0x5f, 0x61, 0x70, 0x5f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x65, 0x61, - 0x73, 0x74, 0x5f, 0x32, 0x10, 0x0e, 0x12, 0x16, 0x0a, 0x12, 0x61, 0x6c, 0x69, 0x5f, 0x61, 0x70, - 0x5f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x33, 0x10, 0x0f, 0x12, 0x16, - 0x0a, 0x12, 0x61, 0x6c, 0x69, 0x5f, 0x61, 0x70, 0x5f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x65, 0x61, - 0x73, 0x74, 0x5f, 0x35, 0x10, 0x10, 0x12, 0x12, 0x0a, 0x0e, 0x61, 0x6c, 0x69, 0x5f, 0x61, 0x70, - 0x5f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x5f, 0x31, 0x10, 0x11, 0x12, 0x16, 0x0a, 0x12, 0x61, 0x6c, - 0x69, 0x5f, 0x61, 0x70, 0x5f, 0x6e, 0x6f, 0x72, 0x74, 0x68, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x31, - 0x10, 0x12, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x6c, 0x69, 0x5f, 0x75, 0x73, 0x5f, 0x77, 0x65, 0x73, - 0x74, 0x5f, 0x31, 0x10, 0x13, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x6c, 0x69, 0x5f, 0x75, 0x73, 0x5f, - 0x65, 0x61, 0x73, 0x74, 0x5f, 0x31, 0x10, 0x14, 0x12, 0x14, 0x0a, 0x10, 0x61, 0x6c, 0x69, 0x5f, - 0x65, 0x75, 0x5f, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x5f, 0x31, 0x10, 0x15, 0x12, 0x11, - 0x0a, 0x0d, 0x61, 0x6c, 0x69, 0x5f, 0x65, 0x75, 0x5f, 0x77, 0x65, 0x73, 0x74, 0x5f, 0x31, 0x10, - 0x16, 0x2a, 0xc1, 0x03, 0x0a, 0x0f, 0x54, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x67, - 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x63, 0x5f, 0x61, 0x6c, 0x6c, 0x10, - 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x74, 0x63, 0x5f, 0x61, 0x70, 0x5f, 0x62, 0x61, 0x6e, 0x67, 0x6b, - 0x6f, 0x6b, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x74, 0x63, 0x5f, 0x61, 0x70, 0x5f, 0x62, 0x65, - 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x74, 0x63, 0x5f, 0x61, 0x70, - 0x5f, 0x63, 0x68, 0x65, 0x6e, 0x67, 0x64, 0x75, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x74, 0x63, - 0x5f, 0x61, 0x70, 0x5f, 0x63, 0x68, 0x6f, 0x6e, 0x67, 0x71, 0x69, 0x6e, 0x67, 0x10, 0x04, 0x12, - 0x13, 0x0a, 0x0f, 0x74, 0x63, 0x5f, 0x61, 0x70, 0x5f, 0x67, 0x75, 0x61, 0x6e, 0x67, 0x7a, 0x68, - 0x6f, 0x75, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x74, 0x63, 0x5f, 0x61, 0x70, 0x5f, 0x68, 0x6f, - 0x6e, 0x67, 0x6b, 0x6f, 0x6e, 0x67, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x74, 0x63, 0x5f, 0x61, - 0x70, 0x5f, 0x6a, 0x61, 0x6b, 0x61, 0x72, 0x74, 0x61, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x74, - 0x63, 0x5f, 0x61, 0x70, 0x5f, 0x6d, 0x75, 0x6d, 0x62, 0x61, 0x69, 0x10, 0x08, 0x12, 0x11, 0x0a, - 0x0d, 0x74, 0x63, 0x5f, 0x61, 0x70, 0x5f, 0x6e, 0x61, 0x6e, 0x6a, 0x69, 0x6e, 0x67, 0x10, 0x09, - 0x12, 0x0f, 0x0a, 0x0b, 0x74, 0x63, 0x5f, 0x61, 0x70, 0x5f, 0x73, 0x65, 0x6f, 0x75, 0x6c, 0x10, - 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x74, 0x63, 0x5f, 0x61, 0x70, 0x5f, 0x73, 0x68, 0x61, 0x6e, 0x67, - 0x68, 0x61, 0x69, 0x10, 0x0b, 0x12, 0x16, 0x0a, 0x12, 0x74, 0x63, 0x5f, 0x61, 0x70, 0x5f, 0x73, - 0x68, 0x61, 0x6e, 0x67, 0x68, 0x61, 0x69, 0x5f, 0x66, 0x73, 0x69, 0x10, 0x0c, 0x12, 0x16, 0x0a, - 0x12, 0x74, 0x63, 0x5f, 0x61, 0x70, 0x5f, 0x73, 0x68, 0x65, 0x6e, 0x7a, 0x68, 0x65, 0x6e, 0x5f, - 0x66, 0x73, 0x69, 0x10, 0x0d, 0x12, 0x13, 0x0a, 0x0f, 0x74, 0x63, 0x5f, 0x61, 0x70, 0x5f, 0x73, - 0x69, 0x6e, 0x67, 0x61, 0x70, 0x6f, 0x72, 0x65, 0x10, 0x0e, 0x12, 0x0f, 0x0a, 0x0b, 0x74, 0x63, - 0x5f, 0x61, 0x70, 0x5f, 0x74, 0x6f, 0x6b, 0x79, 0x6f, 0x10, 0x0f, 0x12, 0x13, 0x0a, 0x0f, 0x74, - 0x63, 0x5f, 0x65, 0x75, 0x5f, 0x66, 0x72, 0x61, 0x6e, 0x6b, 0x66, 0x75, 0x72, 0x74, 0x10, 0x10, - 0x12, 0x10, 0x0a, 0x0c, 0x74, 0x63, 0x5f, 0x65, 0x75, 0x5f, 0x6d, 0x6f, 0x73, 0x63, 0x6f, 0x77, - 0x10, 0x11, 0x12, 0x11, 0x0a, 0x0d, 0x74, 0x63, 0x5f, 0x6e, 0x61, 0x5f, 0x61, 0x73, 0x68, 0x62, - 0x75, 0x72, 0x6e, 0x10, 0x12, 0x12, 0x17, 0x0a, 0x13, 0x74, 0x63, 0x5f, 0x6e, 0x61, 0x5f, 0x73, - 0x69, 0x6c, 0x69, 0x63, 0x6f, 0x6e, 0x76, 0x61, 0x6c, 0x6c, 0x65, 0x79, 0x10, 0x13, 0x12, 0x11, - 0x0a, 0x0d, 0x74, 0x63, 0x5f, 0x6e, 0x61, 0x5f, 0x74, 0x6f, 0x72, 0x6f, 0x6e, 0x74, 0x6f, 0x10, - 0x14, 0x12, 0x12, 0x0a, 0x0e, 0x74, 0x63, 0x5f, 0x73, 0x61, 0x5f, 0x73, 0x61, 0x6f, 0x70, 0x61, - 0x75, 0x6c, 0x6f, 0x10, 0x15, 0x2a, 0xfb, 0x01, 0x0a, 0x0e, 0x48, 0x75, 0x61, 0x77, 0x65, 0x69, - 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x0a, 0x0a, 0x06, 0x68, 0x77, 0x5f, 0x61, - 0x6c, 0x6c, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x68, 0x77, 0x5f, 0x63, 0x6e, 0x5f, 0x6e, 0x6f, - 0x72, 0x74, 0x68, 0x5f, 0x31, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x68, 0x77, 0x5f, 0x63, 0x6e, - 0x5f, 0x6e, 0x6f, 0x72, 0x74, 0x68, 0x5f, 0x34, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x68, 0x77, - 0x5f, 0x63, 0x6e, 0x5f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x5f, 0x31, 0x10, 0x03, 0x12, 0x10, 0x0a, - 0x0c, 0x68, 0x77, 0x5f, 0x63, 0x6e, 0x5f, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x32, 0x10, 0x04, 0x12, - 0x10, 0x0a, 0x0c, 0x68, 0x77, 0x5f, 0x63, 0x6e, 0x5f, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x33, 0x10, - 0x05, 0x12, 0x15, 0x0a, 0x11, 0x68, 0x77, 0x5f, 0x63, 0x6e, 0x5f, 0x73, 0x6f, 0x75, 0x74, 0x68, - 0x77, 0x65, 0x73, 0x74, 0x5f, 0x32, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11, 0x68, 0x77, 0x5f, 0x61, - 0x70, 0x5f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x31, 0x10, 0x07, 0x12, - 0x15, 0x0a, 0x11, 0x68, 0x77, 0x5f, 0x61, 0x70, 0x5f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x65, 0x61, - 0x73, 0x74, 0x5f, 0x32, 0x10, 0x08, 0x12, 0x15, 0x0a, 0x11, 0x68, 0x77, 0x5f, 0x61, 0x70, 0x5f, - 0x73, 0x6f, 0x75, 0x74, 0x68, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x33, 0x10, 0x09, 0x12, 0x11, 0x0a, - 0x0d, 0x68, 0x77, 0x5f, 0x61, 0x66, 0x5f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x5f, 0x31, 0x10, 0x0a, - 0x12, 0x11, 0x0a, 0x0d, 0x68, 0x77, 0x5f, 0x63, 0x6e, 0x5f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x5f, - 0x32, 0x10, 0x0b, 0x2a, 0x1a, 0x0a, 0x0b, 0x4b, 0x38, 0x53, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, - 0x49, 0x64, 0x12, 0x0b, 0x0a, 0x07, 0x6b, 0x38, 0x73, 0x5f, 0x61, 0x6c, 0x6c, 0x10, 0x00, 0x2a, - 0xcd, 0x03, 0x0a, 0x0b, 0x41, 0x77, 0x73, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, - 0x0b, 0x0a, 0x07, 0x61, 0x77, 0x73, 0x5f, 0x61, 0x6c, 0x6c, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, - 0x61, 0x77, 0x73, 0x5f, 0x75, 0x73, 0x5f, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x32, 0x10, 0x01, 0x12, - 0x11, 0x0a, 0x0d, 0x61, 0x77, 0x73, 0x5f, 0x75, 0x73, 0x5f, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x31, - 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x77, 0x73, 0x5f, 0x75, 0x73, 0x5f, 0x77, 0x65, 0x73, - 0x74, 0x5f, 0x31, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x77, 0x73, 0x5f, 0x75, 0x73, 0x5f, - 0x77, 0x65, 0x73, 0x74, 0x5f, 0x32, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, - 0x61, 0x66, 0x5f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x5f, 0x31, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, - 0x61, 0x77, 0x73, 0x5f, 0x61, 0x70, 0x5f, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x31, 0x10, 0x06, 0x12, - 0x12, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x61, 0x70, 0x5f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x5f, - 0x31, 0x10, 0x07, 0x12, 0x16, 0x0a, 0x12, 0x61, 0x77, 0x73, 0x5f, 0x61, 0x70, 0x5f, 0x6e, 0x6f, - 0x72, 0x74, 0x68, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x33, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x61, - 0x77, 0x73, 0x5f, 0x61, 0x70, 0x5f, 0x6e, 0x6f, 0x72, 0x74, 0x68, 0x65, 0x61, 0x73, 0x74, 0x5f, - 0x32, 0x10, 0x09, 0x12, 0x16, 0x0a, 0x12, 0x61, 0x77, 0x73, 0x5f, 0x61, 0x70, 0x5f, 0x6e, 0x6f, - 0x72, 0x74, 0x68, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x31, 0x10, 0x0a, 0x12, 0x16, 0x0a, 0x12, 0x61, - 0x77, 0x73, 0x5f, 0x61, 0x70, 0x5f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x65, 0x61, 0x73, 0x74, 0x5f, - 0x32, 0x10, 0x0b, 0x12, 0x16, 0x0a, 0x12, 0x61, 0x77, 0x73, 0x5f, 0x61, 0x70, 0x5f, 0x73, 0x6f, - 0x75, 0x74, 0x68, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x31, 0x10, 0x0c, 0x12, 0x14, 0x0a, 0x10, 0x61, - 0x77, 0x73, 0x5f, 0x63, 0x61, 0x5f, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x5f, 0x31, 0x10, - 0x0d, 0x12, 0x14, 0x0a, 0x10, 0x61, 0x77, 0x73, 0x5f, 0x65, 0x75, 0x5f, 0x63, 0x65, 0x6e, 0x74, - 0x72, 0x61, 0x6c, 0x5f, 0x31, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x77, 0x73, 0x5f, 0x65, - 0x75, 0x5f, 0x77, 0x65, 0x73, 0x74, 0x5f, 0x31, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x77, - 0x73, 0x5f, 0x65, 0x75, 0x5f, 0x77, 0x65, 0x73, 0x74, 0x5f, 0x32, 0x10, 0x10, 0x12, 0x12, 0x0a, - 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x65, 0x75, 0x5f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x5f, 0x31, 0x10, - 0x11, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x77, 0x73, 0x5f, 0x65, 0x75, 0x5f, 0x77, 0x65, 0x73, 0x74, - 0x5f, 0x33, 0x10, 0x12, 0x12, 0x12, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x65, 0x75, 0x5f, 0x6e, - 0x6f, 0x72, 0x74, 0x68, 0x5f, 0x31, 0x10, 0x13, 0x12, 0x12, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, - 0x6d, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x5f, 0x31, 0x10, 0x14, 0x12, 0x11, 0x0a, 0x0d, - 0x61, 0x77, 0x73, 0x5f, 0x73, 0x61, 0x5f, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x31, 0x10, 0x15, 0x32, - 0x70, 0x0a, 0x0d, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x1a, 0x5f, 0x92, 0x41, 0x5c, 0x12, 0x1e, 0xe6, 0x89, 0x80, 0xe6, 0x9c, 0x89, 0xe4, 0xba, 0x91, - 0xe7, 0xa7, 0x9f, 0xe6, 0x88, 0xb7, 0xe7, 0x9a, 0x84, 0xe8, 0xae, 0xa4, 0xe8, 0xaf, 0x81, 0xe6, - 0x9c, 0x8d, 0xe5, 0x8a, 0xa1, 0x1a, 0x3a, 0x0a, 0x17, 0x46, 0x69, 0x6e, 0x64, 0x20, 0x6f, 0x75, - 0x74, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x50, 0x43, 0x4d, - 0x12, 0x1f, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x6c, 0x69, 0x6e, - 0x6b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x6e, 0x2f, 0x4a, 0x43, 0x43, 0x45, 0x2f, 0x50, 0x43, - 0x4d, 0x42, 0x30, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0x6f, 0x72, 0x67, - 0x2e, 0x63, 0x6e, 0x2f, 0x4a, 0x43, 0x43, 0x45, 0x2f, 0x50, 0x43, 0x4d, 0x2f, 0x6c, 0x61, 0x6e, - 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x2f, 0x69, 0x64, 0x6c, 0x2f, 0x70, 0x62, 0x74, 0x65, 0x6e, - 0x61, 0x6e, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x2c, 0x0a, 0x06, 0x52, 0x65, 0x67, 0x69, 0x6f, + 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x2a, 0x49, 0x0a, 0x0d, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x07, 0x0a, 0x03, 0x61, 0x6c, 0x69, 0x10, 0x00, 0x12, + 0x0b, 0x0a, 0x07, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, + 0x68, 0x75, 0x61, 0x77, 0x65, 0x69, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x6b, 0x38, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x68, 0x61, 0x72, 0x76, 0x65, 0x73, 0x74, 0x65, 0x72, 0x10, 0x04, + 0x2a, 0x77, 0x0a, 0x0c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x12, 0x0f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x10, + 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x65, 0x63, 0x73, + 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x72, 0x64, + 0x73, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x64, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x74, 0x5f, 0x6f, 0x73, 0x73, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, + 0x75, 0x63, 0x74, 0x5f, 0x70, 0x6f, 0x64, 0x10, 0x05, 0x2a, 0xf3, 0x03, 0x0a, 0x0b, 0x41, 0x6c, + 0x69, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x0b, 0x0a, 0x07, 0x61, 0x6c, 0x69, + 0x5f, 0x61, 0x6c, 0x6c, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x61, 0x6c, 0x69, 0x5f, 0x63, 0x6e, + 0x5f, 0x71, 0x69, 0x6e, 0x67, 0x64, 0x61, 0x6f, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x61, 0x6c, + 0x69, 0x5f, 0x63, 0x6e, 0x5f, 0x62, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x16, + 0x0a, 0x12, 0x61, 0x6c, 0x69, 0x5f, 0x63, 0x6e, 0x5f, 0x7a, 0x68, 0x61, 0x6e, 0x67, 0x6a, 0x69, + 0x61, 0x6b, 0x6f, 0x75, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x61, 0x6c, 0x69, 0x5f, 0x63, 0x6e, + 0x5f, 0x68, 0x75, 0x68, 0x65, 0x68, 0x61, 0x6f, 0x74, 0x65, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, + 0x61, 0x6c, 0x69, 0x5f, 0x63, 0x6e, 0x5f, 0x77, 0x75, 0x6c, 0x61, 0x6e, 0x63, 0x68, 0x61, 0x62, + 0x75, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x61, 0x6c, 0x69, 0x5f, 0x63, 0x6e, 0x5f, 0x68, 0x61, + 0x6e, 0x67, 0x7a, 0x68, 0x6f, 0x75, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x61, 0x6c, 0x69, 0x5f, + 0x63, 0x6e, 0x5f, 0x73, 0x68, 0x61, 0x6e, 0x67, 0x68, 0x61, 0x69, 0x10, 0x07, 0x12, 0x13, 0x0a, + 0x0f, 0x61, 0x6c, 0x69, 0x5f, 0x63, 0x6e, 0x5f, 0x73, 0x68, 0x65, 0x6e, 0x7a, 0x68, 0x65, 0x6e, + 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x6c, 0x69, 0x5f, 0x63, 0x6e, 0x5f, 0x68, 0x65, 0x79, + 0x75, 0x61, 0x6e, 0x10, 0x09, 0x12, 0x14, 0x0a, 0x10, 0x61, 0x6c, 0x69, 0x5f, 0x63, 0x6e, 0x5f, + 0x67, 0x75, 0x61, 0x6e, 0x67, 0x7a, 0x68, 0x6f, 0x75, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x61, + 0x6c, 0x69, 0x5f, 0x63, 0x6e, 0x5f, 0x63, 0x68, 0x65, 0x6e, 0x67, 0x64, 0x75, 0x10, 0x0b, 0x12, + 0x13, 0x0a, 0x0f, 0x61, 0x6c, 0x69, 0x5f, 0x63, 0x6e, 0x5f, 0x68, 0x6f, 0x6e, 0x67, 0x6b, 0x6f, + 0x6e, 0x67, 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, 0x61, 0x6c, 0x69, 0x5f, 0x61, 0x70, 0x5f, 0x73, + 0x6f, 0x75, 0x74, 0x68, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x31, 0x10, 0x0d, 0x12, 0x16, 0x0a, 0x12, + 0x61, 0x6c, 0x69, 0x5f, 0x61, 0x70, 0x5f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x65, 0x61, 0x73, 0x74, + 0x5f, 0x32, 0x10, 0x0e, 0x12, 0x16, 0x0a, 0x12, 0x61, 0x6c, 0x69, 0x5f, 0x61, 0x70, 0x5f, 0x73, + 0x6f, 0x75, 0x74, 0x68, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x33, 0x10, 0x0f, 0x12, 0x16, 0x0a, 0x12, + 0x61, 0x6c, 0x69, 0x5f, 0x61, 0x70, 0x5f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x65, 0x61, 0x73, 0x74, + 0x5f, 0x35, 0x10, 0x10, 0x12, 0x12, 0x0a, 0x0e, 0x61, 0x6c, 0x69, 0x5f, 0x61, 0x70, 0x5f, 0x73, + 0x6f, 0x75, 0x74, 0x68, 0x5f, 0x31, 0x10, 0x11, 0x12, 0x16, 0x0a, 0x12, 0x61, 0x6c, 0x69, 0x5f, + 0x61, 0x70, 0x5f, 0x6e, 0x6f, 0x72, 0x74, 0x68, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x31, 0x10, 0x12, + 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x6c, 0x69, 0x5f, 0x75, 0x73, 0x5f, 0x77, 0x65, 0x73, 0x74, 0x5f, + 0x31, 0x10, 0x13, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x6c, 0x69, 0x5f, 0x75, 0x73, 0x5f, 0x65, 0x61, + 0x73, 0x74, 0x5f, 0x31, 0x10, 0x14, 0x12, 0x14, 0x0a, 0x10, 0x61, 0x6c, 0x69, 0x5f, 0x65, 0x75, + 0x5f, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x5f, 0x31, 0x10, 0x15, 0x12, 0x11, 0x0a, 0x0d, + 0x61, 0x6c, 0x69, 0x5f, 0x65, 0x75, 0x5f, 0x77, 0x65, 0x73, 0x74, 0x5f, 0x31, 0x10, 0x16, 0x2a, + 0xc1, 0x03, 0x0a, 0x0f, 0x54, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x63, 0x5f, 0x61, 0x6c, 0x6c, 0x10, 0x00, 0x12, + 0x11, 0x0a, 0x0d, 0x74, 0x63, 0x5f, 0x61, 0x70, 0x5f, 0x62, 0x61, 0x6e, 0x67, 0x6b, 0x6f, 0x6b, + 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x74, 0x63, 0x5f, 0x61, 0x70, 0x5f, 0x62, 0x65, 0x69, 0x6a, + 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x74, 0x63, 0x5f, 0x61, 0x70, 0x5f, 0x63, + 0x68, 0x65, 0x6e, 0x67, 0x64, 0x75, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x74, 0x63, 0x5f, 0x61, + 0x70, 0x5f, 0x63, 0x68, 0x6f, 0x6e, 0x67, 0x71, 0x69, 0x6e, 0x67, 0x10, 0x04, 0x12, 0x13, 0x0a, + 0x0f, 0x74, 0x63, 0x5f, 0x61, 0x70, 0x5f, 0x67, 0x75, 0x61, 0x6e, 0x67, 0x7a, 0x68, 0x6f, 0x75, + 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x74, 0x63, 0x5f, 0x61, 0x70, 0x5f, 0x68, 0x6f, 0x6e, 0x67, + 0x6b, 0x6f, 0x6e, 0x67, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x74, 0x63, 0x5f, 0x61, 0x70, 0x5f, + 0x6a, 0x61, 0x6b, 0x61, 0x72, 0x74, 0x61, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x74, 0x63, 0x5f, + 0x61, 0x70, 0x5f, 0x6d, 0x75, 0x6d, 0x62, 0x61, 0x69, 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x74, + 0x63, 0x5f, 0x61, 0x70, 0x5f, 0x6e, 0x61, 0x6e, 0x6a, 0x69, 0x6e, 0x67, 0x10, 0x09, 0x12, 0x0f, + 0x0a, 0x0b, 0x74, 0x63, 0x5f, 0x61, 0x70, 0x5f, 0x73, 0x65, 0x6f, 0x75, 0x6c, 0x10, 0x0a, 0x12, + 0x12, 0x0a, 0x0e, 0x74, 0x63, 0x5f, 0x61, 0x70, 0x5f, 0x73, 0x68, 0x61, 0x6e, 0x67, 0x68, 0x61, + 0x69, 0x10, 0x0b, 0x12, 0x16, 0x0a, 0x12, 0x74, 0x63, 0x5f, 0x61, 0x70, 0x5f, 0x73, 0x68, 0x61, + 0x6e, 0x67, 0x68, 0x61, 0x69, 0x5f, 0x66, 0x73, 0x69, 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, 0x74, + 0x63, 0x5f, 0x61, 0x70, 0x5f, 0x73, 0x68, 0x65, 0x6e, 0x7a, 0x68, 0x65, 0x6e, 0x5f, 0x66, 0x73, + 0x69, 0x10, 0x0d, 0x12, 0x13, 0x0a, 0x0f, 0x74, 0x63, 0x5f, 0x61, 0x70, 0x5f, 0x73, 0x69, 0x6e, + 0x67, 0x61, 0x70, 0x6f, 0x72, 0x65, 0x10, 0x0e, 0x12, 0x0f, 0x0a, 0x0b, 0x74, 0x63, 0x5f, 0x61, + 0x70, 0x5f, 0x74, 0x6f, 0x6b, 0x79, 0x6f, 0x10, 0x0f, 0x12, 0x13, 0x0a, 0x0f, 0x74, 0x63, 0x5f, + 0x65, 0x75, 0x5f, 0x66, 0x72, 0x61, 0x6e, 0x6b, 0x66, 0x75, 0x72, 0x74, 0x10, 0x10, 0x12, 0x10, + 0x0a, 0x0c, 0x74, 0x63, 0x5f, 0x65, 0x75, 0x5f, 0x6d, 0x6f, 0x73, 0x63, 0x6f, 0x77, 0x10, 0x11, + 0x12, 0x11, 0x0a, 0x0d, 0x74, 0x63, 0x5f, 0x6e, 0x61, 0x5f, 0x61, 0x73, 0x68, 0x62, 0x75, 0x72, + 0x6e, 0x10, 0x12, 0x12, 0x17, 0x0a, 0x13, 0x74, 0x63, 0x5f, 0x6e, 0x61, 0x5f, 0x73, 0x69, 0x6c, + 0x69, 0x63, 0x6f, 0x6e, 0x76, 0x61, 0x6c, 0x6c, 0x65, 0x79, 0x10, 0x13, 0x12, 0x11, 0x0a, 0x0d, + 0x74, 0x63, 0x5f, 0x6e, 0x61, 0x5f, 0x74, 0x6f, 0x72, 0x6f, 0x6e, 0x74, 0x6f, 0x10, 0x14, 0x12, + 0x12, 0x0a, 0x0e, 0x74, 0x63, 0x5f, 0x73, 0x61, 0x5f, 0x73, 0x61, 0x6f, 0x70, 0x61, 0x75, 0x6c, + 0x6f, 0x10, 0x15, 0x2a, 0xfb, 0x01, 0x0a, 0x0e, 0x48, 0x75, 0x61, 0x77, 0x65, 0x69, 0x52, 0x65, + 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x0a, 0x0a, 0x06, 0x68, 0x77, 0x5f, 0x61, 0x6c, 0x6c, + 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x68, 0x77, 0x5f, 0x63, 0x6e, 0x5f, 0x6e, 0x6f, 0x72, 0x74, + 0x68, 0x5f, 0x31, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x68, 0x77, 0x5f, 0x63, 0x6e, 0x5f, 0x6e, + 0x6f, 0x72, 0x74, 0x68, 0x5f, 0x34, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x68, 0x77, 0x5f, 0x63, + 0x6e, 0x5f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x5f, 0x31, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x68, + 0x77, 0x5f, 0x63, 0x6e, 0x5f, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x32, 0x10, 0x04, 0x12, 0x10, 0x0a, + 0x0c, 0x68, 0x77, 0x5f, 0x63, 0x6e, 0x5f, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x33, 0x10, 0x05, 0x12, + 0x15, 0x0a, 0x11, 0x68, 0x77, 0x5f, 0x63, 0x6e, 0x5f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x77, 0x65, + 0x73, 0x74, 0x5f, 0x32, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11, 0x68, 0x77, 0x5f, 0x61, 0x70, 0x5f, + 0x73, 0x6f, 0x75, 0x74, 0x68, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x31, 0x10, 0x07, 0x12, 0x15, 0x0a, + 0x11, 0x68, 0x77, 0x5f, 0x61, 0x70, 0x5f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x65, 0x61, 0x73, 0x74, + 0x5f, 0x32, 0x10, 0x08, 0x12, 0x15, 0x0a, 0x11, 0x68, 0x77, 0x5f, 0x61, 0x70, 0x5f, 0x73, 0x6f, + 0x75, 0x74, 0x68, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x33, 0x10, 0x09, 0x12, 0x11, 0x0a, 0x0d, 0x68, + 0x77, 0x5f, 0x61, 0x66, 0x5f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x5f, 0x31, 0x10, 0x0a, 0x12, 0x11, + 0x0a, 0x0d, 0x68, 0x77, 0x5f, 0x63, 0x6e, 0x5f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x5f, 0x32, 0x10, + 0x0b, 0x2a, 0x1a, 0x0a, 0x0b, 0x4b, 0x38, 0x53, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, + 0x12, 0x0b, 0x0a, 0x07, 0x6b, 0x38, 0x73, 0x5f, 0x61, 0x6c, 0x6c, 0x10, 0x00, 0x2a, 0xcd, 0x03, + 0x0a, 0x0b, 0x41, 0x77, 0x73, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x0b, 0x0a, + 0x07, 0x61, 0x77, 0x73, 0x5f, 0x61, 0x6c, 0x6c, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x77, + 0x73, 0x5f, 0x75, 0x73, 0x5f, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x32, 0x10, 0x01, 0x12, 0x11, 0x0a, + 0x0d, 0x61, 0x77, 0x73, 0x5f, 0x75, 0x73, 0x5f, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x31, 0x10, 0x02, + 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x77, 0x73, 0x5f, 0x75, 0x73, 0x5f, 0x77, 0x65, 0x73, 0x74, 0x5f, + 0x31, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x77, 0x73, 0x5f, 0x75, 0x73, 0x5f, 0x77, 0x65, + 0x73, 0x74, 0x5f, 0x32, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x61, 0x66, + 0x5f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x5f, 0x31, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x77, + 0x73, 0x5f, 0x61, 0x70, 0x5f, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x31, 0x10, 0x06, 0x12, 0x12, 0x0a, + 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x61, 0x70, 0x5f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x5f, 0x31, 0x10, + 0x07, 0x12, 0x16, 0x0a, 0x12, 0x61, 0x77, 0x73, 0x5f, 0x61, 0x70, 0x5f, 0x6e, 0x6f, 0x72, 0x74, + 0x68, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x33, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x61, 0x77, 0x73, + 0x5f, 0x61, 0x70, 0x5f, 0x6e, 0x6f, 0x72, 0x74, 0x68, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x32, 0x10, + 0x09, 0x12, 0x16, 0x0a, 0x12, 0x61, 0x77, 0x73, 0x5f, 0x61, 0x70, 0x5f, 0x6e, 0x6f, 0x72, 0x74, + 0x68, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x31, 0x10, 0x0a, 0x12, 0x16, 0x0a, 0x12, 0x61, 0x77, 0x73, + 0x5f, 0x61, 0x70, 0x5f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x32, 0x10, + 0x0b, 0x12, 0x16, 0x0a, 0x12, 0x61, 0x77, 0x73, 0x5f, 0x61, 0x70, 0x5f, 0x73, 0x6f, 0x75, 0x74, + 0x68, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x31, 0x10, 0x0c, 0x12, 0x14, 0x0a, 0x10, 0x61, 0x77, 0x73, + 0x5f, 0x63, 0x61, 0x5f, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x5f, 0x31, 0x10, 0x0d, 0x12, + 0x14, 0x0a, 0x10, 0x61, 0x77, 0x73, 0x5f, 0x65, 0x75, 0x5f, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, + 0x6c, 0x5f, 0x31, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x77, 0x73, 0x5f, 0x65, 0x75, 0x5f, + 0x77, 0x65, 0x73, 0x74, 0x5f, 0x31, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x77, 0x73, 0x5f, + 0x65, 0x75, 0x5f, 0x77, 0x65, 0x73, 0x74, 0x5f, 0x32, 0x10, 0x10, 0x12, 0x12, 0x0a, 0x0e, 0x61, + 0x77, 0x73, 0x5f, 0x65, 0x75, 0x5f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x5f, 0x31, 0x10, 0x11, 0x12, + 0x11, 0x0a, 0x0d, 0x61, 0x77, 0x73, 0x5f, 0x65, 0x75, 0x5f, 0x77, 0x65, 0x73, 0x74, 0x5f, 0x33, + 0x10, 0x12, 0x12, 0x12, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x65, 0x75, 0x5f, 0x6e, 0x6f, 0x72, + 0x74, 0x68, 0x5f, 0x31, 0x10, 0x13, 0x12, 0x12, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x6d, 0x65, + 0x5f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x5f, 0x31, 0x10, 0x14, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x77, + 0x73, 0x5f, 0x73, 0x61, 0x5f, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x31, 0x10, 0x15, 0x32, 0x70, 0x0a, + 0x0d, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x1a, 0x5f, + 0x92, 0x41, 0x5c, 0x12, 0x1e, 0xe6, 0x89, 0x80, 0xe6, 0x9c, 0x89, 0xe4, 0xba, 0x91, 0xe7, 0xa7, + 0x9f, 0xe6, 0x88, 0xb7, 0xe7, 0x9a, 0x84, 0xe8, 0xae, 0xa4, 0xe8, 0xaf, 0x81, 0xe6, 0x9c, 0x8d, + 0xe5, 0x8a, 0xa1, 0x1a, 0x3a, 0x0a, 0x17, 0x46, 0x69, 0x6e, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x20, + 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x50, 0x43, 0x4d, 0x12, 0x1f, + 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x6c, 0x69, 0x6e, 0x6b, 0x2e, + 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x6e, 0x2f, 0x4a, 0x43, 0x43, 0x45, 0x2f, 0x50, 0x43, 0x4d, 0x42, + 0x30, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, + 0x6e, 0x2f, 0x4a, 0x43, 0x43, 0x45, 0x2f, 0x50, 0x43, 0x4d, 0x2f, 0x6c, 0x61, 0x6e, 0x5f, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x2f, 0x69, 0x64, 0x6c, 0x2f, 0x70, 0x62, 0x74, 0x65, 0x6e, 0x61, 0x6e, + 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -906,7 +966,7 @@ func file_idl_pbtenant_tenant_proto_rawDescGZIP() []byte { } var file_idl_pbtenant_tenant_proto_enumTypes = make([]protoimpl.EnumInfo, 7) -var file_idl_pbtenant_tenant_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_idl_pbtenant_tenant_proto_msgTypes = make([]protoimpl.MessageInfo, 3) var file_idl_pbtenant_tenant_proto_goTypes = []interface{}{ (CloudProvider)(0), // 0: pbtenant.CloudProvider (CloudProduct)(0), // 1: pbtenant.CloudProduct @@ -917,6 +977,7 @@ var file_idl_pbtenant_tenant_proto_goTypes = []interface{}{ (AwsRegionId)(0), // 6: pbtenant.AwsRegionId (*CloudConfigs)(nil), // 7: pbtenant.CloudConfigs (*CloudConfig)(nil), // 8: pbtenant.CloudConfig + (*Region)(nil), // 9: pbtenant.Region } var file_idl_pbtenant_tenant_proto_depIdxs = []int32{ 8, // 0: pbtenant.CloudConfigs.configs:type_name -> pbtenant.CloudConfig @@ -958,6 +1019,18 @@ func file_idl_pbtenant_tenant_proto_init() { return nil } } + file_idl_pbtenant_tenant_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Region); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -965,7 +1038,7 @@ func file_idl_pbtenant_tenant_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_idl_pbtenant_tenant_proto_rawDesc, NumEnums: 7, - NumMessages: 2, + NumMessages: 3, NumExtensions: 0, NumServices: 1, }, diff --git a/lan_trans/openapiv2/idl/demo/demo.swagger.json b/lan_trans/openapiv2/idl/demo/demo.swagger.json index a969e31..d7db3be 100644 --- a/lan_trans/openapiv2/idl/demo/demo.swagger.json +++ b/lan_trans/openapiv2/idl/demo/demo.swagger.json @@ -68,14 +68,11 @@ "protobufAny": { "type": "object", "properties": { - "typeUrl": { + "@type": { "type": "string" - }, - "value": { - "type": "string", - "format": "byte" } - } + }, + "additionalProperties": {} }, "rpcStatus": { "type": "object", diff --git a/lan_trans/openapiv2/idl/pbecs/ecs.swagger.json b/lan_trans/openapiv2/idl/pbecs/ecs.swagger.json index cb35b46..123ca38 100644 --- a/lan_trans/openapiv2/idl/pbecs/ecs.swagger.json +++ b/lan_trans/openapiv2/idl/pbecs/ecs.swagger.json @@ -37,7 +37,7 @@ "parameters": [ { "name": "provider", - "description": "云名称.\n\n - ali: 0 - 阿里云\n - tencent: 1 - 腾讯云\n - huawei: 2 - 华为云\n - k8s: 3 - K8S\n - harvester: 3 - Harvester", + "description": "云名称\n\n - ali: 0 - 阿里云\n - tencent: 1 - 腾讯云\n - huawei: 2 - 华为云\n - k8s: 3 - K8S\n - harvester: 3 - Harvester", "in": "query", "required": false, "type": "string", @@ -199,7 +199,7 @@ "parameters": [ { "name": "provider", - "description": "云名称.\n\n - ali: 0 - 阿里云\n - tencent: 1 - 腾讯云\n - huawei: 2 - 华为云\n - k8s: 3 - K8S\n - harvester: 3 - Harvester", + "description": "云名称\n\n - ali: 0 - 阿里云\n - tencent: 1 - 腾讯云\n - huawei: 2 - 华为云\n - k8s: 3 - K8S\n - harvester: 3 - Harvester", "in": "query", "required": false, "type": "string", @@ -214,14 +214,14 @@ }, { "name": "accountName", - "description": "账户名称,根据config.yaml中的配置,默认为第一个配置的账户.", + "description": "账户名称,根据config.yaml中的配置,默认为第一个配置的账户", "in": "query", "required": false, "type": "string" }, { "name": "regionId", - "description": "区域Id,参考 tenant.proto 中的各个云的区域.", + "description": "区域Id,参考 tenant.proto 中的各个云的区域", "in": "query", "required": false, "type": "integer", @@ -229,7 +229,7 @@ }, { "name": "pageNumber", - "description": "分页相关参数,页码.", + "description": "分页相关参数,页码", "in": "query", "required": false, "type": "integer", @@ -237,7 +237,7 @@ }, { "name": "pageSize", - "description": "分页相关参数,每页数量.", + "description": "分页相关参数,每页数量", "in": "query", "required": false, "type": "integer", @@ -245,7 +245,7 @@ }, { "name": "nextToken", - "description": "分页相关参数,下一页的token.", + "description": "分页相关参数,下一页的token", "in": "query", "required": false, "type": "string" @@ -765,14 +765,11 @@ "protobufAny": { "type": "object", "properties": { - "typeUrl": { + "@type": { "type": "string" - }, - "value": { - "type": "string", - "format": "byte" } - } + }, + "additionalProperties": {} }, "rpcStatus": { "type": "object", diff --git a/lan_trans/openapiv2/idl/pbpod/pod.swagger.json b/lan_trans/openapiv2/idl/pbpod/pod.swagger.json index 32ac949..8e6fb7e 100644 --- a/lan_trans/openapiv2/idl/pbpod/pod.swagger.json +++ b/lan_trans/openapiv2/idl/pbpod/pod.swagger.json @@ -37,7 +37,7 @@ "parameters": [ { "name": "provider", - "description": "云名称.\n\n - ali: 0 - 阿里云\n - tencent: 1 - 腾讯云\n - huawei: 2 - 华为云\n - k8s: 3 - K8S\n - harvester: 3 - Harvester", + "description": "cloud name\n\n - ali: 0 - 阿里云\n - tencent: 1 - 腾讯云\n - huawei: 2 - 华为云\n - k8s: 3 - K8S\n - harvester: 3 - Harvester", "in": "query", "required": false, "type": "string", @@ -205,7 +205,7 @@ "parameters": [ { "name": "provider", - "description": "云名称.\n\n - ali: 0 - 阿里云\n - tencent: 1 - 腾讯云\n - huawei: 2 - 华为云\n - k8s: 3 - K8S\n - harvester: 3 - Harvester", + "description": "云名称\n\n - ali: 0 - 阿里云\n - tencent: 1 - 腾讯云\n - huawei: 2 - 华为云\n - k8s: 3 - K8S\n - harvester: 3 - Harvester", "in": "query", "required": false, "type": "string", @@ -220,14 +220,14 @@ }, { "name": "accountName", - "description": "账户名称,根据config.yaml中的配置,默认为第一个配置的账户.", + "description": "账户名称,根据config.yaml中的配置,默认为第一个配置的账户", "in": "query", "required": false, "type": "string" }, { "name": "regionId", - "description": "区域Id,参考 tenant.proto 中的各个云的区域.", + "description": "区域Id,参考 tenant.proto 中的各个云的区域", "in": "query", "required": false, "type": "integer", @@ -235,7 +235,7 @@ }, { "name": "regionName", - "description": "区域名称,各云厂商自定义的region name.", + "description": "区域名称,各云厂商自定义的region name", "in": "query", "required": false, "type": "integer", @@ -243,7 +243,7 @@ }, { "name": "podId", - "description": "podID.", + "description": "podID", "in": "query", "required": false, "type": "integer", @@ -251,7 +251,7 @@ }, { "name": "pageNumber", - "description": "分页相关参数,页码.", + "description": "分页相关参数,页码", "in": "query", "required": false, "type": "integer", @@ -259,7 +259,7 @@ }, { "name": "pageSize", - "description": "分页相关参数,每页数量.", + "description": "分页相关参数,每页数量", "in": "query", "required": false, "type": "integer", @@ -267,14 +267,14 @@ }, { "name": "nextToken", - "description": "分页相关参数,下一页的token.", + "description": "分页相关参数,下一页的token", "in": "query", "required": false, "type": "string" }, { "name": "namespace", - "description": "namespace.", + "description": "namespace", "in": "query", "required": false, "type": "string" @@ -518,7 +518,7 @@ "items": { "$ref": "#/definitions/pbpodPodInstance" }, - "title": "pod集合" + "title": "pod list" } } }, @@ -675,14 +675,11 @@ "protobufAny": { "type": "object", "properties": { - "typeUrl": { + "@type": { "type": "string" - }, - "value": { - "type": "string", - "format": "byte" } - } + }, + "additionalProperties": {} }, "rpcStatus": { "type": "object", diff --git a/lan_trans/openapiv2/idl/pbtenant/tenant.swagger.json b/lan_trans/openapiv2/idl/pbtenant/tenant.swagger.json index 636ce73..0a73b35 100644 --- a/lan_trans/openapiv2/idl/pbtenant/tenant.swagger.json +++ b/lan_trans/openapiv2/idl/pbtenant/tenant.swagger.json @@ -15,14 +15,11 @@ "protobufAny": { "type": "object", "properties": { - "typeUrl": { + "@type": { "type": "string" - }, - "value": { - "type": "string", - "format": "byte" } - } + }, + "additionalProperties": {} }, "rpcStatus": { "type": "object",