From d603e3c1ee016c8a5ca6b6c4eb1d103e9e4b15a0 Mon Sep 17 00:00:00 2001 From: Dean Date: Wed, 5 Aug 2020 11:41:16 +0800 Subject: [PATCH 1/7] typo --- internal/adblib/token.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/adblib/token.go b/internal/adblib/token.go index d289547..d433b7c 100644 --- a/internal/adblib/token.go +++ b/internal/adblib/token.go @@ -5,7 +5,7 @@ import ( ) var TokenRequest = heredoc.Doc(` -https://sfc.baobeihuijia.com/release/oauth2/token?request_id=f572d396fae9206628714fb2ce00f72e94f2258f +https://scf.baobeihuijia.com/release/oauth2/token?request_id=f572d396fae9206628714fb2ce00f72e94f2258f please login with Github, and wait for 30s after you login. `) From e296197937c9b0603630e5687409fdcfcb85dc3c Mon Sep 17 00:00:00 2001 From: Dean Date: Wed, 5 Aug 2020 13:52:23 +0800 Subject: [PATCH 2/7] update --- internal/adblib/token.go | 1 - 1 file changed, 1 deletion(-) diff --git a/internal/adblib/token.go b/internal/adblib/token.go index d433b7c..521d4aa 100644 --- a/internal/adblib/token.go +++ b/internal/adblib/token.go @@ -8,4 +8,3 @@ var TokenRequest = heredoc.Doc(` https://scf.baobeihuijia.com/release/oauth2/token?request_id=f572d396fae9206628714fb2ce00f72e94f2258f please login with Github, and wait for 30s after you login. `) - From 18ef4877694e43372f0fe0491bd7311ccd24f1c4 Mon Sep 17 00:00:00 2001 From: Dean Date: Fri, 7 Aug 2020 17:46:02 +0800 Subject: [PATCH 3/7] add doc --- internal/adblib/man.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/internal/adblib/man.go b/internal/adblib/man.go index ef04dea..47a1510 100644 --- a/internal/adblib/man.go +++ b/internal/adblib/man.go @@ -109,6 +109,14 @@ $ Github or Git Command: brew install github/gh/gh gh --repo bbhj/lbs issue status gh --repo bbhj/lbs issue view 1 + + 5. Delete branch or tag + git branch -D dev + git push origin --delete dev + + git tag -d v1.0 + git push --delete origin v1.0 + `) OpenSSLDoc = heredoc.Doc(` From 52cf4947483dc110a63587012e515b0233131f4f Mon Sep 17 00:00:00 2001 From: Dean Date: Tue, 18 Aug 2020 14:27:15 +0800 Subject: [PATCH 4/7] add examples --- cmd/login.go | 4 ++-- cmd/service.go | 11 +++++++---- go.sum | 2 -- internal/adblib/dns.go | 16 ++++++++++++++++ internal/adblib/login.go | 4 +++- 5 files changed, 28 insertions(+), 9 deletions(-) create mode 100644 internal/adblib/dns.go diff --git a/cmd/login.go b/cmd/login.go index 24a3ca4..16502c7 100644 --- a/cmd/login.go +++ b/cmd/login.go @@ -20,9 +20,9 @@ var loginWithToken bool func initLogin() { rootCmd.AddCommand(loginCommand) + // hostSSHCmd.PersistentFlags().StringVarP(&sshFlags.IdentityFile, + // "identity_file", "i", "~/.adb/id_rsa", "identity file") loginCommand.PersistentFlags().BoolVarP(&loginWithToken, "token", "t", false, "login with token") - - // hostSSHCmd.PersistentFlags().StringVarP(&sshFlags.IdentityFile, "identity_file", "i", "~/.adb/id_rsa", "identity file") } func login() { diff --git a/cmd/service.go b/cmd/service.go index 40b90c4..7992fc4 100644 --- a/cmd/service.go +++ b/cmd/service.go @@ -18,6 +18,8 @@ package cmd import ( "fmt" + "github.com/airdb/adb/internal/adblib" + "github.com/airdb/sailor" "github.com/aliyun/alibaba-cloud-sdk-go/services/alidns" "github.com/spf13/cobra" @@ -74,10 +76,11 @@ func service() { var servicesAddCmdMinArgs = 2 var servicesAddCmd = &cobra.Command{ - Use: "add [service] [SRV record value]", - Short: "Add service", - Long: "Add service", - Args: cobra.MinimumNArgs(servicesAddCmdMinArgs), + Use: "add [service] [SRV record value]", + Short: "Add service", + Long: "Add service", + Example: adblib.DNSSrvDoc, + Args: cobra.MinimumNArgs(servicesAddCmdMinArgs), Run: func(cmd *cobra.Command, args []string) { addService(args) }, diff --git a/go.sum b/go.sum index 68b3a00..7350b3c 100644 --- a/go.sum +++ b/go.sum @@ -16,8 +16,6 @@ github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWX github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/airdb/sailor v1.1.2-0.20200802151610-a033b3f2a246 h1:5URmvEzDlQ5RoyiyUvrX5Ao5F7nlycdbUKoGuiVecjA= github.com/airdb/sailor v1.1.2-0.20200802151610-a033b3f2a246/go.mod h1:Txr7LHYpg61npbaDGkfud/lRaOFEaAB1f0anzuglOmI= -github.com/airdb/sailor v1.4.0-85dfa77 h1:ieXE0OhZKknCUZU3vi2bcYoWLt3BAiFDKosBTHH35pI= -github.com/airdb/sailor v1.4.0-85dfa77/go.mod h1:Txr7LHYpg61npbaDGkfud/lRaOFEaAB1f0anzuglOmI= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/aliyun/alibaba-cloud-sdk-go v1.61.279 h1:y/fx2Tc2JCJ92exFGxtytxUOJfInHCNLuk/7Bbmbgz0= diff --git a/internal/adblib/dns.go b/internal/adblib/dns.go new file mode 100644 index 0000000..8cab746 --- /dev/null +++ b/internal/adblib/dns.go @@ -0,0 +1,16 @@ +package adblib + +import ( + "github.com/MakeNowJust/heredoc" +) + +var ( + DNSSrvDoc = heredoc.Doc(` +$ adb srv add _sip._tcp "10 60 443 bigbox.airdb.red" +$ adb srv add _sip._tcp "10 20 443 smallbox1.airdb.blue" +$ adb srv add _sip._tcp "10 20 443 smallbox2.airdb.green" +$ adb srv add _sip._tcp "20 0 443 backup.airdb.black" + +> Refer: https://zh.wikipedia.org/wiki/SRV记录 + `) +) diff --git a/internal/adblib/login.go b/internal/adblib/login.go index 0f0990d..bd916bf 100644 --- a/internal/adblib/login.go +++ b/internal/adblib/login.go @@ -22,8 +22,10 @@ func LoginWithToken() { bar.NewOption(0, 100) + var sleepInterval time.Duration = 100 + for i := 0; i <= 100; i++ { - time.Sleep(100 * time.Millisecond) + time.Sleep(sleepInterval * time.Millisecond) bar.Play(int64(i)) } From 1c68fbde5f3b0097184e78a403fa42be621e2418 Mon Sep 17 00:00:00 2001 From: deancn Date: Tue, 1 Sep 2020 01:08:10 +0800 Subject: [PATCH 5/7] update --- cmd/mysql.go | 3 +++ internal/adblib/example.go | 11 +++++++++++ 2 files changed, 14 insertions(+) create mode 100644 internal/adblib/example.go diff --git a/cmd/mysql.go b/cmd/mysql.go index 8d9919c..3db14de 100644 --- a/cmd/mysql.go +++ b/cmd/mysql.go @@ -2,6 +2,7 @@ package cmd import ( "fmt" + "github.com/airdb/adb/internal/adblib" "strings" "github.com/airdb/sailor" @@ -15,6 +16,7 @@ var mysqlCmd = &cobra.Command{ Long: "Airdb mysql client", DisableFlagParsing: false, Args: cobra.MinimumNArgs(1), + Example:adblib.SqlDoc, Aliases: []string{"sql"}, Run: func(cmd *cobra.Command, args []string) { mysql(args) @@ -49,6 +51,7 @@ func mysql(args []string) { request.DomainName = ServiceDomain request.RRKeyWord = args[0] + fmt.Println(request.RRKeyWord) output, err := client.DescribeDomainRecords(request) if err != nil { fmt.Println(err) diff --git a/internal/adblib/example.go b/internal/adblib/example.go new file mode 100644 index 0000000..07ec2eb --- /dev/null +++ b/internal/adblib/example.go @@ -0,0 +1,11 @@ +package adblib + +import ( + "github.com/MakeNowJust/heredoc" +) + +var ( + SqlDoc = heredoc.Doc(` +adb mysql mina-api -uroot -ppasswd --db test + `) +) From b436c2b77fa6d24322ec329a5fd32e6f7ed5ee22 Mon Sep 17 00:00:00 2001 From: deancn Date: Sun, 6 Sep 2020 02:56:38 +0800 Subject: [PATCH 6/7] add clb --- cmd/bbhj.go | 13 ++++- cmd/mysql.go | 2 +- go.mod | 1 + go.sum | 2 + internal/adblib/tencentcloud.go | 90 +++++++++++++++++++++++++++++++++ 5 files changed, 106 insertions(+), 2 deletions(-) create mode 100644 internal/adblib/tencentcloud.go diff --git a/cmd/bbhj.go b/cmd/bbhj.go index 8460cc1..6cd80b6 100644 --- a/cmd/bbhj.go +++ b/cmd/bbhj.go @@ -2,6 +2,7 @@ package cmd import ( "fmt" + "github.com/airdb/adb/internal/adblib" "github.com/spf13/cobra" ) @@ -12,6 +13,16 @@ var bbhjCommand = &cobra.Command{ Long: "bbhj operation", DisableFlagParsing: true, Run: func(cmd *cobra.Command, args []string) { - fmt.Println("bbhj operation") + bbhj() }, } + +func bbhj() { + client, err := adblib.NewCLBClient() + if err != nil { + fmt.Println(err) + return + } + + client.ListCLB() +} diff --git a/cmd/mysql.go b/cmd/mysql.go index 3db14de..cdfb92f 100644 --- a/cmd/mysql.go +++ b/cmd/mysql.go @@ -16,7 +16,7 @@ var mysqlCmd = &cobra.Command{ Long: "Airdb mysql client", DisableFlagParsing: false, Args: cobra.MinimumNArgs(1), - Example:adblib.SqlDoc, + Example: adblib.SqlDoc, Aliases: []string{"sql"}, Run: func(cmd *cobra.Command, args []string) { mysql(args) diff --git a/go.mod b/go.mod index be0bc26..d4dcb22 100644 --- a/go.mod +++ b/go.mod @@ -13,5 +13,6 @@ require ( github.com/slack-go/slack v0.6.5 github.com/spf13/cobra v1.0.0 github.com/spf13/viper v1.4.0 + github.com/tencentcloud/tencentcloud-sdk-go v1.0.12 golang.org/x/sys v0.0.0-20200523222454-059865788121 // indirect ) diff --git a/go.sum b/go.sum index 7350b3c..c3e59f8 100644 --- a/go.sum +++ b/go.sum @@ -233,6 +233,8 @@ github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJy github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/swaggo/gin-swagger v1.2.0/go.mod h1:qlH2+W7zXGZkczuL+r2nEBR2JTT+/lX05Nn6vPhc7OI= github.com/swaggo/swag v1.5.1/go.mod h1:1Bl9F/ZBpVWh22nY0zmYyASPO1lI/zIwRDrpZU+tv8Y= +github.com/tencentcloud/tencentcloud-sdk-go v1.0.12 h1:ABgTcYxBePz5rlueSYpwFHImNq2NCnrjmx21jIXLbyM= +github.com/tencentcloud/tencentcloud-sdk-go v1.0.12/go.mod h1:asUz5BPXxgoPGaRgZaVm1iGcUAuHyYUo1nXqKa83cvI= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go v1.1.5-pre/go.mod h1:FwP/aQVg39TXzItUBMwnWp9T9gPQnXw4Poh4/oBQZ/0= diff --git a/internal/adblib/tencentcloud.go b/internal/adblib/tencentcloud.go new file mode 100644 index 0000000..97ca629 --- /dev/null +++ b/internal/adblib/tencentcloud.go @@ -0,0 +1,90 @@ +package adblib + +import ( + "fmt" + "os" + + 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" +) + +const CLBEndpoint = "clb.tencentcloudapi.com" + +type Client struct { + *clb.Client +} + +func NewCLBClient() (*Client, error){ + secretID := os.Getenv("TENCENTCLOUD_SECRET_ID") + secretKey := os.Getenv("TENCENTCLOUD_SECRET_KEY") + region := os.Getenv("TENCENTCLOUD_REGION") + + credential := common.NewCredential(secretID, secretKey) + + cpf := profile.NewClientProfile() + cpf.HttpProfile.Endpoint = CLBEndpoint + + client, err := clb.NewClient(credential, region, cpf) + + return &Client{ + client, + }, err +} + +func (client *Client) ListCLB() { + request := clb.NewDescribeLoadBalancersRequest() + + params := "{}" + err := request.FromJsonString(params) + if err != nil { + panic(err) + } + response, err := client.DescribeLoadBalancers(request) + if _, ok := err.(*errors.TencentCloudSDKError); ok { + fmt.Printf("An API error has returned: %s", err) + return + } + if err != nil { + panic(err) + } + + for _, lbSet := range response.Response.LoadBalancerSet { + // fmt.Println(*lbSet.LoadBalancerId) + client.ShowRS(*lbSet.LoadBalancerId) + } +} + +func (client *Client)ShowRS(lbID string) { + + request := clb.NewDescribeTargetsRequest() + + params := fmt.Sprintf("{\"LoadBalancerId\":\"%s\"}", lbID) + err := request.FromJsonString(params) + if err != nil { + panic(err) + } + response, err := client.DescribeTargets(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()) + for _, listener := range response.Response.Listeners { + for _, rule := range listener.Rules { + for _, target := range rule.Targets { + fmt.Printf("%s%s\t%d\t%s\n", + *rule.Domain, + *rule.Url, + *target.Weight, + *target.InstanceName, + ) + } + } + } +} From 80f19fe0a25e0fe84b78b10ecf39281dc7733f38 Mon Sep 17 00:00:00 2001 From: Dean Date: Tue, 8 Sep 2020 21:53:20 +0800 Subject: [PATCH 7/7] addm instance id --- internal/adblib/tencentcloud.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/internal/adblib/tencentcloud.go b/internal/adblib/tencentcloud.go index 97ca629..443fe2e 100644 --- a/internal/adblib/tencentcloud.go +++ b/internal/adblib/tencentcloud.go @@ -16,7 +16,7 @@ type Client struct { *clb.Client } -func NewCLBClient() (*Client, error){ +func NewCLBClient() (*Client, error) { secretID := os.Getenv("TENCENTCLOUD_SECRET_ID") secretKey := os.Getenv("TENCENTCLOUD_SECRET_KEY") region := os.Getenv("TENCENTCLOUD_REGION") @@ -56,7 +56,7 @@ func (client *Client) ListCLB() { } } -func (client *Client)ShowRS(lbID string) { +func (client *Client) ShowRS(lbID string) { request := clb.NewDescribeTargetsRequest() @@ -78,10 +78,11 @@ func (client *Client)ShowRS(lbID string) { for _, listener := range response.Response.Listeners { for _, rule := range listener.Rules { for _, target := range rule.Targets { - fmt.Printf("%s%s\t%d\t%s\n", + fmt.Printf("%s%s\t%d\t%s\t%s\n", *rule.Domain, *rule.Url, *target.Weight, + *target.InstanceId, *target.InstanceName, ) }