diff --git a/adaptor/pod/server/ali/client.go b/adaptor/pod/server/ali/client.go new file mode 100644 index 00000000..6b5b9658 --- /dev/null +++ b/adaptor/pod/server/ali/client.go @@ -0,0 +1,110 @@ +//Licensed under the Apache License, Version 2.0 (the "License"); +//you may not use this file except in compliance with the License. +//You may obtain a copy of the License at +// +//http://www.apache.org/licenses/LICENSE-2.0 +// +//Unless required by applicable law or agreed to in writing, software +//distributed under the License is distributed on an "AS IS" BASIS, +//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +//See the License for the specific language governing permissions and +//limitations under the License. +// +// Code generated by Alibaba Cloud SDK Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +package ali + +import ( + "github.com/aliyun/alibaba-cloud-sdk-go/sdk" + "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth" + "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials/provider" +) + +// Client is the sdk client struct, each func corresponds to an OpenAPI +type Client struct { + sdk.Client +} + +//type AliEci struct { +// cli *alieci.Client +// region tenanter.Region +// tenanter tenanter.Tenanter +//} + +// NewClient creates a sdk client with environment variables +func NewClient() (client *Client, err error) { + client = &Client{} + err = client.Init() + return +} + +// NewClientWithProvider creates a sdk client with providers +// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md +func NewClientWithProvider(regionId string, providers ...provider.Provider) (client *Client, err error) { + client = &Client{} + var pc provider.Provider + if len(providers) == 0 { + pc = provider.DefaultChain + } else { + pc = provider.NewProviderChain(providers) + } + err = client.InitWithProviderChain(regionId, pc) + return +} + +// NewClientWithOptions creates a sdk client with regionId/sdkConfig/credential +// this is the common api to create a sdk client +func NewClientWithOptions(regionId string, config *sdk.Config, credential auth.Credential) (client *Client, err error) { + client = &Client{} + err = client.InitWithOptions(regionId, config, credential) + return +} + +// NewClientWithAccessKey is a shortcut to create sdk client with accesskey +// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md +func NewClientWithAccessKey(regionId, accessKeyId, accessKeySecret string) (client *Client, err error) { + client = &Client{} + err = client.InitWithAccessKey(regionId, accessKeyId, accessKeySecret) + return +} + +// NewClientWithStsToken is a shortcut to create sdk client with sts token +// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md +func NewClientWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken string) (client *Client, err error) { + client = &Client{} + err = client.InitWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken) + return +} + +// NewClientWithRamRoleArn is a shortcut to create sdk client with ram roleArn +// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md +func NewClientWithRamRoleArn(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName string) (client *Client, err error) { + client = &Client{} + err = client.InitWithRamRoleArn(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName) + return +} + +// NewClientWithRamRoleArn is a shortcut to create sdk client with ram roleArn and policy +// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md +func NewClientWithRamRoleArnAndPolicy(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName, policy string) (client *Client, err error) { + client = &Client{} + err = client.InitWithRamRoleArnAndPolicy(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName, policy) + return +} + +// NewClientWithEcsRamRole is a shortcut to create sdk client with ecs ram role +// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md +func NewClientWithEcsRamRole(regionId string, roleName string) (client *Client, err error) { + client = &Client{} + err = client.InitWithEcsRamRole(regionId, roleName) + return +} + +// NewClientWithRsaKeyPair is a shortcut to create sdk client with rsa key pair +// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md +func NewClientWithRsaKeyPair(regionId string, publicKeyId, privateKey string, sessionExpiration int) (client *Client, err error) { + client = &Client{} + err = client.InitWithRsaKeyPair(regionId, publicKeyId, privateKey, sessionExpiration) + return +} diff --git a/adaptor/pod/server/ali/create_container_group.go b/adaptor/pod/server/ali/create_container_group.go new file mode 100644 index 00000000..c8588ab4 --- /dev/null +++ b/adaptor/pod/server/ali/create_container_group.go @@ -0,0 +1,361 @@ +package ali + +import ( + "errors" + "flag" + "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests" + "github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses" + "github.com/golang/glog" + "gitlink.org.cn/JCCE/PCM/adaptor/pod/server" + "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" +) + +// CreateContainerGroup invokes the eci.CreateContainerGroup API synchronously +// api document: https://help.aliyun.com/api/eci/createcontainergroup.html +func CreateContainerGroup(request *CreateContainerGroupRequest) (response *CreateContainerGroupResponse, err error) { + + provider := pbtenant.CloudProvider(request.ProviderId) + var configFile string + flag.StringVar(&configFile, "conf", "configs/config.yaml", "config.yaml") + flag.Parse() + defer glog.Flush() + + if err := tenanter.LoadCloudConfigsFromFile(configFile); err != nil { + if !errors.Is(err, tenanter.ErrLoadTenanterFileEmpty) { + glog.Fatalf("tenanter.LoadCloudConfigsFromFile error %+v", err) + } + glog.Warningf("tenanter.LoadCloudConfigsFromFile empty file path %s", configFile) + } + + glog.Infof("load tenant from file finished") + tenanters, err := tenanter.GetTenanters(provider) + var regionId int32 + switch request.ProviderId { + case 0: + regionId, _ = tenanter.GetAliRegionId(request.RegionId) + case 1: + regionId, _ = tenanter.GetTencentRegionId(request.RegionId) + case 2: + regionId, _ = tenanter.GetHuaweiRegionId(request.RegionId) + case 3: + regionId, _ = tenanter.GetK8SRegionId(request.RegionId) + } + container := *request.Container + containerImage := container[0].Image + containerName := container[0].Name + containerPod := container[0].Cpu + memoryPod := container[0].Memory + + requestPCM := &pbpod.CreatePodReq{ + RequestSource: "ali", + Provider: provider, + AccountName: tenanters[0].AccountName(), + PodName: request.ContainerGroupName, + RegionId: regionId, + ContainerImage: containerImage, + ContainerName: containerName, + CpuPod: string(containerPod), + MemoryPod: string(memoryPod), + SecurityGroupId: "sg-6qlun7hd", + SubnetId: "subnet-mnwfg2fk", + VpcId: "vpc-rkwt40g5", + Namespace: "pcm", + } + + resp, err := server.CreatePod(nil, requestPCM) + + response = &CreateContainerGroupResponse{ + BaseResponse: nil, + RequestId: resp.RequestId, + ContainerGroupId: resp.PodId, + } + + return response, nil +} + +// CreateContainerGroupRequest is the request struct for api CreateContainerGroup +type CreateContainerGroupRequest struct { + *requests.RpcRequest + /*********PCM param************/ + RequestSource string `position:"Query" name:"RequestSource"` + ProviderId int32 `position:"Query" name:"ProviderId"` + AccountName string `position:"Query" name:"AccountName"` + Namespace string `position:"Query" name:"Namespace"` + /*********PCM param************/ + OwnerId requests.Integer `position:"Query" name:"OwnerId"` + ResourceOwnerAccount string `position:"Query" name:"ResourceOwnerAccount"` + ResourceOwnerId requests.Integer `position:"Query" name:"ResourceOwnerId"` + OwnerAccount string `position:"Query" name:"OwnerAccount"` + RegionId string `position:"Query" name:"RegionId"` + ZoneId string `position:"Query" name:"ZoneId"` + SecurityGroupId string `position:"Query" name:"SecurityGroupId"` + VSwitchId string `position:"Query" name:"VSwitchId"` + ContainerGroupName string `position:"Query" name:"ContainerGroupName"` + RestartPolicy string `position:"Query" name:"RestartPolicy"` + Tag *[]CreateContainerGroupTag `position:"Query" name:"Tag" type:"Repeated"` + ImageRegistryCredential *[]CreateContainerGroupImageRegistryCredential `position:"Query" name:"ImageRegistryCredential" type:"Repeated"` + Container *[]CreateContainerGroupContainer `position:"Query" name:"Container" type:"Repeated"` + Volume *[]CreateContainerGroupVolume `position:"Query" name:"Volume" type:"Repeated"` + EipInstanceId string `position:"Query" name:"EipInstanceId"` + InitContainer *[]CreateContainerGroupInitContainer `position:"Query" name:"InitContainer" type:"Repeated"` + Cpu requests.Float `position:"Query" name:"Cpu"` + Memory requests.Float `position:"Query" name:"Memory"` + ResourceGroupId string `position:"Query" name:"ResourceGroupId"` + DnsPolicy string `position:"Query" name:"DnsPolicy"` + ClientToken string `position:"Query" name:"ClientToken"` + HostAliase *[]CreateContainerGroupHostAliase `position:"Query" name:"HostAliase" type:"Repeated"` + Arn *[]CreateContainerGroupArn `position:"Query" name:"Arn" type:"Repeated"` + InstanceType string `position:"Query" name:"InstanceType"` + SlsEnable requests.Boolean `position:"Query" name:"SlsEnable"` + ImageSnapshotId string `position:"Query" name:"ImageSnapshotId"` + RamRoleName string `position:"Query" name:"RamRoleName"` + NtpServer []string `position:"Query" name:"NtpServer" type:"Repeated"` + TerminationGracePeriodSeconds requests.Integer `position:"Query" name:"TerminationGracePeriodSeconds"` + AutoMatchImageCache requests.Boolean `position:"Query" name:"AutoMatchImageCache"` + VkClientVersion string `position:"Query" name:"VkClientVersion"` + Ipv6AddressCount requests.Integer `position:"Query" name:"Ipv6AddressCount"` + ActiveDeadlineSeconds requests.Integer `position:"Query" name:"ActiveDeadlineSeconds"` + SpotStrategy string `position:"Query" name:"SpotStrategy"` + SpotPriceLimit requests.Float `position:"Query" name:"SpotPriceLimit"` + VSwitchStrategy string `position:"Query" name:"VSwitchStrategy"` + DnsConfig CreateContainerGroupDnsConfig `position:"Query" name:"DnsConfig" type:"Struct"` + SecurityContext CreateContainerGroupSecurityContext `position:"Query" name:"SecurityContext" type:"Struct"` +} + +type CreateContainerGroupTag struct { + Key string `name:"Key"` + Value string `name:"Value"` +} + +type CreateContainerGroupImageRegistryCredential struct { + Server string `name:"Server"` + UserName string `name:"UserName"` + Password string `name:"Password"` +} + +type CreateContainerGroupContainer struct { + Image string `name:"Image"` + Name string `name:"Name"` + Cpu requests.Float `name:"Cpu"` + Memory requests.Float `name:"Memory"` + WorkingDir string `name:"WorkingDir"` + ImagePullPolicy string `name:"ImagePullPolicy"` + Command []string `name:"Command" type:"Repeated"` + Arg []string `name:"Arg" type:"Repeated"` + VolumeMount *[]CreateContainerGroupVolumeMount `name:"VolumeMount" type:"Repeated"` + Port *[]CreateContainerGroupPort `name:"Port" type:"Repeated"` + EnvironmentVar *[]CreateContainerGroupEnvironmentVar `name:"EnvironmentVar" type:"Repeated"` + Stdin requests.Boolean `name:"Stdin"` + StdinOnce requests.Boolean `name:"StdinOnce"` + Tty requests.Boolean `name:"Tty"` + Gpu requests.Integer `name:"Gpu"` + LifecyclePostStartHandlerHttpGetHost string `name:"LifecyclePostStartHandlerHttpGetHost"` + LifecyclePostStartHandlerHttpGetPort requests.Integer `name:"LifecyclePostStartHandlerHttpGetPort"` + LifecyclePostStartHandlerHttpGetPath string `name:"LifecyclePostStartHandlerHttpGetPath"` + LifecyclePostStartHandlerHttpGetScheme string `name:"LifecyclePostStartHandlerHttpGetScheme"` + LifecyclePostStartHandlerHttpGetHttpHeader *[]CreateContainerGroupLifecyclePostStartHandlerHttpGetHttpHeader `name:"LifecyclePostStartHandlerHttpGetHttpHeader" type:"Repeated"` + LifecyclePostStartHandlerExec []string `name:"LifecyclePostStartHandlerExec" type:"Repeated"` + LifecyclePostStartHandlerTcpSocketHost string `name:"LifecyclePostStartHandlerTcpSocketHost"` + LifecyclePostStartHandlerTcpSocketPort requests.Integer `name:"LifecyclePostStartHandlerTcpSocketPort"` + LifecyclePreStopHandlerHttpGetHost string `name:"LifecyclePreStopHandlerHttpGetHost"` + LifecyclePreStopHandlerHttpGetPort requests.Integer `name:"LifecyclePreStopHandlerHttpGetPort"` + LifecyclePreStopHandlerHttpGetPath string `name:"LifecyclePreStopHandlerHttpGetPath"` + LifecyclePreStopHandlerHttpGetScheme string `name:"LifecyclePreStopHandlerHttpGetScheme"` + LifecyclePreStopHandlerHttpGetHttpHeader *[]CreateContainerGroupLifecyclePreStopHandlerHttpGetHttpHeader `name:"LifecyclePreStopHandlerHttpGetHttpHeader" type:"Repeated"` + LifecyclePreStopHandlerExec []string `name:"LifecyclePreStopHandlerExec" type:"Repeated"` + LifecyclePreStopHandlerTcpSocketHost string `name:"LifecyclePreStopHandlerTcpSocketHost"` + LifecyclePreStopHandlerTcpSocketPort requests.Integer `name:"LifecyclePreStopHandlerTcpSocketPort"` + ReadinessProbe CreateContainerGroupReadinessProbe `name:"ReadinessProbe" type:"Struct"` + LivenessProbe CreateContainerGroupLivenessProbe `name:"LivenessProbe" type:"Struct"` + SecurityContext CreateContainerGroupSecurityContext `name:"SecurityContext" type:"Struct"` +} + +type CreateContainerGroupVolume struct { + Name string `name:"Name"` + Type string `name:"Type"` + NFSVolume CreateContainerGroupNFSVolume `name:"NFSVolume" type:"Struct"` + ConfigFileVolume CreateContainerGroupConfigFileVolume `name:"ConfigFileVolume" type:"Struct"` + EmptyDirVolume CreateContainerGroupEmptyDirVolume `name:"EmptyDirVolume" type:"Struct"` + DiskVolume CreateContainerGroupDiskVolume `name:"DiskVolume" type:"Struct"` + FlexVolume CreateContainerGroupFlexVolume `name:"FlexVolume" type:"Struct"` + HostPathVolume CreateContainerGroupHostPathVolume `name:"HostPathVolume" type:"Struct"` +} + +type CreateContainerGroupInitContainer struct { + Name string `name:"Name"` + Image string `name:"Image"` + Cpu requests.Float `name:"Cpu"` + Memory requests.Float `name:"Memory"` + WorkingDir string `name:"WorkingDir"` + ImagePullPolicy string `name:"ImagePullPolicy"` + Command []string `name:"Command" type:"Repeated"` + Arg []string `name:"Arg" type:"Repeated"` + VolumeMount *[]CreateContainerGroupVolumeMount `name:"VolumeMount" type:"Repeated"` + Port *[]CreateContainerGroupPort `name:"Port" type:"Repeated"` + EnvironmentVar *[]CreateContainerGroupEnvironmentVar `name:"EnvironmentVar" type:"Repeated"` + Gpu requests.Integer `name:"Gpu"` + SecurityContext CreateContainerGroupSecurityContext `name:"SecurityContext" type:"Struct"` +} + +type CreateContainerGroupHostAliase struct { + Ip string `name:"Ip"` + Hostname []string `name:"Hostname" type:"Repeated"` +} + +type CreateContainerGroupArn struct { + RoleArn string `name:"RoleArn"` + RoleType string `name:"RoleType"` + AssumeRoleFor string `name:"AssumeRoleFor"` +} + +type CreateContainerGroupDnsConfig struct { + NameServer []string `name:"NameServer"` + Search []string `name:"Search"` + Option *[]CreateContainerGroupOption `name:"Option"` +} + +type CreateContainerGroupSecurityContext struct { + Sysctl *[]CreateContainerGroupSysctl `name:"Sysctl"` +} + +type CreateContainerGroupVolumeMount struct { + MountPath string `name:"MountPath"` + ReadOnly requests.Boolean `name:"ReadOnly"` + Name string `name:"Name"` + SubPath string `name:"SubPath"` +} + +type CreateContainerGroupPort struct { + Protocol string `name:"Protocol"` + Port requests.Integer `name:"Port"` +} + +type CreateContainerGroupEnvironmentVar struct { + Key string `name:"Key"` + Value string `name:"Value"` + FieldRef CreateContainerGroupFieldRef `name:"FieldRef" type:"Struct"` +} + +type CreateContainerGroupFieldRef struct { + FieldPath string `name:"FieldPath"` +} + +type CreateContainerGroupLifecyclePostStartHandlerHttpGetHttpHeader struct { + Name string `name:"Name"` + Value string `name:"Value"` +} + +type CreateContainerGroupLifecyclePreStopHandlerHttpGetHttpHeader struct { + Name string `name:"Name"` + Value string `name:"Value"` +} + +type CreateContainerGroupReadinessProbe struct { + InitialDelaySeconds requests.Integer `name:"InitialDelaySeconds"` + PeriodSeconds requests.Integer `name:"PeriodSeconds"` + SuccessThreshold requests.Integer `name:"SuccessThreshold"` + FailureThreshold requests.Integer `name:"FailureThreshold"` + TimeoutSeconds requests.Integer `name:"TimeoutSeconds"` + HttpGet CreateContainerGroupHttpGet `name:"HttpGet"` + Exec CreateContainerGroupExec `name:"Exec"` + TcpSocket CreateContainerGroupTcpSocket `name:"TcpSocket"` +} + +type CreateContainerGroupHttpGet struct { + Path string `name:"Path"` + Port requests.Integer `name:"Port"` + Scheme string `name:"Scheme"` +} + +type CreateContainerGroupExec struct { + Command []string `name:"Command"` +} + +type CreateContainerGroupTcpSocket struct { + Port requests.Integer `name:"Port"` +} + +type CreateContainerGroupLivenessProbe struct { + InitialDelaySeconds requests.Integer `name:"InitialDelaySeconds"` + PeriodSeconds requests.Integer `name:"PeriodSeconds"` + SuccessThreshold requests.Integer `name:"SuccessThreshold"` + FailureThreshold requests.Integer `name:"FailureThreshold"` + TimeoutSeconds requests.Integer `name:"TimeoutSeconds"` + HttpGet CreateContainerGroupHttpGet `name:"HttpGet"` + Exec CreateContainerGroupExec `name:"Exec"` + TcpSocket CreateContainerGroupTcpSocket `name:"TcpSocket"` +} + +type CreateContainerGroupNFSVolume struct { + Server string `name:"Server"` + Path string `name:"Path"` + ReadOnly requests.Boolean `name:"ReadOnly"` +} + +type CreateContainerGroupConfigFileVolume struct { + ConfigFileToPath *[]CreateContainerGroupConfigFileToPath `name:"ConfigFileToPath"` + DefaultModel requests.Integer `name:"DefaultModel"` +} + +type CreateContainerGroupConfigFileToPath struct { + Content string `name:"Content"` + Path string `name:"Path"` + Mode requests.Integer `name:"Mode"` +} + +type CreateContainerGroupEmptyDirVolume struct { + Medium string `name:"Medium"` +} + +type CreateContainerGroupDiskVolume struct { + DiskId string `name:"DiskId"` + FsType string `name:"FsType"` + DiskSize requests.Integer `name:"DiskSize"` +} + +type CreateContainerGroupFlexVolume struct { + Driver string `name:"Driver"` + FsType string `name:"FsType"` + Options string `name:"Options"` +} + +type CreateContainerGroupHostPathVolume struct { + Type string `name:"Type"` + Path string `name:"Path"` +} + +type CreateContainerGroupOption struct { + Name string `name:"Name"` + Value string `name:"Value"` +} + +type CreateContainerGroupSysctl struct { + Name string `name:"Name"` + Value string `name:"Value"` +} + +// CreateContainerGroupResponse is the response struct for api CreateContainerGroup +type CreateContainerGroupResponse struct { + *responses.BaseResponse + RequestId string `json:"RequestId" xml:"RequestId"` + ContainerGroupId string `json:"ContainerGroupId" xml:"ContainerGroupId"` +} + +// CreateCreateContainerGroupRequest creates a request to invoke CreateContainerGroup API +func CreateCreateContainerGroupRequest() (request *CreateContainerGroupRequest) { + request = &CreateContainerGroupRequest{ + RpcRequest: &requests.RpcRequest{}, + } + request.InitWithApiInfo("Eci", "2018-08-08", "CreateContainerGroup", "eci", "openAPI") + return +} + +// CreateCreateContainerGroupResponse creates a response to parse from CreateContainerGroup response +func CreateCreateContainerGroupResponse() (response *CreateContainerGroupResponse) { + response = &CreateContainerGroupResponse{ + BaseResponse: &responses.BaseResponse{}, + } + return +} diff --git a/adaptor/pod/server/ali/delete_container_group.go b/adaptor/pod/server/ali/delete_container_group.go new file mode 100644 index 00000000..b97bf646 --- /dev/null +++ b/adaptor/pod/server/ali/delete_container_group.go @@ -0,0 +1,124 @@ +//Licensed under the Apache License, Version 2.0 (the "License"); +//you may not use this file except in compliance with the License. +//You may obtain a copy of the License at +// +//http://www.apache.org/licenses/LICENSE-2.0 +// +//Unless required by applicable law or agreed to in writing, software +//distributed under the License is distributed on an "AS IS" BASIS, +//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +//See the License for the specific language governing permissions and +//limitations under the License. +// +// Code generated by Alibaba Cloud SDK Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +package ali + +import ( + "errors" + "flag" + "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests" + "github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses" + "github.com/golang/glog" + "gitlink.org.cn/JCCE/PCM/adaptor/pod/server" + "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" +) + +// DeleteContainerGroup invokes the eci.DeleteContainerGroup API synchronously +// api document: https://help.aliyun.com/api/eci/deletecontainergroup.html +func DeleteContainerGroup(request *DeleteContainerGroupRequest) (response *DeleteContainerGroupResponse, err error) { + + provider := pbtenant.CloudProvider(request.ProviderId) + var configFile string + flag.StringVar(&configFile, "conf", "configs/config.yaml", "config.yaml") + flag.Parse() + defer glog.Flush() + + if err := tenanter.LoadCloudConfigsFromFile(configFile); err != nil { + if !errors.Is(err, tenanter.ErrLoadTenanterFileEmpty) { + glog.Fatalf("tenanter.LoadCloudConfigsFromFile error %+v", err) + } + glog.Warningf("tenanter.LoadCloudConfigsFromFile empty file path %s", configFile) + } + + glog.Infof("load tenant from file finished") + var regionId int32 + switch request.ProviderId { + case 0: + regionId, _ = tenanter.GetAliRegionId(request.RegionId) + case 1: + regionId, _ = tenanter.GetTencentRegionId(request.RegionId) + case 2: + regionId, _ = tenanter.GetHuaweiRegionId(request.RegionId) + case 3: + regionId, _ = tenanter.GetK8SRegionId(request.RegionId) + } + podId := request.ContainerGroupId + podName := request.ContainerGroupName + + requestPCM := &pbpod.DeletePodReq{ + RequestSource: "ali", + Provider: provider, + AccountName: request.AccountName, + PodId: podId, + PodName: podName, + Namespace: request.Namespace, + RegionId: regionId, + } + + resp, err := server.DeletePod(nil, requestPCM) + + response = &DeleteContainerGroupResponse{ + BaseResponse: nil, + RequestId: resp.RequestId, + } + + return response, err + +} + +// DeleteContainerGroupRequest is the request struct for api DeleteContainerGroup +type DeleteContainerGroupRequest struct { + *requests.RpcRequest + /*********PCM param************/ + RequestSource string `position:"Query" name:"RequestSource"` + ProviderId int32 `position:"Query" name:"ProviderId"` + AccountName string `position:"Query" name:"AccountName"` + Namespace string `position:"Query" name:"Namespace"` + ContainerGroupName string `position:"Query" name:"ContainerGroupName"` + /*********PCM param************/ + OwnerId requests.Integer `position:"Query" name:"OwnerId"` + ResourceOwnerAccount string `position:"Query" name:"ResourceOwnerAccount"` + ResourceOwnerId requests.Integer `position:"Query" name:"ResourceOwnerId"` + OwnerAccount string `position:"Query" name:"OwnerAccount"` + RegionId string `position:"Query" name:"RegionId"` + ContainerGroupId string `position:"Query" name:"ContainerGroupId"` + ClientToken string `position:"Query" name:"ClientToken"` + VkClientVersion string `position:"Query" name:"VkClientVersion"` +} + +// DeleteContainerGroupResponse is the response struct for api DeleteContainerGroup +type DeleteContainerGroupResponse struct { + *responses.BaseResponse + RequestId string `json:"RequestId" xml:"RequestId"` +} + +// CreateDeleteContainerGroupRequest creates a request to invoke DeleteContainerGroup API +func CreateDeleteContainerGroupRequest() (request *DeleteContainerGroupRequest) { + request = &DeleteContainerGroupRequest{ + RpcRequest: &requests.RpcRequest{}, + } + request.InitWithApiInfo("Eci", "2018-08-08", "DeleteContainerGroup", "eci", "openAPI") + return +} + +// CreateDeleteContainerGroupResponse creates a response to parse from DeleteContainerGroup response +func CreateDeleteContainerGroupResponse() (response *DeleteContainerGroupResponse) { + response = &DeleteContainerGroupResponse{ + BaseResponse: &responses.BaseResponse{}, + } + return +} diff --git a/adaptor/pod/server/ali/describe_container_groups.go b/adaptor/pod/server/ali/describe_container_groups.go new file mode 100644 index 00000000..399bfe7e --- /dev/null +++ b/adaptor/pod/server/ali/describe_container_groups.go @@ -0,0 +1,314 @@ +package ali + +import ( + "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests" + "github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses" + "gitlink.org.cn/JCCE/PCM/adaptor/pod/server" + "gitlink.org.cn/JCCE/PCM/lan_trans/idl/pbpod" + "gitlink.org.cn/JCCE/PCM/lan_trans/idl/pbtenant" +) + +// DescribeContainerGroups invokes the eci.DescribeContainerGroups API synchronously +// api document: https://help.aliyun.com/api/eci/describecontainergroups.html +func DescribeContainerGroups(request *DescribeContainerGroupsRequest) (response *DescribeContainerGroupsResponse, err error) { + + provider := pbtenant.CloudProvider(request.ProviderId) + containerGroups := make([]DescribeContainerGroupsContainerGroup0, 0) + //trans Ali request to PCM request + requestPCM := &pbpod.ListPodReq{ + RequestSource: "ali", + Provider: provider, + Namespace: "pcm", + } + + resp, err := server.ListPod(nil, requestPCM) + + //trans PCM response pod set to Ali ContainerGroup set + for k := range resp.Pods { + podId := resp.Pods[k].PodId + podName := resp.Pods[k].PodName + + containerGroup := new(DescribeContainerGroupsContainerGroup0) + containerGroup.ContainerGroupName = podName + containerGroup.ContainerGroupId = podId + + containerGroups = append(containerGroups, *containerGroup) + + } + + response = &DescribeContainerGroupsResponse{ + BaseResponse: nil, + RequestId: "", + NextToken: "", + TotalCount: 0, + ContainerGroups: containerGroups, + } + + return response, nil +} + +// DescribeContainerGroupsRequest is the request struct for api DescribeContainerGroups +type DescribeContainerGroupsRequest struct { + *requests.RpcRequest + /*********PCM param************/ + RequestSource string `position:"Query" name:"RequestSource"` + ProviderId int32 `position:"Query" name:"ProviderId"` + AccountName string `position:"Query" name:"AccountName"` + Namespace string `position:"Query" name:"Namespace"` + /*********PCM param************/ + OwnerId requests.Integer `position:"Query" name:"OwnerId"` + ResourceOwnerAccount string `position:"Query" name:"ResourceOwnerAccount"` + ResourceOwnerId requests.Integer `position:"Query" name:"ResourceOwnerId"` + OwnerAccount string `position:"Query" name:"OwnerAccount"` + RegionId string `position:"Query" name:"RegionId"` + ZoneId string `position:"Query" name:"ZoneId"` + VSwitchId string `position:"Query" name:"VSwitchId"` + NextToken string `position:"Query" name:"NextToken"` + Limit requests.Integer `position:"Query" name:"Limit"` + Tag *[]DescribeContainerGroupsTag `position:"Query" name:"Tag" type:"Repeated"` + ContainerGroupIds string `position:"Query" name:"ContainerGroupIds"` + ContainerGroupName string `position:"Query" name:"ContainerGroupName"` + Status string `position:"Query" name:"Status"` + VkClientVersion string `position:"Query" name:"VkClientVersion"` + ResourceGroupId string `position:"Query" name:"ResourceGroupId"` + WithEvent requests.Boolean `position:"Query" name:"WithEvent"` +} + +type DescribeContainerGroupsTag struct { + Key string `name:"Key"` + Value string `name:"Value"` +} + +// DescribeContainerGroupsResponse is the response struct for api DescribeContainerGroups +type DescribeContainerGroupsResponse struct { + *responses.BaseResponse + RequestId string `json:"RequestId" xml:"RequestId"` + NextToken string `json:"NextToken" xml:"NextToken"` + TotalCount int `json:"TotalCount" xml:"TotalCount"` + ContainerGroups []DescribeContainerGroupsContainerGroup0 `json:"ContainerGroups" xml:"ContainerGroups"` +} + +type DescribeContainerGroupsContainerGroup0 struct { + ContainerGroupId string `json:"ContainerGroupId" xml:"ContainerGroupId"` + ContainerGroupName string `json:"ContainerGroupName" xml:"ContainerGroupName"` + RegionId string `json:"RegionId" xml:"RegionId"` + ZoneId string `json:"ZoneId" xml:"ZoneId"` + Memory float32 `json:"Memory" xml:"Memory"` + Cpu float32 `json:"Cpu" xml:"Cpu"` + VSwitchId string `json:"VSwitchId" xml:"VSwitchId"` + SecurityGroupId string `json:"SecurityGroupId" xml:"SecurityGroupId"` + RestartPolicy string `json:"RestartPolicy" xml:"RestartPolicy"` + IntranetIp string `json:"IntranetIp" xml:"IntranetIp"` + Status string `json:"Status" xml:"Status"` + InternetIp string `json:"InternetIp" xml:"InternetIp"` + CreationTime string `json:"CreationTime" xml:"CreationTime"` + SucceededTime string `json:"SucceededTime" xml:"SucceededTime"` + EniInstanceId string `json:"EniInstanceId" xml:"EniInstanceId"` + InstanceType string `json:"InstanceType" xml:"InstanceType"` + ExpiredTime string `json:"ExpiredTime" xml:"ExpiredTime"` + FailedTime string `json:"FailedTime" xml:"FailedTime"` + RamRoleName string `json:"RamRoleName" xml:"RamRoleName"` + Ipv6Address string `json:"Ipv6Address" xml:"Ipv6Address"` + VpcId string `json:"VpcId" xml:"VpcId"` + Discount int `json:"Discount" xml:"Discount"` + ResourceGroupId string `json:"ResourceGroupId" xml:"ResourceGroupId"` + Tags []DescribeContainerGroupsLabel1 `json:"Tags" xml:"Tags"` + Events []DescribeContainerGroupsEvent1 `json:"Events" xml:"Events"` + Containers []DescribeContainerGroupsContainer1 `json:"Containers" xml:"Containers"` + Volumes []DescribeContainerGroupsVolume1 `json:"Volumes" xml:"Volumes"` + InitContainers []DescribeContainerGroupsContainer1 `json:"InitContainers" xml:"InitContainers"` + HostAliases []DescribeContainerGroupsHostAliase1 `json:"HostAliases" xml:"HostAliases"` + DnsConfig DescribeContainerGroupsDnsConfig1 `json:"DnsConfig" xml:"DnsConfig"` + EciSecurityContext DescribeContainerGroupsEciSecurityContext1 `json:"EciSecurityContext" xml:"EciSecurityContext"` +} + +type DescribeContainerGroupsLabel1 struct { + Key string `json:"Key" xml:"Key"` + Value string `json:"Value" xml:"Value"` +} + +type DescribeContainerGroupsEvent1 struct { + Count int `json:"Count" xml:"Count"` + Type string `json:"Type" xml:"Type"` + Name string `json:"Name" xml:"Name"` + Message string `json:"Message" xml:"Message"` + FirstTimestamp string `json:"FirstTimestamp" xml:"FirstTimestamp"` + LastTimestamp string `json:"LastTimestamp" xml:"LastTimestamp"` + Reason string `json:"Reason" xml:"Reason"` +} + +type DescribeContainerGroupsContainer1 struct { + Name string `json:"Name" xml:"Name"` + Image string `json:"Image" xml:"Image"` + Memory float32 `json:"Memory" xml:"Memory"` + Cpu float32 `json:"Cpu" xml:"Cpu"` + RestartCount int `json:"RestartCount" xml:"RestartCount"` + WorkingDir string `json:"WorkingDir" xml:"WorkingDir"` + ImagePullPolicy string `json:"ImagePullPolicy" xml:"ImagePullPolicy"` + Ready bool `json:"Ready" xml:"Ready"` + Gpu int `json:"Gpu" xml:"Gpu"` + Stdin bool `json:"Stdin" xml:"Stdin"` + StdinOnce bool `json:"StdinOnce" xml:"StdinOnce"` + Tty bool `json:"Tty" xml:"Tty"` + VolumeMounts []DescribeContainerGroupsVolumeMount2 `json:"VolumeMounts" xml:"VolumeMounts"` + Ports []DescribeContainerGroupsPort2 `json:"Ports" xml:"Ports"` + EnvironmentVars []DescribeContainerGroupsEnvironmentVar2 `json:"EnvironmentVars" xml:"EnvironmentVars"` + Commands []string `json:"Commands" xml:"Commands"` + Args []string `json:"Args" xml:"Args"` + PreviousState DescribeContainerGroupsPreviousState2 `json:"PreviousState" xml:"PreviousState"` + CurrentState DescribeContainerGroupsCurrentState2 `json:"CurrentState" xml:"CurrentState"` + ReadinessProbe DescribeContainerGroupsReadinessProbe2 `json:"ReadinessProbe" xml:"ReadinessProbe"` + LivenessProbe DescribeContainerGroupsLivenessProbe2 `json:"LivenessProbe" xml:"LivenessProbe"` + SecurityContext DescribeContainerGroupsSecurityContext2 `json:"SecurityContext" xml:"SecurityContext"` +} + +type DescribeContainerGroupsVolumeMount2 struct { + Name string `json:"Name" xml:"Name"` + MountPath string `json:"MountPath" xml:"MountPath"` + ReadOnly bool `json:"ReadOnly" xml:"ReadOnly"` +} + +type DescribeContainerGroupsPort2 struct { + Port int `json:"Port" xml:"Port"` + Protocol string `json:"Protocol" xml:"Protocol"` +} + +type DescribeContainerGroupsEnvironmentVar2 struct { + Key string `json:"Key" xml:"Key"` + Value string `json:"Value" xml:"Value"` + ValueFrom DescribeContainerGroupsValueFrom3 `json:"ValueFrom" xml:"ValueFrom"` +} + +type DescribeContainerGroupsValueFrom3 struct { + FieldRef DescribeContainerGroupsFieldRef4 `json:"FieldRef" xml:"FieldRef"` +} + +type DescribeContainerGroupsFieldRef4 struct { + FieldPath string `json:"FieldPath" xml:"FieldPath"` +} + +type DescribeContainerGroupsPreviousState2 struct { + State string `json:"State" xml:"State"` + DetailStatus string `json:"DetailStatus" xml:"DetailStatus"` + ExitCode int `json:"ExitCode" xml:"ExitCode"` + StartTime string `json:"StartTime" xml:"StartTime"` + FinishTime string `json:"FinishTime" xml:"FinishTime"` + Reason string `json:"Reason" xml:"Reason"` + Message string `json:"Message" xml:"Message"` + Signal int `json:"Signal" xml:"Signal"` +} + +type DescribeContainerGroupsCurrentState2 struct { + State string `json:"State" xml:"State"` + DetailStatus string `json:"DetailStatus" xml:"DetailStatus"` + ExitCode int `json:"ExitCode" xml:"ExitCode"` + StartTime string `json:"StartTime" xml:"StartTime"` + FinishTime string `json:"FinishTime" xml:"FinishTime"` + Reason string `json:"Reason" xml:"Reason"` + Message string `json:"Message" xml:"Message"` + Signal int `json:"Signal" xml:"Signal"` +} + +type DescribeContainerGroupsReadinessProbe2 struct { + InitialDelaySeconds int `json:"InitialDelaySeconds" xml:"InitialDelaySeconds"` + PeriodSeconds int `json:"PeriodSeconds" xml:"PeriodSeconds"` + TimeoutSeconds int `json:"TimeoutSeconds" xml:"TimeoutSeconds"` + SuccessThreshold int `json:"SuccessThreshold" xml:"SuccessThreshold"` + FailureThreshold int `json:"FailureThreshold" xml:"FailureThreshold"` + Execs []string `json:"Execs" xml:"Execs"` + HttpGet DescribeContainerGroupsHttpGet3 `json:"HttpGet" xml:"HttpGet"` + TcpSocket DescribeContainerGroupsTcpSocket3 `json:"TcpSocket" xml:"TcpSocket"` +} + +type DescribeContainerGroupsHttpGet3 struct { + Path string `json:"Path" xml:"Path"` + Port int `json:"Port" xml:"Port"` + Scheme string `json:"Scheme" xml:"Scheme"` +} + +type DescribeContainerGroupsTcpSocket3 struct { + Host string `json:"Host" xml:"Host"` + Port int `json:"Port" xml:"Port"` +} + +type DescribeContainerGroupsLivenessProbe2 struct { + InitialDelaySeconds int `json:"InitialDelaySeconds" xml:"InitialDelaySeconds"` + PeriodSeconds int `json:"PeriodSeconds" xml:"PeriodSeconds"` + TimeoutSeconds int `json:"TimeoutSeconds" xml:"TimeoutSeconds"` + SuccessThreshold int `json:"SuccessThreshold" xml:"SuccessThreshold"` + FailureThreshold int `json:"FailureThreshold" xml:"FailureThreshold"` + Execs []string `json:"Execs" xml:"Execs"` + HttpGet DescribeContainerGroupsHttpGet3 `json:"HttpGet" xml:"HttpGet"` + TcpSocket DescribeContainerGroupsTcpSocket3 `json:"TcpSocket" xml:"TcpSocket"` +} + +type DescribeContainerGroupsSecurityContext2 struct { + ReadOnlyRootFilesystem bool `json:"ReadOnlyRootFilesystem" xml:"ReadOnlyRootFilesystem"` + RunAsUser int64 `json:"RunAsUser" xml:"RunAsUser"` + Capability DescribeContainerGroupsCapability3 `json:"Capability" xml:"Capability"` +} + +type DescribeContainerGroupsCapability3 struct { + Adds []string `json:"Adds" xml:"Adds"` +} + +type DescribeContainerGroupsVolume1 struct { + Type string `json:"Type" xml:"Type"` + Name string `json:"Name" xml:"Name"` + NFSVolumePath string `json:"NFSVolumePath" xml:"NFSVolumePath"` + NFSVolumeServer string `json:"NFSVolumeServer" xml:"NFSVolumeServer"` + NFSVolumeReadOnly bool `json:"NFSVolumeReadOnly" xml:"NFSVolumeReadOnly"` + DiskVolumeDiskId string `json:"DiskVolumeDiskId" xml:"DiskVolumeDiskId"` + DiskVolumeFsType string `json:"DiskVolumeFsType" xml:"DiskVolumeFsType"` + FlexVolumeDriver string `json:"FlexVolumeDriver" xml:"FlexVolumeDriver"` + FlexVolumeFsType string `json:"FlexVolumeFsType" xml:"FlexVolumeFsType"` + FlexVolumeOptions string `json:"FlexVolumeOptions" xml:"FlexVolumeOptions"` + ConfigFileVolumeConfigFileToPaths []DescribeContainerGroupsConfigFileVolumeConfigFileToPath2 `json:"ConfigFileVolumeConfigFileToPaths" xml:"ConfigFileVolumeConfigFileToPaths"` +} + +type DescribeContainerGroupsConfigFileVolumeConfigFileToPath2 struct { + Content string `json:"Content" xml:"Content"` + Path string `json:"Path" xml:"Path"` +} + +type DescribeContainerGroupsHostAliase1 struct { + Ip string `json:"Ip" xml:"Ip"` + Hostnames []string `json:"Hostnames" xml:"Hostnames"` +} + +type DescribeContainerGroupsDnsConfig1 struct { + Options []DescribeContainerGroupsOption2 `json:"Options" xml:"Options"` + NameServers []string `json:"NameServers" xml:"NameServers"` + Searches []string `json:"Searches" xml:"Searches"` +} + +type DescribeContainerGroupsOption2 struct { + Name string `json:"Name" xml:"Name"` + Value string `json:"Value" xml:"Value"` +} + +type DescribeContainerGroupsEciSecurityContext1 struct { + Sysctls []DescribeContainerGroupsSysctl2 `json:"Sysctls" xml:"Sysctls"` +} + +type DescribeContainerGroupsSysctl2 struct { + Name string `json:"Name" xml:"Name"` + Value string `json:"Value" xml:"Value"` +} + +// CreateDescribeContainerGroupsRequest creates a request to invoke DescribeContainerGroups API +func CreateDescribeContainerGroupsRequest() (request *DescribeContainerGroupsRequest) { + request = &DescribeContainerGroupsRequest{ + RpcRequest: &requests.RpcRequest{}, + } + request.InitWithApiInfo("Eci", "2018-08-08", "DescribeContainerGroups", "eci", "openAPI") + return +} + +// CreateDescribeContainerGroupsResponse creates a response to parse from DescribeContainerGroups response +func CreateDescribeContainerGroupsResponse() (response *DescribeContainerGroupsResponse) { + response = &DescribeContainerGroupsResponse{ + BaseResponse: &responses.BaseResponse{}, + } + return +} diff --git a/adaptor/pod/server/ali/update_container_group.go b/adaptor/pod/server/ali/update_container_group.go new file mode 100644 index 00000000..29f4cec2 --- /dev/null +++ b/adaptor/pod/server/ali/update_container_group.go @@ -0,0 +1,288 @@ +//Licensed under the Apache License, Version 2.0 (the "License"); +//you may not use this file except in compliance with the License. +//You may obtain a copy of the License at +// +//http://www.apache.org/licenses/LICENSE-2.0 +// +//Unless required by applicable law or agreed to in writing, software +//distributed under the License is distributed on an "AS IS" BASIS, +//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +//See the License for the specific language governing permissions and +//limitations under the License. +// +// Code generated by Alibaba Cloud SDK Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +package ali + +import ( + "errors" + "flag" + "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests" + "github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses" + "github.com/golang/glog" + "gitlink.org.cn/JCCE/PCM/adaptor/pod/server" + "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" +) + +// UpdateContainerGroup invokes the eci.UpdateContainerGroup API synchronously +// api document: https://help.aliyun.com/api/eci/updatecontainergroup.html +func UpdateContainerGroup(request *UpdateContainerGroupRequest) (response *UpdateContainerGroupResponse, err error) { + + provider := pbtenant.CloudProvider(request.ProviderId) + var configFile string + flag.StringVar(&configFile, "conf", "configs/config.yaml", "config.yaml") + flag.Parse() + defer glog.Flush() + + if err := tenanter.LoadCloudConfigsFromFile(configFile); err != nil { + if !errors.Is(err, tenanter.ErrLoadTenanterFileEmpty) { + glog.Fatalf("tenanter.LoadCloudConfigsFromFile error %+v", err) + } + glog.Warningf("tenanter.LoadCloudConfigsFromFile empty file path %s", configFile) + } + + glog.Infof("load tenant from file finished") + var regionId int32 + switch request.ProviderId { + case 0: + regionId, _ = tenanter.GetAliRegionId(request.RegionId) + case 1: + regionId, _ = tenanter.GetTencentRegionId(request.RegionId) + case 2: + regionId, _ = tenanter.GetHuaweiRegionId(request.RegionId) + case 3: + regionId, _ = tenanter.GetK8SRegionId(request.RegionId) + } + containers := *request.Container + + requestPCM := &pbpod.UpdatePodReq{ + RequestSource: "ali", + Provider: provider, + AccountName: request.AccountName, + PodId: request.ContainerGroupId, + PodName: request.ContainerGroupName, + Namespace: request.Namespace, + RegionId: regionId, + ContainerImage: containers[0].Image, + ContainerName: containers[0].Name, + CpuPod: string(containers[0].Cpu), + MemoryPod: string(containers[0].Memory), + RestartPolicy: request.RestartPolicy, + Labels: "", + } + + resp, err := server.UpdatePod(nil, requestPCM) + + response = &UpdateContainerGroupResponse{ + BaseResponse: nil, + RequestId: resp.RequestId, + } + + return response, err +} + +// UpdateContainerGroupRequest is the request struct for api UpdateContainerGroup +type UpdateContainerGroupRequest struct { + *requests.RpcRequest + /*********PCM param************/ + RequestSource string `position:"Query" name:"RequestSource"` + ProviderId int32 `position:"Query" name:"ProviderId"` + AccountName string `position:"Query" name:"AccountName"` + Namespace string `position:"Query" name:"Namespace"` + ContainerGroupName string `position:"Query" name:"ContainerGroupName"` + /*********PCM param************/ + OwnerId requests.Integer `position:"Query" name:"OwnerId"` + ResourceOwnerAccount string `position:"Query" name:"ResourceOwnerAccount"` + ResourceOwnerId requests.Integer `position:"Query" name:"ResourceOwnerId"` + OwnerAccount string `position:"Query" name:"OwnerAccount"` + RegionId string `position:"Query" name:"RegionId"` + ContainerGroupId string `position:"Query" name:"ContainerGroupId"` + RestartPolicy string `position:"Query" name:"RestartPolicy"` + Tag *[]UpdateContainerGroupTag `position:"Query" name:"Tag" type:"Repeated"` + Volume *[]UpdateContainerGroupVolume `position:"Query" name:"Volume" type:"Repeated"` + Container *[]UpdateContainerGroupContainer `position:"Query" name:"Container" type:"Repeated"` + InitContainer *[]UpdateContainerGroupInitContainer `position:"Query" name:"InitContainer" type:"Repeated"` + ImageRegistryCredential *[]UpdateContainerGroupImageRegistryCredential `position:"Query" name:"ImageRegistryCredential" type:"Repeated"` + ClientToken string `position:"Query" name:"ClientToken"` + Cpu requests.Float `position:"Query" name:"Cpu"` + Memory requests.Float `position:"Query" name:"Memory"` + DnsConfig UpdateContainerGroupDnsConfig `position:"Query" name:"DnsConfig" type:"Struct"` +} + +type UpdateContainerGroupTag struct { + Key string `name:"Key"` + Value string `name:"Value"` +} + +type UpdateContainerGroupVolume struct { + Name string `name:"Name"` + Type string `name:"Type"` + NFSVolume UpdateContainerGroupNFSVolume `name:"NFSVolume" type:"Struct"` + ConfigFileVolume UpdateContainerGroupConfigFileVolume `name:"ConfigFileVolume" type:"Struct"` + EmptyDirVolume UpdateContainerGroupEmptyDirVolume `name:"EmptyDirVolume" type:"Struct"` +} + +type UpdateContainerGroupContainer struct { + Name string `name:"Name"` + Image string `name:"Image"` + Cpu requests.Float `name:"Cpu"` + Memory requests.Float `name:"Memory"` + WorkingDir string `name:"WorkingDir"` + ImagePullPolicy string `name:"ImagePullPolicy"` + Stdin requests.Boolean `name:"Stdin"` + StdinOnce requests.Boolean `name:"StdinOnce"` + Tty requests.Boolean `name:"Tty"` + Command []string `name:"Command" type:"Repeated"` + Arg []string `name:"Arg" type:"Repeated"` + EnvironmentVar []string `name:"EnvironmentVar" type:"Repeated"` + Port []string `name:"Port" type:"Repeated"` + VolumeMount []string `name:"VolumeMount" type:"Repeated"` + Gpu requests.Integer `name:"Gpu"` + ReadinessProbe UpdateContainerGroupReadinessProbe `name:"ReadinessProbe" type:"Struct"` + LivenessProbe UpdateContainerGroupLivenessProbe `name:"LivenessProbe" type:"Struct"` + SecurityContext UpdateContainerGroupSecurityContext `name:"SecurityContext" type:"Struct"` +} + +type UpdateContainerGroupInitContainer struct { + Name string `name:"Name"` + Image string `name:"Image"` + Cpu requests.Float `name:"Cpu"` + Memory requests.Float `name:"Memory"` + WorkingDir string `name:"WorkingDir"` + ImagePullPolicy string `name:"ImagePullPolicy"` + Stdin requests.Boolean `name:"Stdin"` + StdinOnce requests.Boolean `name:"StdinOnce"` + Tty requests.Boolean `name:"Tty"` + Command []string `name:"Command" type:"Repeated"` + Arg []string `name:"Arg" type:"Repeated"` + EnvironmentVar *[]UpdateContainerGroupEnvironmentVar `name:"EnvironmentVar" type:"Repeated"` + Port *[]UpdateContainerGroupPort `name:"Port" type:"Repeated"` + VolumeMount *[]UpdateContainerGroupVolumeMount `name:"VolumeMount" type:"Repeated"` + Gpu requests.Integer `name:"Gpu"` + SecurityContext UpdateContainerGroupSecurityContext `name:"SecurityContext" type:"Struct"` +} + +type UpdateContainerGroupImageRegistryCredential struct { + Server string `name:"Server"` + UserName string `name:"UserName"` + Password string `name:"Password"` +} + +type UpdateContainerGroupDnsConfig struct { + NameServer []string `name:"NameServer"` + Search []string `name:"Search"` + Option *[]UpdateContainerGroupOption `name:"Option"` +} + +type UpdateContainerGroupNFSVolume struct { + Server string `name:"Server"` + Path string `name:"Path"` + ReadOnly requests.Boolean `name:"ReadOnly"` +} + +type UpdateContainerGroupConfigFileVolume struct { + ConfigFileToPath *[]UpdateContainerGroupConfigFileToPath `name:"ConfigFileToPath"` +} + +type UpdateContainerGroupConfigFileToPath struct { + Content string `name:"Content"` + Path string `name:"Path"` +} + +type UpdateContainerGroupEmptyDirVolume struct { + Medium string `name:"Medium"` +} + +type UpdateContainerGroupReadinessProbe struct { + InitialDelaySeconds requests.Integer `name:"InitialDelaySeconds"` + PeriodSeconds requests.Integer `name:"PeriodSeconds"` + SuccessThreshold requests.Integer `name:"SuccessThreshold"` + FailureThreshold requests.Integer `name:"FailureThreshold"` + TimeoutSeconds requests.Integer `name:"TimeoutSeconds"` + TcpSocket UpdateContainerGroupTcpSocket `name:"TcpSocket"` + Exec UpdateContainerGroupExec `name:"Exec"` + HttpGet UpdateContainerGroupHttpGet `name:"HttpGet"` +} + +type UpdateContainerGroupTcpSocket struct { + Port requests.Integer `name:"Port"` +} + +type UpdateContainerGroupExec struct { + Command []string `name:"Command"` +} + +type UpdateContainerGroupHttpGet struct { + Path string `name:"Path"` + Port requests.Integer `name:"Port"` + Scheme string `name:"Scheme"` +} + +type UpdateContainerGroupLivenessProbe struct { + InitialDelaySeconds requests.Integer `name:"InitialDelaySeconds"` + PeriodSeconds requests.Integer `name:"PeriodSeconds"` + SuccessThreshold requests.Integer `name:"SuccessThreshold"` + FailureThreshold requests.Integer `name:"FailureThreshold"` + TimeoutSeconds requests.Integer `name:"TimeoutSeconds"` + TcpSocket UpdateContainerGroupTcpSocket `name:"TcpSocket"` + Exec UpdateContainerGroupExec `name:"Exec"` + HttpGet UpdateContainerGroupHttpGet `name:"HttpGet"` +} + +type UpdateContainerGroupSecurityContext struct { + ReadOnlyRootFilesystem requests.Boolean `name:"ReadOnlyRootFilesystem"` + RunAsUser requests.Integer `name:"RunAsUser"` + Capability UpdateContainerGroupCapability `name:"Capability"` +} + +type UpdateContainerGroupCapability struct { + Add []string `name:"Add"` +} + +type UpdateContainerGroupEnvironmentVar struct { + Key string `name:"Key"` + Value string `name:"Value"` +} + +type UpdateContainerGroupPort struct { + Port requests.Integer `name:"Port"` + Protocol string `name:"Protocol"` +} + +type UpdateContainerGroupVolumeMount struct { + Name string `name:"Name"` + MountPath string `name:"MountPath"` + SubPath string `name:"SubPath"` + ReadOnly requests.Boolean `name:"ReadOnly"` +} + +type UpdateContainerGroupOption struct { + Name string `name:"Name"` + Value string `name:"Value"` +} + +// UpdateContainerGroupResponse is the response struct for api UpdateContainerGroup +type UpdateContainerGroupResponse struct { + *responses.BaseResponse + RequestId string `json:"RequestId" xml:"RequestId"` +} + +// CreateUpdateContainerGroupRequest creates a request to invoke UpdateContainerGroup API +func CreateUpdateContainerGroupRequest() (request *UpdateContainerGroupRequest) { + request = &UpdateContainerGroupRequest{ + RpcRequest: &requests.RpcRequest{}, + } + request.InitWithApiInfo("Eci", "2018-08-08", "UpdateContainerGroup", "eci", "openAPI") + return +} + +// CreateUpdateContainerGroupResponse creates a response to parse from UpdateContainerGroup response +func CreateUpdateContainerGroupResponse() (response *UpdateContainerGroupResponse) { + response = &UpdateContainerGroupResponse{ + BaseResponse: &responses.BaseResponse{}, + } + return +} diff --git a/adaptor/pod_adaptor/server/pod/pod.go b/adaptor/pod/server/pod.go similarity index 79% rename from adaptor/pod_adaptor/server/pod/pod.go rename to adaptor/pod/server/pod.go index 50ae6ad7..603aafe5 100644 --- a/adaptor/pod_adaptor/server/pod/pod.go +++ b/adaptor/pod/server/pod.go @@ -1,11 +1,12 @@ -package pod +package server import ( "context" + "flag" "fmt" "sync" - "gitlink.org.cn/JCCE/PCM/adaptor/pod_adaptor/service/poder" + "gitlink.org.cn/JCCE/PCM/adaptor/pod/service" "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" @@ -125,7 +126,22 @@ func DeletePod(ctx context.Context, req *pbpod.DeletePodReq) (*pbpod.DeletePodRe var ( pod poder.Poder ) + //pcm adk过来的请求需要从用户本地读取配置文件 + if len(req.RequestSource) > 0 { + var configFile string + flag.StringVar(&configFile, "conf", "configs/config.yaml", "config.yaml") + flag.Parse() + defer glog.Flush() + if err := tenanter.LoadCloudConfigsFromFile(configFile); err != nil { + if !errors.Is(err, tenanter.ErrLoadTenanterFileEmpty) { + glog.Fatalf("tenanter.LoadCloudConfigsFromFile error %+v", err) + } + glog.Warningf("tenanter.LoadCloudConfigsFromFile empty file path %s", configFile) + } + + glog.Infof("load tenant from file finished") + } tenanters, err := tenanter.GetTenanters(req.Provider) if err != nil { return nil, errors.WithMessage(err, "getTenanters error") @@ -152,7 +168,22 @@ func UpdatePod(ctx context.Context, req *pbpod.UpdatePodReq) (*pbpod.UpdatePodRe var ( pod poder.Poder ) + //pcm adk过来的请求需要从用户本地读取配置文件 + if len(req.RequestSource) > 0 { + var configFile string + flag.StringVar(&configFile, "conf", "configs/config.yaml", "config.yaml") + flag.Parse() + defer glog.Flush() + if err := tenanter.LoadCloudConfigsFromFile(configFile); err != nil { + if !errors.Is(err, tenanter.ErrLoadTenanterFileEmpty) { + glog.Fatalf("tenanter.LoadCloudConfigsFromFile error %+v", err) + } + glog.Warningf("tenanter.LoadCloudConfigsFromFile empty file path %s", configFile) + } + + glog.Infof("load tenant from file finished") + } tenanters, err := tenanter.GetTenanters(req.Provider) if err != nil { return nil, errors.WithMessage(err, "getTenanters error") @@ -204,15 +235,30 @@ func ListPodDetail(ctx context.Context, req *pbpod.ListPodDetailReq) (*pbpod.Lis func ListPod(ctx context.Context, req *pbpod.ListPodReq) (*pbpod.ListPodResp, error) { var ( - wg sync.WaitGroup - mutex sync.Mutex - pods []*pbpod.PodInstance + wg sync.WaitGroup + mutex sync.Mutex + pods []*pbpod.PodInstance + tenanters []tenanter.Tenanter ) + //pcm adk过来的请求需要从用户本地读取配置文件 + if len(req.RequestSource) > 0 { + var configFile string + flag.StringVar(&configFile, "conf", "configs/config.yaml", "config.yaml") + flag.Parse() + defer glog.Flush() - tenanters, err := tenanter.GetTenanters(req.Provider) - if err != nil { - return nil, errors.WithMessage(err, "getTenanters error") + if err := tenanter.LoadCloudConfigsFromFile(configFile); err != nil { + if !errors.Is(err, tenanter.ErrLoadTenanterFileEmpty) { + glog.Fatalf("tenanter.LoadCloudConfigsFromFile error %+v", err) + } + glog.Warningf("tenanter.LoadCloudConfigsFromFile empty file path %s", configFile) + } + + glog.Infof("load tenant from file finished") } + + tenanters, _ = tenanter.GetTenanters(req.Provider) + //get the available region for product reqPodRegion := &pbpod.GetPodRegionReq{Provider: req.GetProvider()} respPodRegion, err := GetPodRegion(ctx, reqPodRegion) diff --git a/adaptor/pod_adaptor/service/poder/ali_eci.go b/adaptor/pod/service/ali_eci.go similarity index 97% rename from adaptor/pod_adaptor/service/poder/ali_eci.go rename to adaptor/pod/service/ali_eci.go index 8fd7a22f..ae7203ee 100644 --- a/adaptor/pod_adaptor/service/poder/ali_eci.go +++ b/adaptor/pod/service/ali_eci.go @@ -120,7 +120,7 @@ func (eci *AliEci) DeletePod(ctx context.Context, req *pbpod.DeletePodReq) (*pbp deleteContainerGroupRequest := alieci.CreateDeleteContainerGroupRequest() deleteContainerGroupRequest.RegionId = eci.region.GetName() - deleteContainerGroupRequest.ContainerGroupId = req.PodId + deleteContainerGroupRequest.ContainerGroupId = req.PcmId resp, err := eci.cli.DeleteContainerGroup(deleteContainerGroupRequest) isFinished := true @@ -143,7 +143,7 @@ func (eci *AliEci) UpdatePod(ctx context.Context, req *pbpod.UpdatePodReq) (*pbp updateContainerGroupRequest := alieci.CreateUpdateContainerGroupRequest() updateContainerGroupRequest.RegionId = eci.region.GetName() - updateContainerGroupRequest.ContainerGroupId = req.PodId + updateContainerGroupRequest.ContainerGroupId = req.PcmId updateContainerRequestContainer := make([]alieci.UpdateContainerGroupContainer, 1) updateContainerRequestContainer[0].Image = req.ContainerImage @@ -184,6 +184,7 @@ func (eci *AliEci) ListPodDetail(ctx context.Context, req *pbpod.ListPodDetailRe ecies[k] = &pbpod.PodInstance{ Provider: pbtenant.CloudProvider_ali, AccountName: eci.tenanter.AccountName(), + PcmId: v.ContainerGroupId, PodId: v.ContainerGroupId, PodName: v.ContainerGroupName, RegionId: eci.region.GetId(), diff --git a/adaptor/pod_adaptor/service/poder/huawei_cci.go b/adaptor/pod/service/huawei_cci.go similarity index 98% rename from adaptor/pod_adaptor/service/poder/huawei_cci.go rename to adaptor/pod/service/huawei_cci.go index 7892540f..32606ecd 100644 --- a/adaptor/pod_adaptor/service/poder/huawei_cci.go +++ b/adaptor/pod/service/huawei_cci.go @@ -148,7 +148,7 @@ func (cci *HuaweiCci) CreatePod(ctx context.Context, req *pbpod.CreatePodReq) (* func (cci *HuaweiCci) DeletePod(ctx context.Context, req *pbpod.DeletePodReq) (*pbpod.DeletePodResp, error) { - err := cci.cli.CoreV1().Pods(req.GetNamespace()).Delete(context.TODO(), req.PodName, metav1.DeleteOptions{}) + err := cci.cli.CoreV1().Pods(req.GetNamespace()).Delete(context.TODO(), req.PcmId, metav1.DeleteOptions{}) isFinished := true if err != nil { @@ -169,7 +169,7 @@ func (cci *HuaweiCci) DeletePod(ctx context.Context, req *pbpod.DeletePodReq) (* func (cci *HuaweiCci) UpdatePod(ctx context.Context, req *pbpod.UpdatePodReq) (*pbpod.UpdatePodResp, error) { - qresp, err := cci.cli.CoreV1().Pods(req.GetNamespace()).Get(context.TODO(), req.PodName, metav1.GetOptions{}) + qresp, err := cci.cli.CoreV1().Pods(req.GetNamespace()).Get(context.TODO(), req.PcmId, metav1.GetOptions{}) if err != nil { return nil, errors.Wrap(err, "Huaweiyun UpdatePod error") } @@ -218,6 +218,7 @@ func (cci *HuaweiCci) ListPodDetail(ctx context.Context, req *pbpod.ListPodDetai pods[k] = &pbpod.PodInstance{ Provider: pbtenant.CloudProvider_huawei, AccountName: cci.tenanter.AccountName(), + PcmId: v.Name, PodId: string(v.GetUID()), PodName: v.Name, RegionId: cci.region.GetId(), diff --git a/adaptor/pod_adaptor/service/poder/k8s.go b/adaptor/pod/service/k8s.go similarity index 98% rename from adaptor/pod_adaptor/service/poder/k8s.go rename to adaptor/pod/service/k8s.go index d23048d2..7df581c5 100644 --- a/adaptor/pod_adaptor/service/poder/k8s.go +++ b/adaptor/pod/service/k8s.go @@ -135,7 +135,7 @@ func (k *K8SPoder) CreatePod(ctx context.Context, req *pbpod.CreatePodReq) (*pbp func (k K8SPoder) DeletePod(ctx context.Context, req *pbpod.DeletePodReq) (*pbpod.DeletePodResp, error) { - podName := req.PodName + podName := req.PcmId fmt.Println("K8S ContainerGroup:", podName, " Deleted") err := k.cli.CoreV1().Pods(req.Namespace).Delete(context.TODO(), podName, metav1.DeleteOptions{}) @@ -157,14 +157,14 @@ func (k K8SPoder) DeletePod(ctx context.Context, req *pbpod.DeletePodReq) (*pbpo func (k K8SPoder) UpdatePod(ctx context.Context, req *pbpod.UpdatePodReq) (*pbpod.UpdatePodResp, error) { - qresp, err := k.cli.CoreV1().Pods(req.GetNamespace()).Get(context.TODO(), req.PodName, metav1.GetOptions{}) + qresp, err := k.cli.CoreV1().Pods(req.GetNamespace()).Get(context.TODO(), req.PcmId, metav1.GetOptions{}) if err != nil { return nil, errors.Wrap(err, "K8S UpdatePod error") } pod := corev1.Pod{ TypeMeta: qresp.TypeMeta, ObjectMeta: metav1.ObjectMeta{ - Name: req.PodName, + Name: req.PcmId, Namespace: req.Namespace, Labels: map[string]string{"name": req.Labels}, }, @@ -204,6 +204,7 @@ func (k K8SPoder) ListPodDetail(ctx context.Context, req *pbpod.ListPodDetailReq pods[k] = &pbpod.PodInstance{ Provider: pbtenant.CloudProvider_k8s, AccountName: req.AccountName, + PcmId: v.Name, PodId: string(v.GetUID()), PodName: v.Name, ContainerImage: v.Spec.Containers[0].Image, diff --git a/adaptor/pod_adaptor/service/poder/poder.go b/adaptor/pod/service/poder.go similarity index 99% rename from adaptor/pod_adaptor/service/poder/poder.go rename to adaptor/pod/service/poder.go index 63e4d3dc..7e967385 100644 --- a/adaptor/pod_adaptor/service/poder/poder.go +++ b/adaptor/pod/service/poder.go @@ -2,7 +2,6 @@ package poder import ( "context" - "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" diff --git a/adaptor/pod_adaptor/service/poder/tencent_eks.go b/adaptor/pod/service/tencent_eks.go similarity index 96% rename from adaptor/pod_adaptor/service/poder/tencent_eks.go rename to adaptor/pod/service/tencent_eks.go index da562655..dc74f52a 100644 --- a/adaptor/pod_adaptor/service/poder/tencent_eks.go +++ b/adaptor/pod/service/tencent_eks.go @@ -36,8 +36,9 @@ func (eks TencentEks) GetPodRegion(ctx context.Context, req *pbpod.GetPodRegionR } for _, eksRegion := range resp.Response.Regions { + regionId, _ := tenanter.GetTencentRegionId(*eksRegion.RegionName) regionPod := &pbtenant.Region{ - Id: int32(*eksRegion.RegionId), + Id: regionId, Name: *eksRegion.RegionName, } regions = append(regions, regionPod) @@ -131,7 +132,7 @@ func (eks TencentEks) CreatePod(ctx context.Context, req *pbpod.CreatePodReq) (* func (eks *TencentEks) DeletePod(ctx context.Context, req *pbpod.DeletePodReq) (*pbpod.DeletePodResp, error) { request := tencenteks.NewDeleteEKSContainerInstancesRequest() request.EksCiIds = make([]*string, 1) - request.EksCiIds[0] = &req.PodId + request.EksCiIds[0] = &req.PcmId resp, err := eks.cli.DeleteEKSContainerInstances(request) isFinished := true @@ -153,7 +154,7 @@ func (eks *TencentEks) DeletePod(ctx context.Context, req *pbpod.DeletePodReq) ( func (eks *TencentEks) UpdatePod(ctx context.Context, req *pbpod.UpdatePodReq) (*pbpod.UpdatePodResp, error) { //创建更新pod请求 request := tencenteks.NewUpdateEKSContainerInstanceRequest() - request.EksCiId = &req.PodId + request.EksCiId = &req.PcmId request.RestartPolicy = &req.RestartPolicy request.Name = &req.PodName cpu, err := strconv.ParseFloat(req.CpuPod, 64) @@ -192,6 +193,7 @@ func (eks TencentEks) ListPodDetail(ctx context.Context, req *pbpod.ListPodDetai ekspods[k] = &pbpod.PodInstance{ Provider: pbtenant.CloudProvider_tencent, AccountName: eks.tenanter.AccountName(), + PcmId: *v.EksCiId, PodId: *v.EksCiId, PodName: *v.EksCiName, RegionId: eks.region.GetId(), @@ -212,7 +214,7 @@ func (eks TencentEks) ListPodDetail(ctx context.Context, req *pbpod.ListPodDetai isFinished = true } - glog.Infof("--------------------K8S Pod Instance deleted--------------------") + glog.Infof("--------------------K8S Pod Instance listed--------------------") return &pbpod.ListPodDetailResp{ Pods: ekspods, diff --git a/adaptor/pod_adaptor/server/pod/main_test.go b/adaptor/pod_adaptor/server/pod/main_test.go deleted file mode 100644 index 8b7a4d0f..00000000 --- a/adaptor/pod_adaptor/server/pod/main_test.go +++ /dev/null @@ -1,33 +0,0 @@ -package pod - -import ( - "os" - "testing" - - "gitlink.org.cn/JCCE/PCM/common/tenanter" - "gitlink.org.cn/JCCE/PCM/lan_trans/idl/pbtenant" -) - -var ( - aliTenant, tcTenant, hwTenant, awsTenant []tenanter.Tenanter -) - -func TestMain(m *testing.M) { - err := tenanter.LoadCloudConfigs("../../../../configs/config.yaml") - if err != nil { - panic(err) - } - if aliTenant, err = tenanter.GetTenanters(pbtenant.CloudProvider_ali); err != nil { - panic("get aliTenant failed") - } - if tcTenant, err = tenanter.GetTenanters(pbtenant.CloudProvider_tencent); err != nil { - panic("get tcTenant failed") - } - 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/adaptor/pod_adaptor/server/pod/pod_test.go b/adaptor/pod_adaptor/server/pod/pod_test.go deleted file mode 100644 index 05eda296..00000000 --- a/adaptor/pod_adaptor/server/pod/pod_test.go +++ /dev/null @@ -1,83 +0,0 @@ -package pod - -import ( - "context" - "testing" - - "gitlink.org.cn/JCCE/PCM/lan_trans/idl/pbpod" - "gitlink.org.cn/JCCE/PCM/lan_trans/idl/pbtenant" -) - -func TestListDetail(t *testing.T) { - type args struct { - req *pbpod.ListPodDetailReq - } - tests := []struct { - name string - args args - wantErr bool - }{ - {name: "ali", args: args{req: &pbpod.ListPodDetailReq{Provider: pbtenant.CloudProvider_ali, RegionId: int32(pbtenant.AliRegionId_ali_cn_hangzhou), PageNumber: 1, PageSize: 10}}, wantErr: false}, - {name: "tencent", args: args{req: &pbpod.ListPodDetailReq{Provider: pbtenant.CloudProvider_tencent, RegionId: int32(pbtenant.TencentRegionId_tc_ap_beijing), PageNumber: 1, PageSize: 10}}, wantErr: false}, - {name: "aws", args: args{req: &pbpod.ListPodDetailReq{Provider: pbtenant.CloudProvider_aws, RegionId: int32(pbtenant.AwsRegionId_aws_us_east_2), PageNumber: 1, PageSize: 10}}, wantErr: false}, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - got, err := ListPodDetail(context.Background(), tt.args.req) - if (err != nil) != tt.wantErr { - t.Errorf("ListDetail() error = %+v, wantErr %v", err, tt.wantErr) - return - } - t.Log(got) - }) - } -} - -func TestList(t *testing.T) { - type args struct { - req *pbpod.ListPodReq - } - tests := []struct { - name string - args args - wantErr bool - }{ - {name: "ali", args: args{req: &pbpod.ListPodReq{Provider: pbtenant.CloudProvider_ali}}, wantErr: false}, - {name: "tencent", args: args{req: &pbpod.ListPodReq{Provider: pbtenant.CloudProvider_tencent}}, wantErr: false}, - {name: "huawei", args: args{req: &pbpod.ListPodReq{Provider: pbtenant.CloudProvider_huawei}}, wantErr: false}, - {name: "aws", args: args{req: &pbpod.ListPodReq{Provider: pbtenant.CloudProvider_aws}}, wantErr: false}, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - got, err := ListPod(context.Background(), tt.args.req) - if (err != nil) != tt.wantErr { - t.Errorf("List() error = %+v, wantErr %v", err, tt.wantErr) - return - } - t.Log(got) - }) - } -} - -func TestListAll(t *testing.T) { - type args struct { - req *pbpod.ListPodReq - } - tests := []struct { - name string - args args - wantErr bool - }{ - {name: "all", args: args{req: &pbpod.ListPodReq{}}, wantErr: false}, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - got, err := ListPodAll(context.Background()) - if (err != nil) != tt.wantErr { - t.Errorf("ListAll() error = %+v, wantErr %v", err, tt.wantErr) - return - } - t.Log(got) - }) - } -} diff --git a/adaptor/pod_adaptor/service/poder/main_test.go b/adaptor/pod_adaptor/service/poder/main_test.go deleted file mode 100644 index 646bc0dd..00000000 --- a/adaptor/pod_adaptor/service/poder/main_test.go +++ /dev/null @@ -1,33 +0,0 @@ -package poder - -import ( - "os" - "testing" - - "gitlink.org.cn/JCCE/PCM/common/tenanter" - "gitlink.org.cn/JCCE/PCM/lan_trans/idl/pbtenant" -) - -var ( - aliTenant, tcTenant, hwTenant, awsTenant []tenanter.Tenanter -) - -func TestMain(m *testing.M) { - err := tenanter.LoadCloudConfigs("../../../config.yaml") - if err != nil { - panic(err) - } - if aliTenant, err = tenanter.GetTenanters(pbtenant.CloudProvider_ali); err != nil { - panic("get aliTenant failed") - } - if tcTenant, err = tenanter.GetTenanters(pbtenant.CloudProvider_tencent); err != nil { - panic("get tcTenant failed") - } - if hwTenant, err = tenanter.GetTenanters(pbtenant.CloudProvider_huawei); err != nil { - panic("get hwTenant failed") - } - if awsTenant, err = tenanter.GetTenanters(pbtenant.CloudProvider_k8s); err != nil { - panic("get awsTenant failed") - } - os.Exit(m.Run()) -} diff --git a/adaptor/pod_adaptor/service/poder/poder_test.go b/adaptor/pod_adaptor/service/poder/poder_test.go deleted file mode 100644 index 00bd2e99..00000000 --- a/adaptor/pod_adaptor/service/poder/poder_test.go +++ /dev/null @@ -1,70 +0,0 @@ -package poder - -import ( - "context" - "gitlink.org.cn/JCCE/PCM/lan_trans/idl/pbpod" - "testing" - - "gitlink.org.cn/JCCE/PCM/common/tenanter" - "gitlink.org.cn/JCCE/PCM/lan_trans/idl/pbtenant" -) - -func TestEcser_ListDetail(t *testing.T) { - region, _ := tenanter.NewRegion(pbtenant.CloudProvider_ali, int32(pbtenant.AliRegionId_ali_cn_hangzhou)) - ali, _ := NewPodClient(pbtenant.CloudProvider_ali, region, aliTenant[0]) - aliFailed, _ := NewPodClient(pbtenant.CloudProvider_ali, region, tenanter.NewTenantWithAccessKey("empty", "", "", "", "")) - - region, _ = tenanter.NewRegion(pbtenant.CloudProvider_tencent, int32(pbtenant.TencentRegionId_tc_ap_beijing)) - tc, _ := NewPodClient(pbtenant.CloudProvider_tencent, region, tcTenant[0]) - tcFailed, _ := NewPodClient(pbtenant.CloudProvider_tencent, region, tenanter.NewTenantWithAccessKey("empty", "", "", "", "")) - - region, _ = tenanter.NewRegion(pbtenant.CloudProvider_huawei, int32(pbtenant.HuaweiRegionId_hw_cn_southwest_2)) - hw, _ := NewPodClient(pbtenant.CloudProvider_huawei, region, hwTenant[0]) - // hwFailed, _ := newHuaweiEcsClient(int32(pbtenant.HuaweiRegionId_hw_cn_north_1), tenanter.NewTenantWithAccessKey("empty", "", "", "")) - - region, _ = tenanter.NewRegion(pbtenant.CloudProvider_k8s, int32(pbtenant.AwsRegionId_aws_us_east_2)) - aws, _ := NewPodClient(pbtenant.CloudProvider_k8s, region, awsTenant[0]) - - // google, _ := NewGoogleEcsClient(tenanter.NewTenantWithAccessKey("", "")) - - type args struct { - req *pbpod.ListPodDetailReq - } - tests := []struct { - name string - fields Poder - args args - wantErr bool - }{ - {name: "ali wrong cli", fields: aliFailed, args: args{&pbpod.ListPodDetailReq{PageNumber: 1, PageSize: 1}}, wantErr: true}, - {name: "ali wrong page number", fields: ali, args: args{&pbpod.ListPodDetailReq{PageNumber: 0, PageSize: 1}}, wantErr: true}, - {name: "ali wrong page size", fields: ali, args: args{&pbpod.ListPodDetailReq{PageNumber: 1, PageSize: 0}}, wantErr: true}, - {name: "ali right cli", fields: ali, args: args{&pbpod.ListPodDetailReq{PageNumber: 1, PageSize: 10}}, wantErr: false}, - - {name: "tc wrong cli", fields: tcFailed, args: args{&pbpod.ListPodDetailReq{PageNumber: 1, PageSize: 1}}, wantErr: true}, - {name: "tc wrong page number", fields: tc, args: args{&pbpod.ListPodDetailReq{PageNumber: 0, PageSize: 1}}, wantErr: true}, - {name: "tc wrong page size", fields: tc, args: args{&pbpod.ListPodDetailReq{PageNumber: 1, PageSize: 0}}, wantErr: true}, - {name: "tc right cli", fields: tc, args: args{&pbpod.ListPodDetailReq{PageNumber: 1, PageSize: 10}}, wantErr: false}, - - // {name: "hw wrong cli", fields: hwFailed, args: args{pageNumber: 1, pageSize: 1}, wantErr: true}, - {name: "hw right cli", fields: hw, args: args{&pbpod.ListPodDetailReq{PageNumber: 1, PageSize: 10}}, wantErr: false}, - - {name: "aws right cli", fields: aws, args: args{&pbpod.ListPodDetailReq{PageNumber: 1, PageSize: 10}}, wantErr: false}, - - // {name: "right cli", fields: google, args: args{pageNumber: 1, pageSize: 10}, wantErr: false}, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - resp, err := tt.fields.ListPodDetail(context.Background(), tt.args.req) - if (err != nil) != tt.wantErr { - t.Errorf("ListDetail() error = %+v, wantErr %v", err, tt.wantErr) - return - } - t.Logf("%+v", err) - if err == nil { - t.Log(resp) - } - }) - } -} diff --git a/adaptor/vm_adaptor/server/ecs/list.go b/adaptor/vm/server/ecs/list.go similarity index 99% rename from adaptor/vm_adaptor/server/ecs/list.go rename to adaptor/vm/server/ecs/list.go index 982f2a9e..b85eda37 100644 --- a/adaptor/vm_adaptor/server/ecs/list.go +++ b/adaptor/vm/server/ecs/list.go @@ -6,7 +6,7 @@ import ( "github.com/golang/glog" "github.com/pkg/errors" - "gitlink.org.cn/JCCE/PCM/adaptor/vm_adaptor/service/ecser" + "gitlink.org.cn/JCCE/PCM/adaptor/vm/service/ecser" "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" diff --git a/adaptor/vm_adaptor/server/ecs/list_test.go b/adaptor/vm/server/ecs/list_test.go similarity index 100% rename from adaptor/vm_adaptor/server/ecs/list_test.go rename to adaptor/vm/server/ecs/list_test.go diff --git a/adaptor/vm_adaptor/server/ecs/main_test.go b/adaptor/vm/server/ecs/main_test.go similarity index 100% rename from adaptor/vm_adaptor/server/ecs/main_test.go rename to adaptor/vm/server/ecs/main_test.go diff --git a/adaptor/vm_adaptor/service/ecser/ali.go b/adaptor/vm/service/ecser/ali.go similarity index 100% rename from adaptor/vm_adaptor/service/ecser/ali.go rename to adaptor/vm/service/ecser/ali.go diff --git a/adaptor/vm_adaptor/service/ecser/aws.go b/adaptor/vm/service/ecser/aws.go similarity index 100% rename from adaptor/vm_adaptor/service/ecser/aws.go rename to adaptor/vm/service/ecser/aws.go diff --git a/adaptor/vm_adaptor/service/ecser/ecser.go b/adaptor/vm/service/ecser/ecser.go similarity index 100% rename from adaptor/vm_adaptor/service/ecser/ecser.go rename to adaptor/vm/service/ecser/ecser.go diff --git a/adaptor/vm_adaptor/service/ecser/ecser_test.go b/adaptor/vm/service/ecser/ecser_test.go similarity index 100% rename from adaptor/vm_adaptor/service/ecser/ecser_test.go rename to adaptor/vm/service/ecser/ecser_test.go diff --git a/adaptor/vm_adaptor/service/ecser/google.go b/adaptor/vm/service/ecser/google.go similarity index 100% rename from adaptor/vm_adaptor/service/ecser/google.go rename to adaptor/vm/service/ecser/google.go diff --git a/adaptor/vm_adaptor/service/ecser/harvester.go b/adaptor/vm/service/ecser/harvester.go similarity index 100% rename from adaptor/vm_adaptor/service/ecser/harvester.go rename to adaptor/vm/service/ecser/harvester.go diff --git a/adaptor/vm_adaptor/service/ecser/harvester_util.go b/adaptor/vm/service/ecser/harvester_util.go similarity index 100% rename from adaptor/vm_adaptor/service/ecser/harvester_util.go rename to adaptor/vm/service/ecser/harvester_util.go diff --git a/adaptor/vm_adaptor/service/ecser/huawei.go b/adaptor/vm/service/ecser/huawei.go similarity index 100% rename from adaptor/vm_adaptor/service/ecser/huawei.go rename to adaptor/vm/service/ecser/huawei.go diff --git a/adaptor/vm_adaptor/service/ecser/main_test.go b/adaptor/vm/service/ecser/main_test.go similarity index 100% rename from adaptor/vm_adaptor/service/ecser/main_test.go rename to adaptor/vm/service/ecser/main_test.go diff --git a/adaptor/vm_adaptor/service/ecser/tencent.go b/adaptor/vm/service/ecser/tencent.go similarity index 100% rename from adaptor/vm_adaptor/service/ecser/tencent.go rename to adaptor/vm/service/ecser/tencent.go diff --git a/buf.gen.yaml b/buf.gen.yaml index 21c9cb5e..fda95a3c 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -4,18 +4,18 @@ plugins: out: lan_trans opt: - paths=source_relative -# - name: java -# out: lan_trans -# opt: -# - paths=source_relative + # - name: java + # out: lan_trans + # opt: + # - paths=source_relative - name: go-grpc out: lan_trans opt: - paths=source_relative -# - name: java-grpc -# out: gen -# opt: -# - paths=source_relative + # - name: java-grpc + # out: gen + # opt: + # - paths=source_relative - name: grpc-gateway out: lan_trans opt: diff --git a/common/server/server_ecs.go b/common/server/server_ecs.go index 28bfc28e..d89e7eb1 100644 --- a/common/server/server_ecs.go +++ b/common/server/server_ecs.go @@ -3,7 +3,7 @@ package server import ( "context" - "gitlink.org.cn/JCCE/PCM/adaptor/vm_adaptor/server/ecs" + "gitlink.org.cn/JCCE/PCM/adaptor/vm/server/ecs" "gitlink.org.cn/JCCE/PCM/lan_trans/idl/pbecs" "github.com/golang/glog" diff --git a/common/server/server_pod.go b/common/server/server_pod.go index d928ab09..6e24b11f 100644 --- a/common/server/server_pod.go +++ b/common/server/server_pod.go @@ -2,8 +2,8 @@ package server import ( "context" + "gitlink.org.cn/JCCE/PCM/adaptor/pod/server" - "gitlink.org.cn/JCCE/PCM/adaptor/pod_adaptor/server/pod" "gitlink.org.cn/JCCE/PCM/lan_trans/idl/pbpod" "github.com/golang/glog" @@ -13,7 +13,7 @@ import ( // 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) + resp, err := server.GetPodRegion(ctx, req) if err != nil { glog.Errorf("CreatePods error %+v", err) return nil, status.Errorf(codes.Internal, err.Error()) @@ -23,7 +23,7 @@ func (s *Server) GetProdRegions(ctx context.Context, req *pbpod.GetPodRegionReq) // 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) + resp, err := server.CreatePods(ctx, req) if err != nil { glog.Errorf("CreatePods error %+v", err) return nil, status.Errorf(codes.Internal, err.Error()) @@ -33,7 +33,7 @@ func (s *Server) CreatePods(ctx context.Context, req *pbpod.CreatePodsReq) (*pbp // 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) + resp, err := server.CreatePod(ctx, req) if err != nil { glog.Errorf("CreatePod error %+v", err) return nil, status.Errorf(codes.Internal, err.Error()) @@ -43,7 +43,7 @@ func (s *Server) CreatePod(ctx context.Context, req *pbpod.CreatePodReq) (*pbpod // DeletePod delete specified pod func (s *Server) DeletePod(ctx context.Context, req *pbpod.DeletePodReq) (*pbpod.DeletePodResp, error) { - resp, err := pod.DeletePod(ctx, req) + resp, err := server.DeletePod(ctx, req) if err != nil { glog.Errorf("DeletePod error %+v", err) return nil, status.Errorf(codes.Internal, err.Error()) @@ -53,7 +53,7 @@ func (s *Server) DeletePod(ctx context.Context, req *pbpod.DeletePodReq) (*pbpod // UpdatePod update specified pod func (s *Server) UpdatePod(ctx context.Context, req *pbpod.UpdatePodReq) (*pbpod.UpdatePodResp, error) { - resp, err := pod.UpdatePod(ctx, req) + resp, err := server.UpdatePod(ctx, req) if err != nil { glog.Errorf("UpdatePod error %+v", err) return nil, status.Errorf(codes.Internal, err.Error()) @@ -62,7 +62,7 @@ func (s *Server) UpdatePod(ctx context.Context, req *pbpod.UpdatePodReq) (*pbpod } func (s *Server) ListPodDetail(ctx context.Context, req *pbpod.ListPodDetailReq) (*pbpod.ListPodDetailResp, error) { - resp, err := pod.ListPodDetail(ctx, req) + resp, err := server.ListPodDetail(ctx, req) if err != nil { glog.Errorf("ListPodDetail error %+v", err) return nil, status.Errorf(codes.Internal, err.Error()) @@ -71,7 +71,7 @@ func (s *Server) ListPodDetail(ctx context.Context, req *pbpod.ListPodDetailReq) } func (s *Server) ListPod(ctx context.Context, req *pbpod.ListPodReq) (*pbpod.ListPodResp, error) { - resp, err := pod.ListPod(ctx, req) + resp, err := server.ListPod(ctx, req) if err != nil { glog.Errorf("ListPod error %+v", err) return nil, status.Errorf(codes.Internal, err.Error()) @@ -80,7 +80,7 @@ func (s *Server) ListPod(ctx context.Context, req *pbpod.ListPodReq) (*pbpod.Lis } func (s *Server) ListPodAll(ctx context.Context, req *pbpod.ListPodAllReq) (*pbpod.ListPodResp, error) { - resp, err := pod.ListPodAll(ctx) + resp, err := server.ListPodAll(ctx) if err != nil { glog.Errorf("ListPodAll error %+v", err) return nil, status.Errorf(codes.Internal, err.Error()) diff --git a/common/tenanter/region.go b/common/tenanter/region.go index ad4148d2..b07dda42 100644 --- a/common/tenanter/region.go +++ b/common/tenanter/region.go @@ -117,6 +117,16 @@ func GetTencentRegionName(regionId int32) (string, error) { return region[3:], nil } +// GetTencentRegionId prefix tc_ +func GetTencentRegionId(regionName string) (int32, error) { + regionName = "tc_" + strings.ReplaceAll(regionName, "-", "_") + id, ok := pbtenant.TencentRegionId_value[regionName] + if !ok || regionName == "" { + return 0, errors.WithMessagef(ErrNoExistAliRegionId, "input region id is %s", regionName) + } + return id, nil +} + // GetHuaweiRegionName prefix huawei func GetHuaweiRegionName(regionId int32) (string, error) { name, ok := pbtenant.HuaweiRegionId_name[regionId] @@ -149,12 +159,7 @@ func GetK8SRegionName(regionId int32) (string, error) { // 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 + return 0, nil } // GetAwsRegionName prefix aws_ diff --git a/common/tenanter/tenanter.go b/common/tenanter/tenanter.go index 8dcd6590..2a2a785f 100644 --- a/common/tenanter/tenanter.go +++ b/common/tenanter/tenanter.go @@ -2,6 +2,8 @@ package tenanter import ( "encoding/json" + "flag" + "github.com/golang/glog" "gitlink.org.cn/JCCE/PCM/lan_trans/idl/pbtenant" "io/ioutil" "os" @@ -99,3 +101,19 @@ func GetTenanters(provider pbtenant.CloudProvider) ([]Tenanter, error) { } return tenanters, nil } + +func GenTenanter(configPath string) { + var configFile string + flag.StringVar(&configFile, "conf", configPath, "config.yaml") + flag.Parse() + defer glog.Flush() + + if err := LoadCloudConfigsFromFile(configFile); err != nil { + if !errors.Is(err, ErrLoadTenanterFileEmpty) { + glog.Fatalf("LoadCloudConfigsFromFile error %+v", err) + } + glog.Warningf("LoadCloudConfigsFromFile empty file path %s", configFile) + } + + glog.Infof("load tenant from file finished") +} diff --git a/examples/ali.go b/examples/ali.go new file mode 100644 index 00000000..db1c22ec --- /dev/null +++ b/examples/ali.go @@ -0,0 +1,56 @@ +//// This file is auto-generated, don't edit it. Thanks. +package main + +// +//import ( +// openapi "github.com/alibabacloud-go/darabonba-openapi/client" +// eci20180808 "github.com/alibabacloud-go/eci-20180808/v2/client" +// "github.com/alibabacloud-go/tea/tea" +// "os" +//) +// +///** +// * 使用AK&SK初始化账号Client +// * @param accessKeyId +// * @param accessKeySecret +// * @return Client +// * @throws Exception +// */ +//func CreateClient(accessKeyId *string, accessKeySecret *string) (_result *eci20180808.Client, _err error) { +// config := &openapi.Config{ +// // 您的AccessKey ID +// AccessKeyId: accessKeyId, +// // 您的AccessKey Secret +// AccessKeySecret: accessKeySecret, +// } +// // 访问的域名 +// config.Endpoint = tea.String("eci.aliyuncs.com") +// _result = &eci20180808.Client{} +// _result, _err = eci20180808.NewClient(config) +// return _result, _err +//} +// +//func _main(args []*string) (_err error) { +// client, _err := CreateClient(tea.String(""), tea.String("")) +// if _err != nil { +// return _err +// } +// +// describeContainerGroupsRequest := &eci20180808.DescribeContainerGroupsRequest{ +// RegionId: tea.String("cn-hangzhou"), +// } +// // 复制代码运行请自行打印 API 的返回值 +// resp, _err := client.DescribeContainerGroups(describeContainerGroupsRequest) +// println(*resp.Body.ContainerGroups[0].ContainerGroupId) +// if _err != nil { +// return _err +// } +// return _err +//} +// +//func main() { +// err := _main(tea.StringSlice(os.Args[1:])) +// if err != nil { +// panic(err) +// } +//} diff --git a/examples/pcm.go b/examples/pcm.go new file mode 100644 index 00000000..0c1a26a4 --- /dev/null +++ b/examples/pcm.go @@ -0,0 +1,53 @@ +package main + +import ( + "github.com/alibabacloud-go/tea/tea" + pcm_pod_ali "gitlink.org.cn/JCCE/PCM/adaptor/pod/server/ali" + "os" +) + +func _main(args []*string) (_err error) { + + //查询 + //describeContainerGroupsRequest := pcm_pod_ali.DescribeContainerGroupsRequest{ + // RegionId: "cn-hangzhou", + // ProviderId: 1, + //} + // + //// 复制代码运行请自行打印 API 的返回值 + //resp, _err := pcm_pod_ali.DescribeContainerGroups(&describeContainerGroupsRequest) + //println(resp.ContainerGroups[0].ContainerGroupId) + + //创建 + container := pcm_pod_ali.CreateContainerGroupContainer{ + Image: "nginx:latest", + Name: "pcm-sdk-ali", + Cpu: "1", + Memory: "2", + } + containers := make([]pcm_pod_ali.CreateContainerGroupContainer, 0) + containers = append(containers, container) + + createContainerGroupsRequest := pcm_pod_ali.CreateContainerGroupRequest{ + RpcRequest: nil, + //ali:cn-hangzhou tc:ap-shanghai hw: k8s + RegionId: "cn-hangzhou", + ProviderId: 3, + Namespace: "pcm", + ContainerGroupName: "sdk-alitohuawei", + Container: &containers, + } + + // 复制代码运行请自行打印 API 的返回值 + resp, _err := pcm_pod_ali.CreateContainerGroup(&createContainerGroupsRequest) + + println(resp.ContainerGroupId) + return _err +} + +func main() { + err := _main(tea.StringSlice(os.Args[1:])) + if err != nil { + panic(err) + } +} diff --git a/gen.sh b/gen.sh old mode 100755 new mode 100644 diff --git a/go.mod b/go.mod index 88dc23e0..cbe50b54 100644 --- a/go.mod +++ b/go.mod @@ -5,6 +5,7 @@ go 1.17 require ( github.com/alibabacloud-go/darabonba-openapi v0.1.4 github.com/alibabacloud-go/darabonba-string v1.0.0 + github.com/alibabacloud-go/eci-20180808/v2 v2.0.2 github.com/alibabacloud-go/ecs-20140526/v2 v2.1.0 github.com/alibabacloud-go/tea v1.1.15 github.com/alibabacloud-go/tea-utils v1.3.9 @@ -73,7 +74,7 @@ require ( github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.11 // indirect github.com/k8snetworkplumbingwg/network-attachment-definition-client v0.0.0-20200331171230-d50e42f2b669 // indirect - github.com/kubernetes-csi/external-snapshotter/v2 v2.1.1 // indirect + github.com/kubernetes-csi/external-snapshotter/v2 v2.1.3 // indirect github.com/longhorn/go-iscsi-helper v0.0.0-20201111045018-ee87992ec536 // indirect github.com/mailru/easyjson v0.7.6 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect diff --git a/idl/demo/demo.proto b/idl/demo/demo.proto index e3e6b9cb..66ce8254 100644 --- a/idl/demo/demo.proto +++ b/idl/demo/demo.proto @@ -11,7 +11,7 @@ enum OurTeam { devad = 0; } -message StringMessage { string value = 1; } +message StringMessage {string value = 1;} // 样例服务 service DemoService { diff --git a/idl/pbecs/ecs.proto b/idl/pbecs/ecs.proto index 63bbda8a..7445c471 100644 --- a/idl/pbecs/ecs.proto +++ b/idl/pbecs/ecs.proto @@ -46,7 +46,7 @@ message EcsInstance { //虚拟机所在的节点 string node = 18; //namespace - string namespace =20; + string namespace = 20; } //网络计费类型 @@ -108,10 +108,10 @@ message CreateEcsReq { // vpc id 华为云必需 string vpc_id = 18; //待创建云服务器所在的子网信息。需要指定vpcid对应VPC下已创建的子网(subnet)的网络ID,UUID格式。华为云必需 - string subnet_id =19; + string subnet_id = 19; //-------------harvester--------------- //命名空间 - string namespace =20; + string namespace = 20; //vCpu int32 cpu = 21; //memory @@ -127,25 +127,25 @@ message CreateEcsReq { //bus 总线指示要模拟的磁盘设备的类型,支持virtio, sata, scsi. string bus = 27; //网络名称 - string network_name =28; + string network_name = 28; //network_model 网络模式,支持e1000, e1000e, ne2k_pci, pcnet, rtl8139, virtio. - string network_model=29; + string network_model = 29; //网络 - string network =30; + string network = 30; //网络连接方法,默认bridge - string network_type =31; + string network_type = 31; //osType //系统类型 string os_type = 32; //machineType //机器类型 none、q35、pc string machine_type = 33; //machineName //主机名称,默认为虚拟机名称 - string machine_name =34; + string machine_name = 34; //userDataTemplate //用户数据模板 string user_data_template = 35; //networkDataTemplate //网络数据模板 string network_data_template = 36; //vmTemplateName //模板名称 - string vm_template_name =37; + string vm_template_name = 37; //vmTemplateVersion //版本号 string vm_template_version = 38; } @@ -240,7 +240,7 @@ message UpdateEcsReq { // 地域,数据中心 int32 region_id = 3; //实例id - string instance_ids = 4; + string instance_ids = 4; // 实例状态不能为启动中(Starting)。重启实例后,重置生效,且必须是在ECS控制台重启或者调用API RebootInstance重启,新密码才能生效。在操作系统内部重启不能生效。 string password = 5; //操作系统的主机名 diff --git a/idl/pbpod/pod.proto b/idl/pbpod/pod.proto index 6abbc4a1..207ea234 100644 --- a/idl/pbpod/pod.proto +++ b/idl/pbpod/pod.proto @@ -11,32 +11,34 @@ message PodInstance { pbtenant.CloudProvider provider = 1; // 账号名称 string account_name = 2; + //pcm id + string pcm_id = 3; // 实例id - string pod_id = 3; + string pod_id = 4; // 实例名称 - string pod_name = 4; + string pod_name = 5; // 地域ID - int32 region_id = 5; + int32 region_id = 6; // 地域Name - string region_name = 6; + string region_name = 7; // 镜像 - string container_image = 7; + string container_image = 8; // 容器名称 - string container_name = 8; + string container_name = 9; // vcpu数 - string cpu_pod = 9; + string cpu_pod = 10; // 内存MB - string memory_pod = 10; + string memory_pod = 11; //安全组ID 对应腾讯 SecurityGroupIds(腾讯必需) - string security_group_id = 11; + string security_group_id = 12; //子网ID 对应腾讯 SubnetId(腾讯必需) - string subnet_id = 12; + string subnet_id = 13; //VPC ID 对应腾讯 VpcId(腾讯必需) - string vpc_id = 13; + string vpc_id = 14; //名空间 - string namespace = 14; + string namespace = 15; // 实例状态 - string status = 15; + string status = 16; } @@ -79,6 +81,8 @@ message CreatePodReq { string vpc_id = 12; //名空间 string namespace = 13; + //请求源,如果是从pcm sdk 过来的,则单独生成tenanters实体 + string requestSource = 14; } message CreatePodResp { @@ -97,18 +101,22 @@ message DeletePodReq { pbtenant.CloudProvider provider = 1; // 账号名称 string account_name = 2; - // 实例ID - string pod_id = 3; - // 实例名称 - string pod_name = 4; + // pcm id + string pcm_id = 3; + // podId + string pod_id = 4; + // podName + string pod_name = 5; //namespace - string namespace = 5; + string namespace = 6; // 地域,数据中心 - int32 region_id = 6; + int32 region_id = 7; + //请求源,如果是从pcm sdk 过来的,则单独生成tenanters实体 + string requestSource = 8; } message DeletePodResp { - // 查询是否完成,如果为否-false,则可以将下面三个分页参数填入到请求中,继续查询 + // 删除是否完成 bool finished = 1; // 请求id,出现问题后提供给云厂商,排查问题 string request_id = 2; @@ -123,30 +131,34 @@ message UpdatePodReq { pbtenant.CloudProvider provider = 1; // 账号名称 string account_name = 2; - // 实例ID - string pod_id = 3; - // 实例名称 - string pod_name = 4; + // pcm ID + string pcm_id = 3; + // podId + string pod_id = 4; + // podName + string pod_name = 5; //namespace - string namespace = 5; + string namespace = 6; // 地域,数据中心 - int32 region_id = 6; + int32 region_id = 7; // 镜像 - string container_image = 7; + string container_image = 8; // 容器名称 - string container_name = 8; + string container_name = 9; // v cpu数 - string cpu_pod = 9; + string cpu_pod = 10; // 内存MB - string memory_pod = 10; + string memory_pod = 11; // 重启策略 - string restart_policy = 11; + string restart_policy = 12; // labels - string labels = 12; + string labels = 13; + //请求源,如果是从pcm sdk 过来的,则单独生成tenanters实体 + string requestSource = 14; } message UpdatePodResp { - // 查询是否完成,如果为否-false,则可以将下面三个分页参数填入到请求中,继续查询 + // 更新是否完成 bool finished = 1; // 请求id,出现问题后提供给云厂商,排查问题 string request_id = 2; @@ -165,6 +177,7 @@ message ListPodDetailReq { int32 region_id = 3; // 区域名称,各云厂商自定义的region name int32 region_name = 4; + // podID int32 pod_id = 5; // 分页相关参数,页码 @@ -195,8 +208,10 @@ message ListPodDetailResp { message ListPodReq { // cloud name pbtenant.CloudProvider provider = 1; - // + //命名空间 string namespace =2; + //请求源,如果是从pcm sdk 过来的,则单独生成tenanters实体 + string requestSource =3; } message ListPodResp { diff --git a/idl/pbtenant/tenant.proto b/idl/pbtenant/tenant.proto index 2c25af51..ce41b832 100644 --- a/idl/pbtenant/tenant.proto +++ b/idl/pbtenant/tenant.proto @@ -96,27 +96,27 @@ enum AliRegionId { // 腾讯云区域,需要将对应的 _ 转化为 - enum TencentRegionId { tc_all = 0; - tc_ap_bangkok =1; //亚太东南(曼谷) - tc_ap_beijing =2; //华北地区(北京) - tc_ap_chengdu =3; //西南地区(成都) - tc_ap_chongqing =4; //西南地区(重庆) - tc_ap_guangzhou =5; //华南地区(广州) - tc_ap_hongkong =6; //港澳台地区(中国香港) - tc_ap_jakarta =7; //亚太东南(雅加达) - tc_ap_mumbai=8; // 亚太南部(孟买) - tc_ap_nanjing =9; //华东地区(南京) - tc_ap_seoul =10; //亚太东北(首尔) - tc_ap_shanghai =11; //华东地区(上海) - tc_ap_shanghai_fsi=12; //华东地区(上海金融) - tc_ap_shenzhen_fsi =13; //华南地区(深圳金融) - tc_ap_singapore =14; //亚太东南(新加坡) - tc_ap_tokyo =15; //亚太东北(东京) - tc_eu_frankfurt=16; //欧洲地区(法兰克福) - tc_eu_moscow =17; //欧洲地区(莫斯科) - tc_na_ashburn =18; //美国东部(弗吉尼亚) - tc_na_siliconvalley=19; //美国西部(硅谷) - tc_na_toronto =20; //北美地区(多伦多) - tc_sa_saopaulo =21; //南美地区(圣保罗) + tc_ap_bangkok = 1; //亚太东南(曼谷) + tc_ap_beijing = 2; //华北地区(北京) + tc_ap_chengdu = 3; //西南地区(成都) + tc_ap_chongqing = 4; //西南地区(重庆) + tc_ap_guangzhou = 5; //华南地区(广州) + tc_ap_hongkong = 6; //港澳台地区(中国香港) + tc_ap_jakarta = 7; //亚太东南(雅加达) + tc_ap_mumbai = 8; // 亚太南部(孟买) + tc_ap_nanjing = 9; //华东地区(南京) + tc_ap_seoul = 10; //亚太东北(首尔) + tc_ap_shanghai = 11; //华东地区(上海) + tc_ap_shanghai_fsi = 12; //华东地区(上海金融) + tc_ap_shenzhen_fsi = 13; //华南地区(深圳金融) + tc_ap_singapore = 14; //亚太东南(新加坡) + tc_ap_tokyo = 15; //亚太东北(东京) + tc_eu_frankfurt = 16; //欧洲地区(法兰克福) + tc_eu_moscow = 17; //欧洲地区(莫斯科) + tc_na_ashburn = 18; //美国东部(弗吉尼亚) + tc_na_siliconvalley = 19; //美国西部(硅谷) + tc_na_toronto = 20; //北美地区(多伦多) + tc_sa_saopaulo = 21; //南美地区(圣保罗) } // 华为云区域,需要将对应的 _ 转化为 - diff --git a/lan_trans/idl/demo/demo.pb.go b/lan_trans/idl/demo/demo.pb.go index cfcfdf58..ba8498cf 100644 --- a/lan_trans/idl/demo/demo.pb.go +++ b/lan_trans/idl/demo/demo.pb.go @@ -137,11 +137,11 @@ var file_idl_demo_demo_proto_rawDesc = []byte{ 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2d, 0x65, 0x63, 0x6f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2d, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x58, 0x01, 0x62, 0x00, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x22, 0x0a, 0x2f, - 0x61, 0x70, 0x69, 0x73, 0x2f, 0x64, 0x65, 0x6d, 0x6f, 0x3a, 0x01, 0x2a, 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, 0x67, 0x65, 0x6e, 0x2f, 0x69, 0x64, 0x6c, 0x2f, 0x64, 0x65, 0x6d, 0x6f, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x70, 0x69, 0x73, 0x2f, 0x64, 0x65, 0x6d, 0x6f, 0x3a, 0x01, 0x2a, 0x42, 0x31, 0x5a, 0x2f, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4a, 0x43, 0x43, 0x45, 0x2d, + 0x6e, 0x75, 0x64, 0x74, 0x2f, 0x50, 0x43, 0x4d, 0x2f, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x69, 0x64, 0x6c, 0x2f, 0x64, 0x65, 0x6d, 0x6f, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/lan_trans/idl/demo/demo.pb.gw.go b/lan_trans/idl/demo/demo.pb.gw.go index 66ed1dcd..5fedd6b4 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.go b/lan_trans/idl/pbecs/ecs.pb.go index 8aad1ac6..7df1be7a 100644 --- a/lan_trans/idl/pbecs/ecs.pb.go +++ b/lan_trans/idl/pbecs/ecs.pb.go @@ -2370,10 +2370,10 @@ var file_idl_pbecs_ecs_proto_rawDesc = []byte{ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x65, 0x63, 0x73, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x65, 0x63, 0x73, 0x2f, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x01, 0x2a, 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, 0x65, 0x63, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x01, 0x2a, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4a, 0x43, 0x43, 0x45, 0x2d, 0x6e, 0x75, 0x64, 0x74, 0x2f, + 0x50, 0x43, 0x4d, 0x2f, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x2f, 0x69, 0x64, + 0x6c, 0x2f, 0x70, 0x62, 0x65, 0x63, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/lan_trans/idl/pbecs/ecs.pb.gw.go b/lan_trans/idl/pbecs/ecs.pb.gw.go index 9f151521..5e399764 100644 --- a/lan_trans/idl/pbecs/ecs.pb.gw.go +++ b/lan_trans/idl/pbecs/ecs.pb.gw.go @@ -303,12 +303,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 { @@ -326,12 +327,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 { @@ -349,12 +351,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 { @@ -372,12 +375,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 { @@ -395,12 +399,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 { @@ -418,12 +423,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 { @@ -441,12 +447,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 { @@ -464,12 +471,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/ActionEcs") + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/pbecs.EcsService/ActionEcs", runtime.WithHTTPPathPattern("/apis/ecs/action")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_EcsService_ActionEcs_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_EcsService_ActionEcs_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 { @@ -526,12 +534,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) @@ -546,12 +555,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) @@ -566,12 +576,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) @@ -586,12 +597,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) @@ -606,12 +618,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) @@ -626,12 +639,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) @@ -646,12 +660,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) @@ -666,12 +681,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/ActionEcs") + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/pbecs.EcsService/ActionEcs", runtime.WithHTTPPathPattern("/apis/ecs/action")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_EcsService_ActionEcs_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_EcsService_ActionEcs_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 d890fddb..9db7c7a4 100644 --- a/lan_trans/idl/pbpod/pod.pb.go +++ b/lan_trans/idl/pbpod/pod.pb.go @@ -31,32 +31,34 @@ type PodInstance struct { Provider pbtenant.CloudProvider `protobuf:"varint,1,opt,name=provider,proto3,enum=pbtenant.CloudProvider" json:"provider,omitempty"` // 账号名称 AccountName string `protobuf:"bytes,2,opt,name=account_name,json=accountName,proto3" json:"account_name,omitempty"` + //pcm id + PcmId string `protobuf:"bytes,3,opt,name=pcm_id,json=pcmId,proto3" json:"pcm_id,omitempty"` // 实例id - PodId string `protobuf:"bytes,3,opt,name=pod_id,json=podId,proto3" json:"pod_id,omitempty"` + PodId string `protobuf:"bytes,4,opt,name=pod_id,json=podId,proto3" json:"pod_id,omitempty"` // 实例名称 - PodName string `protobuf:"bytes,4,opt,name=pod_name,json=podName,proto3" json:"pod_name,omitempty"` + PodName string `protobuf:"bytes,5,opt,name=pod_name,json=podName,proto3" json:"pod_name,omitempty"` // 地域ID - RegionId int32 `protobuf:"varint,5,opt,name=region_id,json=regionId,proto3" json:"region_id,omitempty"` + RegionId int32 `protobuf:"varint,6,opt,name=region_id,json=regionId,proto3" json:"region_id,omitempty"` // 地域Name - RegionName string `protobuf:"bytes,6,opt,name=region_name,json=regionName,proto3" json:"region_name,omitempty"` + RegionName string `protobuf:"bytes,7,opt,name=region_name,json=regionName,proto3" json:"region_name,omitempty"` // 镜像 - ContainerImage string `protobuf:"bytes,7,opt,name=container_image,json=containerImage,proto3" json:"container_image,omitempty"` + ContainerImage string `protobuf:"bytes,8,opt,name=container_image,json=containerImage,proto3" json:"container_image,omitempty"` // 容器名称 - ContainerName string `protobuf:"bytes,8,opt,name=container_name,json=containerName,proto3" json:"container_name,omitempty"` + ContainerName string `protobuf:"bytes,9,opt,name=container_name,json=containerName,proto3" json:"container_name,omitempty"` // vcpu数 - CpuPod string `protobuf:"bytes,9,opt,name=cpu_pod,json=cpuPod,proto3" json:"cpu_pod,omitempty"` + CpuPod string `protobuf:"bytes,10,opt,name=cpu_pod,json=cpuPod,proto3" json:"cpu_pod,omitempty"` // 内存MB - MemoryPod string `protobuf:"bytes,10,opt,name=memory_pod,json=memoryPod,proto3" json:"memory_pod,omitempty"` + MemoryPod string `protobuf:"bytes,11,opt,name=memory_pod,json=memoryPod,proto3" json:"memory_pod,omitempty"` //安全组ID 对应腾讯 SecurityGroupIds(腾讯必需) - SecurityGroupId string `protobuf:"bytes,11,opt,name=security_group_id,json=securityGroupId,proto3" json:"security_group_id,omitempty"` + SecurityGroupId string `protobuf:"bytes,12,opt,name=security_group_id,json=securityGroupId,proto3" json:"security_group_id,omitempty"` //子网ID 对应腾讯 SubnetId(腾讯必需) - SubnetId string `protobuf:"bytes,12,opt,name=subnet_id,json=subnetId,proto3" json:"subnet_id,omitempty"` + SubnetId string `protobuf:"bytes,13,opt,name=subnet_id,json=subnetId,proto3" json:"subnet_id,omitempty"` //VPC ID 对应腾讯 VpcId(腾讯必需) - VpcId string `protobuf:"bytes,13,opt,name=vpc_id,json=vpcId,proto3" json:"vpc_id,omitempty"` + VpcId string `protobuf:"bytes,14,opt,name=vpc_id,json=vpcId,proto3" json:"vpc_id,omitempty"` //名空间 - Namespace string `protobuf:"bytes,14,opt,name=namespace,proto3" json:"namespace,omitempty"` + Namespace string `protobuf:"bytes,15,opt,name=namespace,proto3" json:"namespace,omitempty"` // 实例状态 - Status string `protobuf:"bytes,15,opt,name=status,proto3" json:"status,omitempty"` + Status string `protobuf:"bytes,16,opt,name=status,proto3" json:"status,omitempty"` } func (x *PodInstance) Reset() { @@ -105,6 +107,13 @@ func (x *PodInstance) GetAccountName() string { return "" } +func (x *PodInstance) GetPcmId() string { + if x != nil { + return x.PcmId + } + return "" +} + func (x *PodInstance) GetPodId() string { if x != nil { return x.PodId @@ -332,6 +341,8 @@ type CreatePodReq struct { VpcId string `protobuf:"bytes,12,opt,name=vpc_id,json=vpcId,proto3" json:"vpc_id,omitempty"` //名空间 Namespace string `protobuf:"bytes,13,opt,name=namespace,proto3" json:"namespace,omitempty"` + //请求源,如果是从pcm sdk 过来的,则单独生成tenanters实体 + RequestSource string `protobuf:"bytes,14,opt,name=requestSource,proto3" json:"requestSource,omitempty"` } func (x *CreatePodReq) Reset() { @@ -457,6 +468,13 @@ func (x *CreatePodReq) GetNamespace() string { return "" } +func (x *CreatePodReq) GetRequestSource() string { + if x != nil { + return x.RequestSource + } + return "" +} + type CreatePodResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -541,14 +559,18 @@ type DeletePodReq struct { Provider pbtenant.CloudProvider `protobuf:"varint,1,opt,name=provider,proto3,enum=pbtenant.CloudProvider" json:"provider,omitempty"` // 账号名称 AccountName string `protobuf:"bytes,2,opt,name=account_name,json=accountName,proto3" json:"account_name,omitempty"` - // 实例ID - PodId string `protobuf:"bytes,3,opt,name=pod_id,json=podId,proto3" json:"pod_id,omitempty"` - // 实例名称 - PodName string `protobuf:"bytes,4,opt,name=pod_name,json=podName,proto3" json:"pod_name,omitempty"` + // pcm id + PcmId string `protobuf:"bytes,3,opt,name=pcm_id,json=pcmId,proto3" json:"pcm_id,omitempty"` + // podId + PodId string `protobuf:"bytes,4,opt,name=pod_id,json=podId,proto3" json:"pod_id,omitempty"` + // podName + PodName string `protobuf:"bytes,5,opt,name=pod_name,json=podName,proto3" json:"pod_name,omitempty"` //namespace - Namespace string `protobuf:"bytes,5,opt,name=namespace,proto3" json:"namespace,omitempty"` + Namespace string `protobuf:"bytes,6,opt,name=namespace,proto3" json:"namespace,omitempty"` // 地域,数据中心 - RegionId int32 `protobuf:"varint,6,opt,name=region_id,json=regionId,proto3" json:"region_id,omitempty"` + RegionId int32 `protobuf:"varint,7,opt,name=region_id,json=regionId,proto3" json:"region_id,omitempty"` + //请求源,如果是从pcm sdk 过来的,则单独生成tenanters实体 + RequestSource string `protobuf:"bytes,8,opt,name=requestSource,proto3" json:"requestSource,omitempty"` } func (x *DeletePodReq) Reset() { @@ -597,6 +619,13 @@ func (x *DeletePodReq) GetAccountName() string { return "" } +func (x *DeletePodReq) GetPcmId() string { + if x != nil { + return x.PcmId + } + return "" +} + func (x *DeletePodReq) GetPodId() string { if x != nil { return x.PodId @@ -625,12 +654,19 @@ func (x *DeletePodReq) GetRegionId() int32 { return 0 } +func (x *DeletePodReq) GetRequestSource() string { + if x != nil { + return x.RequestSource + } + return "" +} + type DeletePodResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 查询是否完成,如果为否-false,则可以将下面三个分页参数填入到请求中,继续查询 + // 删除是否完成 Finished bool `protobuf:"varint,1,opt,name=finished,proto3" json:"finished,omitempty"` // 请求id,出现问题后提供给云厂商,排查问题 RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` @@ -709,26 +745,30 @@ type UpdatePodReq struct { Provider pbtenant.CloudProvider `protobuf:"varint,1,opt,name=provider,proto3,enum=pbtenant.CloudProvider" json:"provider,omitempty"` // 账号名称 AccountName string `protobuf:"bytes,2,opt,name=account_name,json=accountName,proto3" json:"account_name,omitempty"` - // 实例ID - PodId string `protobuf:"bytes,3,opt,name=pod_id,json=podId,proto3" json:"pod_id,omitempty"` - // 实例名称 - PodName string `protobuf:"bytes,4,opt,name=pod_name,json=podName,proto3" json:"pod_name,omitempty"` + // pcm ID + PcmId string `protobuf:"bytes,3,opt,name=pcm_id,json=pcmId,proto3" json:"pcm_id,omitempty"` + // podId + PodId string `protobuf:"bytes,4,opt,name=pod_id,json=podId,proto3" json:"pod_id,omitempty"` + // podName + PodName string `protobuf:"bytes,5,opt,name=pod_name,json=podName,proto3" json:"pod_name,omitempty"` //namespace - Namespace string `protobuf:"bytes,5,opt,name=namespace,proto3" json:"namespace,omitempty"` + Namespace string `protobuf:"bytes,6,opt,name=namespace,proto3" json:"namespace,omitempty"` // 地域,数据中心 - RegionId int32 `protobuf:"varint,6,opt,name=region_id,json=regionId,proto3" json:"region_id,omitempty"` + RegionId int32 `protobuf:"varint,7,opt,name=region_id,json=regionId,proto3" json:"region_id,omitempty"` // 镜像 - ContainerImage string `protobuf:"bytes,7,opt,name=container_image,json=containerImage,proto3" json:"container_image,omitempty"` + ContainerImage string `protobuf:"bytes,8,opt,name=container_image,json=containerImage,proto3" json:"container_image,omitempty"` // 容器名称 - ContainerName string `protobuf:"bytes,8,opt,name=container_name,json=containerName,proto3" json:"container_name,omitempty"` + ContainerName string `protobuf:"bytes,9,opt,name=container_name,json=containerName,proto3" json:"container_name,omitempty"` // v cpu数 - CpuPod string `protobuf:"bytes,9,opt,name=cpu_pod,json=cpuPod,proto3" json:"cpu_pod,omitempty"` + CpuPod string `protobuf:"bytes,10,opt,name=cpu_pod,json=cpuPod,proto3" json:"cpu_pod,omitempty"` // 内存MB - MemoryPod string `protobuf:"bytes,10,opt,name=memory_pod,json=memoryPod,proto3" json:"memory_pod,omitempty"` + MemoryPod string `protobuf:"bytes,11,opt,name=memory_pod,json=memoryPod,proto3" json:"memory_pod,omitempty"` // 重启策略 - RestartPolicy string `protobuf:"bytes,11,opt,name=restart_policy,json=restartPolicy,proto3" json:"restart_policy,omitempty"` + RestartPolicy string `protobuf:"bytes,12,opt,name=restart_policy,json=restartPolicy,proto3" json:"restart_policy,omitempty"` // labels - Labels string `protobuf:"bytes,12,opt,name=labels,proto3" json:"labels,omitempty"` + Labels string `protobuf:"bytes,13,opt,name=labels,proto3" json:"labels,omitempty"` + //请求源,如果是从pcm sdk 过来的,则单独生成tenanters实体 + RequestSource string `protobuf:"bytes,14,opt,name=requestSource,proto3" json:"requestSource,omitempty"` } func (x *UpdatePodReq) Reset() { @@ -777,6 +817,13 @@ func (x *UpdatePodReq) GetAccountName() string { return "" } +func (x *UpdatePodReq) GetPcmId() string { + if x != nil { + return x.PcmId + } + return "" +} + func (x *UpdatePodReq) GetPodId() string { if x != nil { return x.PodId @@ -847,12 +894,19 @@ func (x *UpdatePodReq) GetLabels() string { return "" } +func (x *UpdatePodReq) GetRequestSource() string { + if x != nil { + return x.RequestSource + } + return "" +} + type UpdatePodResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 查询是否完成,如果为否-false,则可以将下面三个分页参数填入到请求中,继续查询 + // 更新是否完成 Finished bool `protobuf:"varint,1,opt,name=finished,proto3" json:"finished,omitempty"` // 请求id,出现问题后提供给云厂商,排查问题 RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` @@ -1142,8 +1196,10 @@ type ListPodReq struct { // 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"` + //请求源,如果是从pcm sdk 过来的,则单独生成tenanters实体 + RequestSource string `protobuf:"bytes,3,opt,name=requestSource,proto3" json:"requestSource,omitempty"` } func (x *ListPodReq) Reset() { @@ -1192,6 +1248,13 @@ func (x *ListPodReq) GetNamespace() string { return "" } +func (x *ListPodReq) GetRequestSource() string { + if x != nil { + return x.RequestSource + } + return "" +} + type ListPodResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1382,232 +1445,246 @@ var file_idl_pbpod_pod_proto_rawDesc = []byte{ 0x6c, 0x2f, 0x70, 0x62, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x2f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf3, 0x03, 0x0a, 0x0b, 0x50, 0x6f, 0x64, 0x49, 0x6e, 0x73, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8a, 0x04, 0x0a, 0x0b, 0x50, 0x6f, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 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, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, - 0x06, 0x70, 0x6f, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, - 0x6f, 0x64, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, - 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, - 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, - 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, - 0x07, 0x63, 0x70, 0x75, 0x5f, 0x70, 0x6f, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x63, 0x70, 0x75, 0x50, 0x6f, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, - 0x5f, 0x70, 0x6f, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x6d, 0x6f, - 0x72, 0x79, 0x50, 0x6f, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, - 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, - 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x49, 0x64, 0x12, 0x15, - 0x0a, 0x06, 0x76, 0x70, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x76, 0x70, 0x63, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x48, 0x0a, 0x0d, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x64, 0x73, 0x52, 0x65, 0x71, 0x12, 0x37, 0x0a, 0x0c, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x64, 0x52, 0x65, 0x71, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x62, 0x70, 0x6f, 0x64, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x50, 0x6f, 0x64, 0x52, 0x65, 0x71, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, - 0x6f, 0x64, 0x52, 0x65, 0x71, 0x22, 0x4b, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, - 0x6f, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, - 0x68, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, - 0x68, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x49, 0x64, 0x22, 0xbb, 0x03, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x64, - 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, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x70, - 0x6f, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x64, - 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x09, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x6d, - 0x61, 0x67, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x70, - 0x75, 0x5f, 0x70, 0x6f, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x70, 0x75, - 0x50, 0x6f, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x6f, - 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x50, - 0x6f, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, - 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1b, - 0x0a, 0x09, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x76, - 0x70, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x70, 0x63, - 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x22, 0x7c, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x1d, 0x0a, - 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, - 0x70, 0x6f, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, - 0x64, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xd3, - 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x64, 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, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x6f, 0x64, 0x5f, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x64, 0x49, 0x64, 0x12, 0x19, - 0x0a, 0x08, 0x70, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x67, 0x69, 0x6f, - 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x67, 0x69, - 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x7c, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, - 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, - 0x12, 0x15, 0x0a, 0x06, 0x70, 0x6f, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x70, 0x6f, 0x64, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6f, 0x64, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x64, 0x4e, 0x61, - 0x6d, 0x65, 0x22, 0x9a, 0x03, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x64, - 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, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x70, - 0x6f, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x64, - 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x06, 0x70, 0x63, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, + 0x63, 0x6d, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x6f, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x64, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x70, + 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, + 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x67, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, + 0x72, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x25, 0x0a, + 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x70, 0x75, 0x5f, 0x70, 0x6f, 0x64, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x70, 0x75, 0x50, 0x6f, 0x64, 0x12, 0x1d, 0x0a, + 0x0a, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x50, 0x6f, 0x64, 0x12, 0x2a, 0x0a, 0x11, + 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, + 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, + 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x6e, + 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x75, 0x62, + 0x6e, 0x65, 0x74, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x76, 0x70, 0x63, 0x5f, 0x69, 0x64, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x70, 0x63, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x22, 0x48, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x64, 0x73, + 0x52, 0x65, 0x71, 0x12, 0x37, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x64, + 0x52, 0x65, 0x71, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x62, 0x70, 0x6f, + 0x64, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x64, 0x52, 0x65, 0x71, 0x52, 0x0c, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x64, 0x52, 0x65, 0x71, 0x22, 0x4b, 0x0a, 0x0e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, + 0x0a, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xe1, 0x03, 0x0a, 0x0c, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x64, 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, 0x12, + 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x6f, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x64, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6f, 0x64, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x64, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x70, 0x75, 0x5f, 0x70, 0x6f, 0x64, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x63, 0x70, 0x75, 0x50, 0x6f, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, + 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x50, 0x6f, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x65, 0x63, + 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, + 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x76, 0x70, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x70, 0x63, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x7c, 0x0a, + 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, + 0x0a, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x6f, 0x64, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x64, 0x49, 0x64, + 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x90, 0x02, 0x0a, 0x0c, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x64, 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, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x63, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x63, 0x6d, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x70, + 0x6f, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x64, + 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, - 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x72, - 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x70, 0x75, 0x5f, - 0x70, 0x6f, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x70, 0x75, 0x50, 0x6f, - 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x64, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x50, 0x6f, 0x64, - 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x22, - 0x7c, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x70, - 0x6f, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x64, - 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xba, 0x02, - 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 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, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, - 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, - 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x67, 0x69, 0x6f, - 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x65, - 0x67, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x6f, 0x64, 0x5f, - 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x70, 0x6f, 0x64, 0x49, 0x64, 0x12, - 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, - 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x6e, 0x65, 0x78, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1c, 0x0a, 0x09, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0xd3, 0x01, 0x0a, 0x11, 0x4c, - 0x69, 0x73, 0x74, 0x50, 0x6f, 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 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, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6e, 0x69, - 0x73, 0x68, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x6e, 0x69, - 0x73, 0x68, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, - 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, 0x78, 0x74, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, - 0x22, 0x5f, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x64, 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, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 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, 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, + 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x7c, + 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x6f, + 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x64, 0x49, + 0x64, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xd7, 0x03, 0x0a, + 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x64, 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, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x63, 0x6d, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x63, 0x6d, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, + 0x70, 0x6f, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, + 0x64, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, + 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x70, 0x75, + 0x5f, 0x70, 0x6f, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x70, 0x75, 0x50, + 0x6f, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x64, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x50, 0x6f, + 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x7c, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x50, 0x6f, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, + 0x68, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, + 0x68, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x6f, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x64, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6f, 0x64, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x64, + 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xba, 0x02, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x64, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 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, 0x12, 0x21, + 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1f, + 0x0a, 0x0b, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x15, 0x0a, 0x06, 0x70, 0x6f, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x70, 0x6f, 0x64, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x67, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, 0x78, 0x74, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x22, 0xd3, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x64, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 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, 0x12, + 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, + 0x65, 0x78, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x85, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, + 0x50, 0x6f, 0x64, 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, 0x12, 0x1c, 0x0a, 0x09, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 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, 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, 0x2e, 0x5a, 0x2c, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4a, 0x43, 0x43, 0x45, 0x2d, + 0x6e, 0x75, 0x64, 0x74, 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 ( diff --git a/lan_trans/idl/pbpod/pod.pb.gw.go b/lan_trans/idl/pbpod/pod.pb.gw.go index 8a65b392..8aed6f35 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 de387a58..be747571 100644 --- a/lan_trans/idl/pbtenant/tenant.pb.go +++ b/lan_trans/idl/pbtenant/tenant.pb.go @@ -939,18 +939,18 @@ var file_idl_pbtenant_tenant_proto_rawDesc = []byte{ 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, + 0x73, 0x5f, 0x73, 0x61, 0x5f, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x31, 0x10, 0x15, 0x32, 0x71, 0x0a, + 0x0d, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x1a, 0x60, + 0x92, 0x41, 0x5d, 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, + 0xe5, 0x8a, 0xa1, 0x1a, 0x3b, 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, 0x20, + 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x4a, 0x43, 0x43, 0x45, 0x2d, 0x6e, 0x75, 0x64, 0x74, 0x2f, 0x50, 0x43, 0x4d, + 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4a, + 0x43, 0x43, 0x45, 0x2d, 0x6e, 0x75, 0x64, 0x74, 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 ( diff --git a/lan_trans/openapiv2/idl/demo/demo.swagger.json b/lan_trans/openapiv2/idl/demo/demo.swagger.json index a969e31b..d7db3be6 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 64288cb0..92ee3276 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", @@ -232,7 +232,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", @@ -247,14 +247,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", @@ -262,7 +262,7 @@ }, { "name": "pageNumber", - "description": "分页相关参数,页码.", + "description": "分页相关参数,页码", "in": "query", "required": false, "type": "integer", @@ -270,7 +270,7 @@ }, { "name": "pageSize", - "description": "分页相关参数,每页数量.", + "description": "分页相关参数,每页数量", "in": "query", "required": false, "type": "integer", @@ -278,14 +278,14 @@ }, { "name": "nextToken", - "description": "分页相关参数,下一页的token.", + "description": "分页相关参数,下一页的token", "in": "query", "required": false, "type": "string" }, { "name": "namespace", - "description": "--------harvester---------\nnamespace.", + "description": "--------harvester---------\nnamespace", "in": "query", "required": false, "type": "string" @@ -985,14 +985,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 62f0e151..c9ab7792 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": "cloud name.\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", @@ -52,6 +52,14 @@ }, { "name": "namespace", + "description": "命名空间", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "requestSource", + "description": "请求源,如果是从pcm sdk 过来的,则单独生成tenanters实体", "in": "query", "required": false, "type": "string" @@ -205,7 +213,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 +228,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 +243,7 @@ }, { "name": "regionName", - "description": "区域名称,各云厂商自定义的region name.", + "description": "区域名称,各云厂商自定义的region name", "in": "query", "required": false, "type": "integer", @@ -243,7 +251,7 @@ }, { "name": "podId", - "description": "podID.", + "description": "podID", "in": "query", "required": false, "type": "integer", @@ -251,7 +259,7 @@ }, { "name": "pageNumber", - "description": "分页相关参数,页码.", + "description": "分页相关参数,页码", "in": "query", "required": false, "type": "integer", @@ -259,7 +267,7 @@ }, { "name": "pageSize", - "description": "分页相关参数,每页数量.", + "description": "分页相关参数,每页数量", "in": "query", "required": false, "type": "integer", @@ -267,14 +275,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" @@ -375,6 +383,10 @@ "namespace": { "type": "string", "title": "名空间" + }, + "requestSource": { + "type": "string", + "title": "请求源,如果是从pcm sdk 过来的,则单独生成tenanters实体" } } }, @@ -438,13 +450,17 @@ "type": "string", "title": "账号名称" }, + "pcmId": { + "type": "string", + "title": "pcm id" + }, "podId": { "type": "string", - "title": "实例ID" + "title": "podId" }, "podName": { "type": "string", - "title": "实例名称" + "title": "podName" }, "namespace": { "type": "string", @@ -454,6 +470,10 @@ "type": "integer", "format": "int32", "title": "地域,数据中心" + }, + "requestSource": { + "type": "string", + "title": "请求源,如果是从pcm sdk 过来的,则单独生成tenanters实体" } } }, @@ -462,7 +482,7 @@ "properties": { "finished": { "type": "boolean", - "title": "查询是否完成,如果为否-false,则可以将下面三个分页参数填入到请求中,继续查询" + "title": "删除是否完成" }, "requestId": { "type": "string", @@ -535,6 +555,10 @@ "type": "string", "title": "账号名称" }, + "pcmId": { + "type": "string", + "title": "pcm id" + }, "podId": { "type": "string", "title": "实例id" @@ -601,13 +625,17 @@ "type": "string", "title": "账号名称" }, + "pcmId": { + "type": "string", + "title": "pcm ID" + }, "podId": { "type": "string", - "title": "实例ID" + "title": "podId" }, "podName": { "type": "string", - "title": "实例名称" + "title": "podName" }, "namespace": { "type": "string", @@ -641,6 +669,10 @@ "labels": { "type": "string", "title": "labels" + }, + "requestSource": { + "type": "string", + "title": "请求源,如果是从pcm sdk 过来的,则单独生成tenanters实体" } } }, @@ -649,7 +681,7 @@ "properties": { "finished": { "type": "boolean", - "title": "查询是否完成,如果为否-false,则可以将下面三个分页参数填入到请求中,继续查询" + "title": "更新是否完成" }, "requestId": { "type": "string", @@ -681,14 +713,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 636ce737..0a73b355 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", diff --git a/swagger.sh b/swagger.sh old mode 100755 new mode 100644 diff --git a/unittest.sh b/unittest.sh old mode 100755 new mode 100644