文档首页> > 开发指南> Java> VBS Java SDK示例

VBS Java SDK示例

更新时间: 2018-11-26 14:28

创建云硬盘备份

下面代码为创建云硬盘备份的过程,用户可以根据需求进行相应的参数配置,创建完成后,新创建的备份会在VBS的备份列表显示。

public static void createBackup() {
    AsyncVolumeBackupCreate vbc = Builders.asyncVolumeBackupCreate()
            .name(backupName)
            .volumeId(volume.getId())
            .build();
    AsyncVolumeBackupJob job = osclient.blockStorage().asyncBackups().create(vbc);
    Assert.assertNotNull(job.getId());
    backupJobId = job.getId();
}

请求参数说明:

名称

是否必选

参数类型

说明

backup

dict

待创建的备份。

volume_id

string

需要进行备份的磁盘ID。

snapshot_id

string

需要进行备份的磁盘对应的快照ID。

name

string

备份名称,最大支持64个字符(不区分中英文),只能是中文、英文、数字、下划线(_)和中划线(-)。

description

string

备份描述,最大支持64个字符(不区分中英文),且不能包含“<”和“>”。

查询备份详情列表

下面代码为查询备份列表的过程,返回每个备份的详细信息,用户可以根据需求进行相应的参数配置。

public static void queryNativeBackupsDetail(){
    // 无查询条件
    List<? extends VolumeBackup> list = osclient.blockStorage().backups().list(true);
    Assert.assertNotEquals(list.size(), 0);

    // 条件查询
    HashMap<String, String> filter = new HashMap<>();
    filter.put("name", backupName);
    List<? extends VolumeBackup> list2 = osclient.blockStorage().backups().list(true, filter);
    for (VolumeBackup backup: list2) {
        Assert.assertEquals(backup.getName(), backupName);
    }
}

请求参数说明:

名称

是否必选

参数类型

说明

name

string

指定查询的备份名称。用于过滤名称为指定字符串的备份。

status

string

指定查询的备份状态。用于过滤特定状态的备份。可选的值目前只支持:“available”,“error”,“restoring”,“creating”,“deleting”,“error_restoring”。

offset

int

指定查询信息列表的偏移量。

limit

int

指定返回结果个数限制。

volume_id

string

指定查询备份的磁盘ID。用于过滤指定磁盘ID对应的备份。

从备份恢复磁盘

下面代码为选择一个备份恢复到磁盘的过程,用户可以根据需求进行相应的参数配置。

public static void restoreBackup() {
    AsyncVolumeBackupJob job = osclient.blockStorage()
            .asyncBackups()
            .restore(backupId, volume.getId());
    Assert.assertNotNull(job.getId());
}

请求参数说明:

名称

是否必选

参数类型

说明

restore

dict

标记从备份恢复磁盘操作。

backup_id

string

需要恢复的备份ID

volume_id

string

将要被恢复的磁盘ID。

删除备份

下面代码为删除一个备份的过程,用户可以根据需求进行相应的参数配置。

public static void deleteNativeBackup() 
{
    ActionResponse delete = osclient.blockStorage().backups().delete(backupId);
    Assert.assertEquals(delete.isSuccess(), true);
}

请求参数说明:

名称

是否必选

参数类型

说明

tenant_id

string

租户ID。

backup_id

string

需要恢复的备份ID。

创建备份策略

下面代码为备份策略的创建过程,用户可以根据需求进行相应的参数配置。

public static void createPolicy() 
{
    // 先创建 scheduled policy
    VBSVolumeBackupScheduledPolicy scheduledPolicy = VBSVolumeBackupScheduledPolicy.builder()
            .frequency(10)
            .maxBackupAmount(10)
            .retainFirstBackupOfCurrentMonth(true)
            .startTime("01:00")
            .status(VolumeBackupPolicy.VolumeBackupPolicyStatus.OFF)
            .build();
    Assert.assertNotNull(scheduledPolicy);

    // 创建 backup policy 对象
    VolumeBackupPolicy create = VBSVolumeBackupPolicy.builder()
            .name(policyName)
            .scheduledPolicy(scheduledPolicy)
            .build();
    VolumeBackupPolicy policy = osclient.blockStorage().policies().create(create);
    Assert.assertNotNull(policy.getId());

请求参数说明:

名称

是否必选

参数类型

说明

backup_policy_name

string

备份策略名称

只能由数字、字母、汉字、下划线、中划线组成,同时不能以default开头,长度1到64位。

scheduled_policy

dict

调度策略详情。

start_time

string

备份开始时间,需要转化成本地时间对应的UTC时间(目前只支持整点)。

格式为HH:mm

frequency

integer

备份间隔(1-14天),该字段和week_frequency字段二选一,如果同时设置,默认以该字段为准。

week_frequency

list<dict>

按指定周进行备份,取值为以下值的一个或者多个:

SUN,MON,TUE,WED,THU,FRI,SAT

rentention_num

integer

备份保留个数(最小值为2),该字段和rentention_day字段二先一,如果同时设置,默认以该字段为准。

rentention_day

integer

备份保留天数。

remain_first_backup_of_curMonth

string

是否保留当月的第一个备份。

  • Y
  • N

status

string

策略状态:启用或停用。

  • ON
  • OFF

删除备份策略

下面代码为备份策略的删除过程,用户可以根据需求进行相应的参数配置。

public static void deletePolicy() {
    osclient.blockStorage().policies().delete(policyId);
    List<? extends VolumeBackupPolicy> policies = osclient.blockStorage().policies().list();
    boolean isSuccess = true;
    for (VolumeBackupPolicy policy:
            policies) {
        if (policy.getId().equals(policyId)) {
            isSuccess = false;
            break;
        }
    }
    Assert.assertEquals(isSuccess, true);
}

请求参数说明:

名称

是否必选

参数类型

说明

tenant_id

string

租户ID

policy_id

string

策略ID

查询备份策略

下面代码为查询备份策略的过程,用户可以根据需求进行相应的参数配置。

public static void queryPolicy() {
    List<? extends VolumeBackupPolicy> policies = osclient.blockStorage().policies().list();
    boolean isSuccess = false;
    for (VolumeBackupPolicy policy:
         policies) {
        if (policy.getName().equals(policyName)) {
            isSuccess = true;
            policyId = policy.getId();
            break;
        }
    }
    Assert.assertEquals(isSuccess, true);
}

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

在文档使用中是否遇到以下问题







请至少选择或填写一项反馈信息

字符长度不能超过100

反馈内容不能为空!

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区
点我,12·12惊喜等着你哦~