sdk demo 0517

This commit is contained in:
zhouqunjie 2022-05-17 17:37:15 +08:00
parent 63f8433567
commit c057d691d3
8 changed files with 184 additions and 86 deletions

View File

@ -19,7 +19,7 @@ func CreateContainerGroup(request *CreateContainerGroupRequest) (response *Creat
provider := pbtenant.CloudProvider(request.ProviderId) provider := pbtenant.CloudProvider(request.ProviderId)
var configFile string var configFile string
flag.StringVar(&configFile, "conf", "configs/config.yaml", "config.yaml") flag.StringVar(&configFile, "confAli", "configs/config.yaml", "config.yaml")
flag.Parse() flag.Parse()
defer glog.Flush() defer glog.Flush()
@ -43,13 +43,17 @@ func CreateContainerGroup(request *CreateContainerGroupRequest) (response *Creat
switch request.ProviderId { switch request.ProviderId {
case 0: case 0:
regionId, _ = tenanter.GetAliRegionId(request.RegionId) regionId, _ = tenanter.GetAliRegionId(request.RegionId)
cpuPod = strconv.FormatFloat(cpuPodFloat, 'f', 0, 64)
memoryPod = strconv.FormatFloat(memoryPodFloat, 'f', 0, 64)
case 1: case 1:
regionId, _ = tenanter.GetTencentRegionId(request.RegionId) regionId, _ = tenanter.GetTencentRegionId(request.RegionId)
cpuPod = strconv.FormatFloat(cpuPodFloat, 'f', 0, 64)
memoryPod = strconv.FormatFloat(memoryPodFloat, 'f', 0, 64)
case 2: case 2:
//华为的CPU和内存数量要进行转换 //华为的CPU和内存数量要进行转换
regionId, _ = tenanter.GetHuaweiRegionId(request.RegionId) regionId, _ = tenanter.GetHuaweiRegionId(request.RegionId)
cpuPod = strconv.FormatFloat(cpuPodFloat*1000, 'f', 0, 64) cpuPod = strconv.FormatFloat(cpuPodFloat*1000, 'f', 0, 64) + "m"
memoryPod = strconv.FormatFloat(memoryPodFloat, 'f', 0, 64) memoryPod = strconv.FormatFloat(memoryPodFloat, 'f', 0, 64) + "Gi"
case 3: case 3:
regionId, _ = tenanter.GetK8SRegionId(request.RegionId) regionId, _ = tenanter.GetK8SRegionId(request.RegionId)
} }
@ -62,8 +66,8 @@ func CreateContainerGroup(request *CreateContainerGroupRequest) (response *Creat
RegionId: regionId, RegionId: regionId,
ContainerImage: containerImage, ContainerImage: containerImage,
ContainerName: containerName, ContainerName: containerName,
CpuPod: cpuPod + "m", CpuPod: cpuPod,
MemoryPod: memoryPod + "Gi", MemoryPod: memoryPod,
SecurityGroupId: "sg-6qlun7hd", SecurityGroupId: "sg-6qlun7hd",
SubnetId: "subnet-mnwfg2fk", SubnetId: "subnet-mnwfg2fk",
VpcId: "vpc-rkwt40g5", VpcId: "vpc-rkwt40g5",

View File

@ -33,7 +33,7 @@ func DeleteContainerGroup(request *DeleteContainerGroupRequest) (response *Delet
provider := pbtenant.CloudProvider(request.ProviderId) provider := pbtenant.CloudProvider(request.ProviderId)
var configFile string var configFile string
flag.StringVar(&configFile, "conf", "configs/config.yaml", "config.yaml") flag.StringVar(&configFile, "confAli", "configs/config.yaml", "config.yaml")
flag.Parse() flag.Parse()
defer glog.Flush() defer glog.Flush()

View File

@ -33,7 +33,7 @@ func UpdateContainerGroup(request *UpdateContainerGroupRequest) (response *Updat
provider := pbtenant.CloudProvider(request.ProviderId) provider := pbtenant.CloudProvider(request.ProviderId)
var configFile string var configFile string
flag.StringVar(&configFile, "conf", "configs/config.yaml", "config.yaml") flag.StringVar(&configFile, "confAli", "configs/config.yaml", "config.yaml")
flag.Parse() flag.Parse()
defer glog.Flush() defer glog.Flush()

View File

@ -3,11 +3,12 @@ package main
import ( import (
openapi "github.com/alibabacloud-go/darabonba-openapi/client" openapi "github.com/alibabacloud-go/darabonba-openapi/client"
eci20180808 "github.com/alibabacloud-go/eci-20180808/v2/client" "github.com/aliyun/alibaba-cloud-sdk-go/services/eci"
"github.com/alibabacloud-go/tea/tea" "github.com/alibabacloud-go/tea/tea"
) )
func CreateClient(accessKeyId *string, accessKeySecret *string) (_result *eci20180808.Client, _err error) { func CreateClient(accessKeyId *string, accessKeySecret *string) (_result *eci.Client, _err error) {
config := &openapi.Config{ config := &openapi.Config{
// 您的AccessKey ID // 您的AccessKey ID
AccessKeyId: accessKeyId, AccessKeyId: accessKeyId,
@ -16,32 +17,78 @@ func CreateClient(accessKeyId *string, accessKeySecret *string) (_result *eci201
} }
// 访问的域名 // 访问的域名
config.Endpoint = tea.String("eci.aliyuncs.com") config.Endpoint = tea.String("eci.aliyuncs.com")
_result = &eci20180808.Client{} _result = &eci.Client{}
_result, _err = eci20180808.NewClient(config) _result, _err = eci.NewClientWithAccessKey("cn-hangzhou", *accessKeyId, *accessKeySecret)
return _result, _err return _result, _err
} }
func aliOriginMain() (_err error) { func aliCreate(client eci.Client) (_err error) {
client, _err := CreateClient(tea.String(""), tea.String(""))
if _err != nil { request := eci.CreateCreateContainerGroupRequest()
return _err request.RegionId = "cn-hangzhou"
} request.ContainerGroupName = "pcm0517"
requestContainer := make([]eci.CreateContainerGroupContainer, 1)
requestContainer[0].Image = "nginx:latest"
requestContainer[0].Name = "pcm"
requestContainer[0].Cpu = "1"
requestContainer[0].Memory = "2"
request.Container = &requestContainer
resp, _err := client.CreateContainerGroup(request)
println(resp.ContainerGroupId)
return _err
}
func aliDescribe(client eci.Client) (_err error) {
request := eci.CreateDescribeContainerGroupsRequest()
request.RegionId = "cn-hangzhou"
resp, _err := client.DescribeContainerGroups(request)
println(resp.ContainerGroups[0].ContainerGroupId)
describeContainerGroupsRequest := &eci20180808.DescribeContainerGroupsRequest{
RegionId: tea.String("cn-hangzhou"),
}
// 复制代码运行请自行打印 API 的返回值
resp, _err := client.DescribeContainerGroups(describeContainerGroupsRequest)
println(*resp.Body.ContainerGroups[0].ContainerGroupId)
if _err != nil { if _err != nil {
return _err return _err
} }
return _err return _err
} }
func aliUpdate(client eci.Client) (_err error) {
request := eci.CreateUpdateContainerGroupRequest()
request.RegionId = "cn-hangzhou"
request.ContainerGroupId = "eci-bp10k06yd8efj65d4iqg"
request.RestartPolicy = "Never"
resp, _err := client.UpdateContainerGroup(request)
println(resp.RequestId)
if _err != nil {
return _err
}
return _err
}
func aliDelete(client eci.Client) (_err error) {
request := eci.CreateDeleteContainerGroupRequest()
request.RegionId = "cn-hangzhou"
request.ContainerGroupId = "eci-bp10k06yd8efj65d4iqg"
resp, _err := client.DeleteContainerGroup(request)
println(resp.RequestId)
if _err != nil {
return _err
}
return _err
}
func main() { func main() {
err := aliOriginMain() client, _ := CreateClient(tea.String("LTAI5tJbog28gBTVzBmvqCBG"), tea.String("CXTClnd0ZQhxn4C2b5NN1nmra7hl1z"))
err := aliDelete(*client)
if err != nil { if err != nil {
panic(err) panic(err)
} }
} }

View File

@ -12,14 +12,14 @@ import (
"k8s.io/client-go/tools/clientcmd/api" "k8s.io/client-go/tools/clientcmd/api"
) )
const ( //const (
apiVersion = "client.authentication.k8s.io/v1beta1" // apiVersion = "client.authentication.k8s.io/v1beta1"
cciEndpoint = "https://cci.cn-east-3.myhuaweicloud.com" // cciEndpoint = "https://cci.cn-east-3.myhuaweicloud.com"
iamEndpoint = "https://iam.cn-east-3.myhuaweicloud.com" // iamEndpoint = "https://iam.cn-east-3.myhuaweicloud.com"
projectName = "cn-east-3" // projectName = "cn-east-3"
ak = "ATQTIWUT9K66VRMMXKVY" // ak = "ATQTIWUT9K66VRMMXKVY"
sk = "Wa0aixDVuhZOfDZGWvgIJQBHnyiDlGdgDn1Ai5Yy" // sk = "Wa0aixDVuhZOfDZGWvgIJQBHnyiDlGdgDn1Ai5Yy"
) //)
// NewClientOrigin 通过AK/SK认证创建ClientSet // NewClientOrigin 通过AK/SK认证创建ClientSet
func NewClientOrigin() (*kubernetes.Clientset, error) { func NewClientOrigin() (*kubernetes.Clientset, error) {

View File

@ -2,51 +2,90 @@ package main
import ( import (
pcm_pod_ali "code.gitlink.org.cn/JCCE/PCM.git/adaptor/pod/server/ali" pcm_pod_ali "code.gitlink.org.cn/JCCE/PCM.git/adaptor/pod/server/ali"
"github.com/alibabacloud-go/tea/tea"
"os"
) )
func _main(args []*string) (_err error) { func aliCreatePCM() (_err error) {
request := pcm_pod_ali.CreateCreateContainerGroupRequest()
//查询 /****************PCM params******************/
//describeContainerGroupsRequest := pcm_pod_ali.DescribeContainerGroupsRequest{ request.ProviderId = 2
// RegionId: "cn-hangzhou", //ali:cn-hangzhou tc:ap-guangzhou hw: cn-east-3
// ProviderId: 1, request.RegionId = "cn-east-3"
//} request.Namespace = "pcm"
// /****************PCM params******************/
//// 复制代码运行请自行打印 API 的返回值 request.ContainerGroupName = "pcm0517"
//resp, _err := pcm_pod_ali.DescribeContainerGroups(&describeContainerGroupsRequest) requestContainer := make([]pcm_pod_ali.CreateContainerGroupContainer, 1)
//println(resp.ContainerGroups[0].ContainerGroupId) requestContainer[0].Image = "nginx:latest"
requestContainer[0].Name = "pcm"
//创建 requestContainer[0].Cpu = "1"
container := pcm_pod_ali.CreateContainerGroupContainer{ requestContainer[0].Memory = "2"
Image: "nginx:latest", request.Container = &requestContainer
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-guangzhou hw: cn-east-3
RegionId: "cn-east-3",
ProviderId: 2,
Namespace: "pcm",
ContainerGroupName: "sdk-alitohuawei",
Container: &containers,
}
// 复制代码运行请自行打印 API 的返回值
resp, _err := pcm_pod_ali.CreateContainerGroup(&createContainerGroupsRequest)
resp, _err := pcm_pod_ali.CreateContainerGroup(request)
println(resp.ContainerGroupId) println(resp.ContainerGroupId)
return _err
}
func aliDescribePCM() (_err error) {
request := pcm_pod_ali.CreateDescribeContainerGroupsRequest()
/****************PCM params******************/
request.ProviderId = 2
//ali:cn-hangzhou tc:ap-guangzhou hw: cn-east-3
request.RegionId = "cn-east-3"
request.Namespace = "pcm"
/****************PCM params******************/
resp, _err := pcm_pod_ali.DescribeContainerGroups(request)
println(resp.ContainerGroups[0].ContainerGroupId)
return _err
}
func aliUpdatePCM() (_err error) {
request := pcm_pod_ali.CreateUpdateContainerGroupRequest()
/****************PCM params******************/
request.ProviderId = 2
//ali:cn-hangzhou tc:ap-guangzhou hw: cn-east-3
request.RegionId = "cn-east-3"
request.Namespace = "pcm"
/****************PCM params******************/
requestContainer := make([]pcm_pod_ali.UpdateContainerGroupContainer, 1)
requestContainer[0].Cpu = "2"
requestContainer[0].Memory = "4"
request.Container = &requestContainer
resp, _err := pcm_pod_ali.UpdateContainerGroup(request)
println(resp.RequestId)
return _err
}
func aliDeletePCM() (_err error) {
request := pcm_pod_ali.CreateDeleteContainerGroupRequest()
/****************PCM params******************/
request.ProviderId = 2
//ali:cn-hangzhou tc:ap-guangzhou hw: cn-east-3
request.RegionId = "cn-east-3"
request.Namespace = "pcm"
/****************PCM params******************/
request.ContainerGroupId = "eksci-hhfpfms6"
resp, _err := pcm_pod_ali.DeleteContainerGroup(request)
println(resp.RequestId)
if _err != nil {
return _err
}
return _err return _err
} }
func main() { func main() {
err := _main(tea.StringSlice(os.Args[1:]))
err := aliUpdatePCM()
if err != nil { if err != nil {
panic(err) panic(err)
} }

View File

@ -12,6 +12,15 @@ import (
"k8s.io/client-go/tools/clientcmd/api" "k8s.io/client-go/tools/clientcmd/api"
) )
const (
apiVersion = "client.authentication.k8s.io/v1beta1"
cciEndpoint = "https://cci.cn-east-3.myhuaweicloud.com"
iamEndpoint = "https://iam.cn-east-3.myhuaweicloud.com"
projectName = "cn-east-3"
ak = "ATQTIWUT9K66VRMMXKVY"
sk = "Wa0aixDVuhZOfDZGWvgIJQBHnyiDlGdgDn1Ai5Yy"
)
// NewClient 通过AK/SK认证创建ClientSet // NewClient 通过AK/SK认证创建ClientSet
func NewClient() (*kubernetes.Clientset, error) { func NewClient() (*kubernetes.Clientset, error) {
config, err := clientcmd.BuildConfigFromFlags(cciEndpoint, "") config, err := clientcmd.BuildConfigFromFlags(cciEndpoint, "")
@ -161,23 +170,23 @@ func main() {
return return
} }
fmt.Println("Pod created") fmt.Println("Pod created")
fmt.Println("start to get Pod details") //fmt.Println("start to get Pod details")
_, err = ListPod(cs) //_, err = ListPod(cs)
if err != nil { //if err != nil {
return // return
} //}
fmt.Println("Pod details got") //fmt.Println("Pod details got")
fmt.Println("start to update Pod") //fmt.Println("start to update Pod")
err = UpdatePod(cs) //err = UpdatePod(cs)
if err != nil { //if err != nil {
return // return
} //}
fmt.Println("Pod updated") //fmt.Println("Pod updated")
fmt.Println("start to delete Pod") //fmt.Println("start to delete Pod")
err = DeletePod(cs) //err = DeletePod(cs)
if err != nil { //if err != nil {
return // return
} //}
fmt.Println("Pod deleted") //fmt.Println("Pod deleted")
} }

1
go.mod
View File

@ -5,7 +5,6 @@ go 1.17
require ( require (
github.com/alibabacloud-go/darabonba-openapi v0.1.4 github.com/alibabacloud-go/darabonba-openapi v0.1.4
github.com/alibabacloud-go/darabonba-string v1.0.0 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/ecs-20140526/v2 v2.1.0
github.com/alibabacloud-go/tea v1.1.15 github.com/alibabacloud-go/tea v1.1.15
github.com/alibabacloud-go/tea-utils v1.3.9 github.com/alibabacloud-go/tea-utils v1.3.9