自动快照策略
更新时间:2023-11-28
创建自动快照策略
如下代码可以创建一个自动快照策略
args := &api.CreateASPArgs{
Name: "sdkCreate",
// 设置一天中做快照的时间点,取值为0~23,0为午夜12点
// 例如设置做快照的时间点为下午两点:
TimePoints: []string{"14"},
// 设置一周中做快照的时间,取值为0~6,0代表周日,1~6代表周一到周六
// 例如设置做快照的时间为礼拜五:
RepeatWeekdays: []string{"5"},
// 设置自动快照保留天数,取-1则永久保留
RetentionDays: "7",
}
result, err := client.CreateAutoSnapshotPolicy(args)
if err != nil {
fmt.Println("create auto snapshot policy failed:", err)
} else {
fmt.Println("ceate auto snapshot policy success: ", result)
}
绑定自动快照策略
如下代码可以将自动快照策略绑定到某个CDS磁盘
args := &api.AttachASPArgs{
// 设置需要绑定的磁盘ID列表
VolumeIds: []string{volumeId},
}
err := client.AttachAutoSnapshotPolicy(aspId, args)
if err != nil {
fmt.Println("attach auto snapshot policy with CDS volume failed:", err)
} else {
fmt.Println("attach auto snapshot policy with CDS volume success")
}
解绑自动快照策略
如下代码可以将自动快照策略与特定CDS磁盘解除绑定
args := &api.DetachASPArgs{
// 设置需要解绑的磁盘ID列表
VolumeIds: []string{volumeId},
}
err := client.DetachAutoSnapshotPolicy(aspId, args)
if err != nil {
fmt.Println("detach auto snapshot policy from CDS volume failed:", err)
} else {
fmt.Println("detach auto snapshot policy from CDS volume success")
}
删除自动快照策略
如下代码可以删除自动快照策略
err := client.DeleteAutoSnapshotPolicy(aspId)
if err != nil {
fmt.Println("delete auto snapshot policy failed:", err)
} else {
fmt.Println("delete auto snapshot policy success")
}
查询自动快照策略列表
如下代码可以查询到当前账户下当前区域所有自动快照策略的列表
args := &api.ListASPArgs{}
result, err := client.ListAutoSnapshotPolicy(args)
if err != nil {
fmt.Println("list all auto snapshot policy failed:", err)
} else {
fmt.Println("list all auto snapshot policy success: ", result)
}
查询自动快照策略详情
如下代码可以查询到特定自动快照策略的详细信息
result, err := client.GetAutoSnapshotPolicy(aspId)
if err != nil {
fmt.Println("get auto snapshot policy detail failed:", err)
} else {
fmt.Println("get auto snapshot policy detail success", result)
}
自动快照策略变更
如下代码可以更新一个自动快照策略
args := &api.UpdateASPArgs{
Name: "testUpdate",
TimePoints: []string{"10"},
RepeatWeekdays: []string{"0", "1"},
RetentionDays: "2",
AspId: aspId,
}
err := client.UpdateAutoSnapshotPolicy(args)
if err != nil {
fmt.Println("update auto snapshot policy failed:", err)
} else {
fmt.Println("update auto snapshot policy success")
}