first commit
This commit is contained in:
94
pkg/common/CmdTools/TencentCloudClient.go
Normal file
94
pkg/common/CmdTools/TencentCloudClient.go
Normal file
@ -0,0 +1,94 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
|
||||
clb "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb/v20180317"
|
||||
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common"
|
||||
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
|
||||
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile"
|
||||
)
|
||||
|
||||
// ./TencentCloudClient -t b -o add -key AKIDSoxxjI5tukPr9ECsQmwthKhroaCZlldI -sec b1FG2b3JMrESVLxjJdhYDgx12qPiplXB -reg ap-shanghai -params "{\"LoadBalancerId\":\"lb-jip7505r\",\"Targets\":[{\"InstanceId\":\"ins-n2i7x483\",\"Weight\":20}]}"
|
||||
// ./TencentCloudClient -t b -o remove -key AKIDSoxxjI5tukPr9ECsQmwthKhroaCZlldI -sec b1FG2b3JMrESVLxjJdhYDgx12qPiplXB -reg ap-shanghai -params "{\"LoadBalancerId\":\"lb-jip7505r\",\"InstanceIds\":[\"ins-n2i7x483\"]}"
|
||||
func main03() {
|
||||
|
||||
var target string
|
||||
flag.StringVar(&target, "t", "b", "target: b=backendServer")
|
||||
var operation string
|
||||
flag.StringVar(&operation, "o", "add", "operation: add、remove")
|
||||
var accessKeyId string
|
||||
flag.StringVar(&accessKeyId, "key", "secretId", "accessKeyId")
|
||||
var accessSecret string
|
||||
flag.StringVar(&accessSecret, "sec", "secretKey", "accessSecret")
|
||||
var regionId string
|
||||
flag.StringVar(®ionId, "reg", "regionId", "regionId: cn-hangzhou")
|
||||
var params string
|
||||
flag.StringVar(¶ms, "params", "params", `
|
||||
AddBackendServers: [{"ServerId":"ServerId","Weight":"100","Type":"eni","ServerIp":"192.168.11.1"}]
|
||||
RemoveBackendServers: [{"ServerId":"ServerId","Weight":"100"}]
|
||||
`)
|
||||
flag.Parse()
|
||||
flag.Usage()
|
||||
fmt.Printf("target=%s,operation=%s,accessKeyId=%s,accessSecret=%s,regionId=%s,params=%s\n", target, operation, accessKeyId, accessSecret, regionId, params)
|
||||
if target == "b" {
|
||||
switch operation {
|
||||
case "add":
|
||||
ClassicBind(regionId, accessKeyId, accessSecret, params)
|
||||
break
|
||||
case "remove":
|
||||
ClassicRemove(regionId, accessKeyId, accessSecret, params)
|
||||
break
|
||||
default:
|
||||
fmt.Println("operation: " + operation + " not support")
|
||||
}
|
||||
} else {
|
||||
fmt.Println("target: " + target + " not support")
|
||||
}
|
||||
}
|
||||
|
||||
func ClassicBind(regionId, accessKeyId, accessSecret, params string) {
|
||||
credential := common.NewCredential(accessKeyId, accessSecret)
|
||||
cpf := profile.NewClientProfile()
|
||||
cpf.HttpProfile.Endpoint = "clb.tencentcloudapi.com"
|
||||
client, _ := clb.NewClient(credential, regionId, cpf)
|
||||
|
||||
request := clb.NewRegisterTargetsWithClassicalLBRequest()
|
||||
|
||||
err := request.FromJsonString(params)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
response, err := client.RegisterTargetsWithClassicalLB(request)
|
||||
if _, ok := err.(*errors.TencentCloudSDKError); ok {
|
||||
fmt.Printf("An API error has returned: %s", err)
|
||||
return
|
||||
}
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
fmt.Printf("%s", response.ToJsonString())
|
||||
}
|
||||
|
||||
func ClassicRemove(regionId, accessKeyId, accessSecret, params string) {
|
||||
credential := common.NewCredential(accessKeyId, accessSecret)
|
||||
cpf := profile.NewClientProfile()
|
||||
cpf.HttpProfile.Endpoint = "clb.tencentcloudapi.com"
|
||||
client, _ := clb.NewClient(credential, regionId, cpf)
|
||||
|
||||
request := clb.NewDeregisterTargetsFromClassicalLBRequest()
|
||||
err := request.FromJsonString(params)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
response, err := client.DeregisterTargetsFromClassicalLB(request)
|
||||
if _, ok := err.(*errors.TencentCloudSDKError); ok {
|
||||
fmt.Printf("An API error has returned: %s", err)
|
||||
return
|
||||
}
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
fmt.Printf("%s", response.ToJsonString())
|
||||
}
|
||||
Reference in New Issue
Block a user