Skip to content

Commit

Permalink
Update DDC features
Browse files Browse the repository at this point in the history
  • Loading branch information
DDC-Console committed Feb 21, 2023
1 parent 7aa4028 commit d04afaa
Show file tree
Hide file tree
Showing 15 changed files with 434 additions and 30 deletions.
2 changes: 1 addition & 1 deletion bce/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import (

// Constants and default values for the package bce
const (
SDK_VERSION = "0.9.142"
SDK_VERSION = "0.9.143"
URI_PREFIX = "/" // now support uri without prefix "v1" so just set root path
DEFAULT_DOMAIN = "baidubce.com"
DEFAULT_PROTOCOL = "http"
Expand Down
2 changes: 1 addition & 1 deletion doc/DDC.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ func main() {
ENDPOINT := <domain-name>

// 初始化一个DDCClient
ddcClient, err := ddc.NewClient(AK, SK, ENDPOINT)
ddcClient, err := ddc.NewClient(ACCESS_KEY_ID, SECRET_ACCESS_KEY, ENDPOINT)
}
```

Expand Down
41 changes: 40 additions & 1 deletion doc/DDCv2.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ func main() {
ENDPOINT := <domain-name>

// 初始化一个DDC-RDSClient
client, err := ddcrds.NewClient(AK, SK, ENDPOINT)
client, err := ddcrds.NewClient(ACCESS_KEY_ID, SECRET_ACCESS_KEY, ENDPOINT)
}
```

Expand Down Expand Up @@ -2428,6 +2428,45 @@ fmt.Println("mysql access logs link: ", downloadInfo.Downloadurl.Mysql)
fmt.Println("bbc access logs link: ", downloadInfo.Downloadurl.Bbc)
fmt.Println("bos access logs link: ", downloadInfo.Downloadurl.Bos)
```
## 访问快照日志详情
通过此接口可以获取访问快照日志的详情列表(仅支持DDC)。
```go
// import ddcrds "github.com/baidubce/bce-sdk-go/services/ddc/v2"
// import "time"

args := &AccessDetailArgs{
StartDateTime: "2023-02-02T01:00:00Z",
EndDateTime: "2023-02-02T10:00:00Z",
Marker: "0",
MaxKeys: 100,
}
result, err := client.SnapshotAccessDetail(args)
if err != nil {
fmt.Printf("get snapshot access detail error: %+v\n", err)
return
}
fmt.Printf("get snapshot access detail success\n %+v", result)
```

## 访问binlog日志详情
通过此接口可以获取访问binlog日志的详情列表(仅支持DDC)。
```go
// import ddcrds "github.com/baidubce/bce-sdk-go/services/ddc/v2"
// import "time"

args := &AccessDetailArgs{
StartDateTime: "2023-02-02T01:00:00Z",
EndDateTime: "2023-02-02T10:00:00Z",
Marker: "0",
MaxKeys: 100,
}
result, err := client.BinlogAccessDetail(args)
if err != nil {
fmt.Printf("get binlog access detail error: %+v\n", err)
return
}
fmt.Printf("get binlog access detail success\n %+v", result)
```

## 错误日志
通过此接口可以获取错误日志(仅支持DDC)。
Expand Down
46 changes: 36 additions & 10 deletions doc/RDS.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,18 @@

在确认您使用SDK时配置的Endpoint时,可先阅读开发人员指南中关于[RDS服务域名](https://cloud.baidu.com/doc/RDS/s/Ejwvz0uoq)的部分,理解Endpoint相关的概念。百度云目前开放了多区域支持,请参考[区域选择说明](https://cloud.baidu.com/doc/Reference/s/2jwvz23xx/)

目前支持“华北-北京”、“华南-广州”、“华东-苏州”“金融华中-武汉”四个区域。对应信息为:
目前支持“华北-北京”、“华北-保定”、“华南-广州”、“华东-苏州”“金融华中-武汉”、“华东-上海”、“中国香港”、“新加坡”区域。对应信息为:

访问区域 | 对应Endpoint | 协议
---|---|---
BJ | rds.bj.baidubce.com | HTTP and HTTPS
GZ | rds.gz.baidubce.com | HTTP and HTTPS
SU | rds.su.baidubce.com | HTTP and HTTPS
FWH| rds.fwh.baidubce.com| HTTP and HTTPS

北京 | rds.bj.baidubce.com | HTTP and HTTPS
保定 | rds.bj.baidubce.com | HTTP and HTTPS
广州 | rds.gz.baidubce.com | HTTP and HTTPS
苏州 | rds.su.baidubce.com | HTTP and HTTPS
武汉 | rds.fwh.baidubce.com| HTTP and HTTPS
上海 | rds.fsh.baidubce.com| HTTP and HTTPS
香港 | rds.hkg.baidubce.com| HTTP and HTTPS
新加坡 | rds.sin.baidubce.com| HTTP and HTTPS
## 获取密钥

要使用百度云RDS,您需要拥有一个有效的AK(Access Key ID)和SK(Secret Access Key)用来进行签名认证。AK/SK是由系统分配给用户的,均为字符串,用于标识用户,为访问RDS做签名验证。
Expand Down Expand Up @@ -50,7 +53,7 @@ func main() {
ENDPOINT := <domain-name>

// 初始化一个RDSClient
rdsClient, err := rds.NewClient(AK, SK, ENDPOINT)
rdsClient, err := rds.NewClient(ACCESS_KEY_ID, SECRET_ACCESS_KEY, ENDPOINT)
}
```

Expand Down Expand Up @@ -265,7 +268,7 @@ args := &rds.CreateRdsArgs{
Category: "Standard",
//指定zone信息,默认为空,由系统自动选择,可选
//zoneName命名规范是小写的“国家-region-可用区序列",例如北京可用区A为"cn-bj-a"。
ZoneNames: ["cn-bj-a"],
ZoneNames: []string{"cn-bj-d"},
//vpc,如果不提供则属于默认vpc,可选
VpcId: "vpc-IyrqYIQ7",
//是否进行直接支付,默认false,设置为直接支付的变配订单会直接扣款,不需要再走支付逻辑,可选
Expand Down Expand Up @@ -327,7 +330,7 @@ args := &rds.CreateReadReplicaArgs{
InstanceName: "instanceName",
//指定zone信息,默认为空,由系统自动选择,可选
//zoneName命名规范是小写的“国家-region-可用区序列",例如北京可用区A为"cn-bj-a"。
ZoneNames: ["cn-bj-a"],
ZoneNames: []string{"cn-bj-d"},
//与主实例 vpcId 相同,可选
VpcId: "vpc-IyrqYIQ7",
//是否进行直接支付,默认false,设置为直接支付的变配订单会直接扣款,不需要再走支付逻辑,可选
Expand Down Expand Up @@ -387,7 +390,7 @@ args := &rds.CreateRdsProxyArgs{
InstanceName: "instanceName",
//指定zone信息,默认为空,由系统自动选择,可选
//zoneName命名规范是小写的“国家-region-可用区序列",例如北京可用区A为"cn-bj-a",建议与主实例的可用区保持一致
ZoneNames: ["cn-bj-a"],
ZoneNames: []string{"cn-bj-d"},
//与主实例 vpcId 相同,可选
VpcId: "vpc-IyrqYIQ7",
//是否进行直接支付,默认false,设置为直接支付的变配订单会直接扣款,不需要再走支付逻辑,可选
Expand Down Expand Up @@ -900,7 +903,30 @@ if err != nil {
fmt.Printf("modify backup policy success\n")
```

# 慢日志下载任务

## 慢日志下载任务列表
``` go
// import "github.com/baidubce/bce-sdk-go/services/rds"
result, err := client.GetSlowLogDownloadTaskList(instanceId, datetime)
if err != nil {
fmt.Printf("get slowlog download task list error: %+v\n", err)
return
}
fmt.Printf("get slowlog download task list success\n")
fmt.Printf(result)
```
## 慢日志下载详情
```go
// import "github.com/baidubce/bce-sdk-go/services/rds"
result, err := client.GetSlowLogDownloadDetail(instanceId, logId, downloadValidTimeInSec)
if err != nil {
fmt.Printf("get slowlog download detail error: %+v\n", err)
return
}
fmt.Printf("get slowlog download detail success\n")
fmt.Printf(result)
```
# 其它

## 获取可用区列表
Expand Down
2 changes: 1 addition & 1 deletion doc/SCS.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ func main() {
ENDPOINT := <domain-name>

// 初始化一个SCSClient
scsClient, err := scs.NewClient(AK, SK, ENDPOINT)
scsClient, err := scs.NewClient(ACCESS_KEY_ID, SECRET_ACCESS_KEY, ENDPOINT)
}
```

Expand Down
36 changes: 34 additions & 2 deletions services/ddc/client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@ package ddc
import (
"encoding/json"
"fmt"
"github.com/baidubce/bce-sdk-go/util"
"github.com/baidubce/bce-sdk-go/util/log"
"os"
"path/filepath"
"reflect"
"runtime"
"testing"

"github.com/baidubce/bce-sdk-go/util"
"github.com/baidubce/bce-sdk-go/util/log"
)

var (
Expand Down Expand Up @@ -496,3 +497,34 @@ func TestClient_UpdateInstanceName(t *testing.T) {
}
fmt.Printf("update instance name success\n")
}

func TestClient_BinlogAccessDetail(t *testing.T) {
args := &AccessDetailArgs{
StartDateTime: "2023-02-02T01:00:00Z",
EndDateTime: "2023-02-02T10:00:00Z",
Marker: "0",
MaxKeys: 100,
}
result, err := DDC_CLIENT.BinlogAccessDetail(args)
if err != nil {
fmt.Printf("get binlog access detail error: %+v\n", err)
return
}
fmt.Printf("get binlog access detail success\n")
fmt.Println("result: ", result)
}

func TestClient_SnapshotAccessDetail(t *testing.T) {
args := &AccessDetailArgs{
StartDateTime: "2023-02-02T01:00:00Z",
EndDateTime: "2023-02-02T10:00:00Z",
Marker: "0",
MaxKeys: 100,
}
result, err := DDC_CLIENT.SnapshotAccessDetail(args)
if err != nil {
fmt.Printf("get snapshot access detail error: %+v\n", err)
return
}
fmt.Printf("get snapshot access detail success\n %+v", result)
}
55 changes: 53 additions & 2 deletions services/ddc/ddc.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,11 @@ import (
"encoding/json"
"errors"
"fmt"
"github.com/baidubce/bce-sdk-go/bce"
"github.com/baidubce/bce-sdk-go/http"
"strconv"
"strings"

"github.com/baidubce/bce-sdk-go/bce"
"github.com/baidubce/bce-sdk-go/http"
)

const (
Expand Down Expand Up @@ -1755,3 +1756,53 @@ func (c *Client) GetDisk(instanceId string) (*Disk, error) {
Do()
return result, err
}

// SnapshotAccessDetail - get snapshot access detail
//
// PARAMS:
// - args: the arguments to get snapshot access detail
// RETURNS:
// - *AccessDetail
// - error: nil if success otherwise the specific error
func (c *Client) SnapshotAccessDetail(args *AccessDetailArgs) (*BackupAccessDetail, error) {

result := &BackupAccessDetail{}

err := bce.NewRequestBuilder(c).
WithMethod(http.GET).
WithURL(getDdcUri()+"/snapshot/accessdetail").
WithQueryParam("startDateTime", args.StartDateTime).
WithQueryParam("endDateTime", args.EndDateTime).
WithQueryParam("marker", args.Marker).
WithQueryParam("maxKeys", strconv.Itoa(args.MaxKeys)).
WithQueryParam("dataType", args.DataType).
WithHeader(http.CONTENT_TYPE, bce.DEFAULT_CONTENT_TYPE).
WithResult(result).
Do()
return result, err
}

// BinlogAccessDetail - get snapshot access detail
//
// PARAMS:
// - args: the arguments to get snapshot access detail
// RETURNS:
// - *AccessDetail
// - error: nil if success otherwise the specific error
func (c *Client) BinlogAccessDetail(args *AccessDetailArgs) (*BackupAccessDetail, error) {

result := &BackupAccessDetail{}

err := bce.NewRequestBuilder(c).
WithMethod(http.GET).
WithURL(getDdcUri()+"/binlog/accessdetail").
WithQueryParam("startDateTime", args.StartDateTime).
WithQueryParam("endDateTime", args.EndDateTime).
WithQueryParam("marker", args.Marker).
WithQueryParam("maxKeys", strconv.Itoa(args.MaxKeys)).
WithQueryParam("dataType", args.DataType).
WithHeader(http.CONTENT_TYPE, bce.DEFAULT_CONTENT_TYPE).
WithResult(result).
Do()
return result, err
}
39 changes: 39 additions & 0 deletions services/ddc/model.go
Original file line number Diff line number Diff line change
Expand Up @@ -776,3 +776,42 @@ type ModifySyncModeArgs struct {
type Disk struct {
CapacityRatio []string `json:"capacityRatio"`
}

type AccessDetailItem struct {
BackupID string `json:"backupID"`
AccessDateTime string `json:"accessDateTime"`
AccessResult string `json:"accessResult"`
AccessSrcAddressType string `json:"accessSrcAddressType"`
AvailableZone string `json:"availableZone"`
AccessSrcAddress string `json:"accessSrcAddress"`
AccessOperationType string `json:"accessOperationType"`
StorageType string `json:"storageType"`
StorageAddress string `json:"storageAddress"`
Region string `json:"region"`
BackupName string `json:"backupName"`
AccessSrcAgent string `json:"accessSrcAgent"`
StorageID string `json:"storageID"`
}

type Pagination struct {
IsTruncated bool `json:"isTruncated"`
NextMarker string `json:"nextMarker"`
MaxKeys int `json:"maxKeys"`
Marker string `json:"marker"`
TotalKeys int `json:"totalKeys"`
}
type BackupAccessDetail struct {
StartDateTime string `json:"startDateTime"`
EndDateTime string `json:"endDateTime"`
DataType string `json:"dataType"`
BackupAccessDetails []AccessDetailItem `json:"backupAccessDetails"`
Pagination Pagination `json:"pagination"`
}

type AccessDetailArgs struct {
StartDateTime string `json:"startDateTime"`
EndDateTime string `json:"endDateTime"`
Marker string `json:"marker,omitempty"`
MaxKeys int `json:"maxKeys,omitempty"`
DataType string `json:"dataType,omitempty"`
}
37 changes: 34 additions & 3 deletions services/ddc/v2/client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,7 @@ func TestClient_UpdateRoGroup(t *testing.T) {
EnableDelayOff: "1",
DelayThreshold: "0",
LeastInstanceAmount: "1",
MasterDelay: "1",
MasterDelay: "1",
}
err = client.UpdateRoGroup(roGroupId, args, "ddc")
if err != nil {
Expand Down Expand Up @@ -322,7 +322,7 @@ func TestClient_UpdateRoGroupReplicaWeight(t *testing.T) {
DelayThreshold: "",
LeastInstanceAmount: "0",
IsBalanceRoLoad: "0",
MasterDelay: "1",
MasterDelay: "1",
ReplicaList: []ReplicaWeight{replicaWeight},
}
err = client.UpdateRoGroupReplicaWeight(roGroupId, args, "ddc")
Expand Down Expand Up @@ -1776,5 +1776,36 @@ func TestClient_InstanceSyncDelayReplication(t *testing.T) {
fmt.Printf("instance syncDelay replication faild: %+v\n", err)
return
}
fmt.Printf("instance syncDelay replication success. success:%s\n", result.Success)
fmt.Printf("instance syncDelay replication success. success:%+v\n", result.Success)
}

func TestClient_BinlogAccessDetail(t *testing.T) {
args := &AccessDetailArgs{
StartDateTime: "2023-02-02T01:00:00Z",
EndDateTime: "2023-02-02T10:00:00Z",
Marker: "0",
MaxKeys: 100,
}
result, err := client.BinlogAccessDetail(args)
if err != nil {
fmt.Printf("get binlog access detail error: %+v\n", err)
return
}
fmt.Printf("get binlog access detail success\n")
fmt.Println("result: ", result)
}

func TestClient_SnapshotAccessDetail(t *testing.T) {
args := &AccessDetailArgs{
StartDateTime: "2023-02-02T01:00:00Z",
EndDateTime: "2023-02-02T10:00:00Z",
Marker: "0",
MaxKeys: 100,
}
result, err := client.SnapshotAccessDetail(args)
if err != nil {
fmt.Printf("get snapshot access detail error: %+v\n", err)
return
}
fmt.Printf("get snapshot access detail success\n %+v", result)
}
Loading

0 comments on commit d04afaa

Please sign in to comment.