2.3 Python
2.3.12 VBS Python SDK 示例
创建云硬盘备份
下面代码为创建云硬盘备份的过程,用户可以根据需求进行相应的参数配置,创建完 成后,新创建的备份会在VBS的备份列表显示。
def create_backup(self):
backup = {
"volume_id": self.volume.id, "name": "sds",
"description": "created by openstacksdk"
}
result = self.conn.volume_backup.create_backup(**backup) # assert result.job_id != None
self.job_id = result.id
表2-13 请求参数说明
名称 是否必
选
参数类型 说明
backup 是 dict 待创建的备份。
volume_id 是 string 需要进行备份的磁盘ID。
snapshot_id 否 string 需要进行备份的磁盘对应的快照ID。
name 是 string 备份名称,最大支持64个字符(不区分中英
文),只能是中文、英文、数字、下划线
(_)和中划线(-)。
description 否 string 备份描述,最大支持64个字符(不区分中英
文),且不能包含“<”和“>”。
查询备份详情列表
下面代码为查询备份列表的过程,返回每个备份的详细信息,用户可以根据需求进行 相应的参数配置。
def query_backups_detail(self):
backups = self.conn.volume_backup.backups(details=True) query = {
"name": "volume-backup-" + self.volume.id, # "status": "available",
"volume_id": self.volume.id, # "marker": "some-backup-id", "limit": 10
}
backups = self.conn.volume_backup.backups(details=True, **query) for backup in backups:
print backup.name
表2-14 请求参数说明
名称 是否必
选
参数类型 说明
name 否 string 指定查询的备份名称。用于过滤名称为指定
字符串的备份。
名称 是否必 选
参数类型 说明
status 否 string 指定查询的备份状态。用于过滤特定状态的
备份。可选的值目前只支持:
“available”,“error”,
“restoring”,“creating”,
“deleting”,“error_restoring”。
offset 否 int 指定查询信息列表的偏移量。
limit 否 int 指定返回结果个数限制。
volume_id 否 string 指定查询备份的磁盘ID。用于过滤指定磁盘
ID对应的备份。
从备份恢复磁盘
下面代码为选择一个备份恢复到磁盘的过程,用户可以根据需求进行相应的参数配 置。
def restore_backup(self):
self.query_backups()
return self.conn.volume_backup.restore_backup(self.backup_id, self.volume.id)
表2-15 请求参数说明
名称 是否必
选
参数类型 说明
restore 是 dict 标记从备份恢复磁盘操作。
backup_id 是 string 需要恢复的备份ID
volume_id 是 string 将要被恢复的磁盘ID。
删除备份
下面代码为删除一个备份的过程,用户可以根据需求进行相应的参数配置。
def delete_backup(self):
self.query_backups()
self.conn.volume_backup.delete_backup(self.backup_id)
表2-16 请求参数说明
名称 是否必
选
参数类型 说明
tenant_id 是 string 租户ID。
backup_id 是 string 需要恢复的备份ID。
创建备份策略
下面代码为备份策略的创建过程,用户可以根据需求进行相应的参数配置。
def create_policy(self):
data = {
"remain_first_backup_of_curMonth": True, "rentention_num": 10,
"frequency": 1, "start_time": "12:00", "status": "ON"
}
volume_backup_name = "SDK-backup-test-1"
policy = self.conn.volume_backup.create_backup_policy(volume_backup_name, **data) print policy
表2-17 请求参数说明
名称 是否必
选
参数类型 说明
backup_polic
y_name 是 string 备份策略名称
只能由数字、字母、汉字、下划线、中划线 组成,同时不能以default开头,长度1到64 位。
scheduled_p
olicy 是 dict 调度策略详情。
start_time 是 string 备份开始时间,需要转化成本地时间对应的
UTC时间(目前只支持整点)。
格式为HH:mm
frequency 否 integer 备份间隔(1-14天),该字段和
week_frequency字段二选一,如果同时设 置,默认以该字段为准。
week_freque
ncy 否 list<dict> 按指定周进行备份,取值为以下值的一个或
者多个:
SUN,MON,TUE,WED,THU,FRI,
SAT rentention_n
um 否 integer 备份保留个数(最小值为2),该字段和
rentention_day字段二先一,如果同时设 置,默认以该字段为准。
rentention_d
ay 否 integer 备份保留天数。
remain_first_
backup_of_c urMonth
是 string 是否保留当月的第一个备份。
● Y
● N
名称 是否必 选
参数类型 说明
status 是 string 策略状态:启用或停用。
● ON
● OFF
删除备份策略
下面代码为备份策略的删除过程,用户可以根据需求进行相应的参数配置。
def delete_policy(self):
policy_id = self.query_policies().id
self.conn.volume_backup.delete_backup_policy(policy_id)
表2-18 请求参数说明
名称 是否必
选
参数类型 说明
tenant_id 是 string 租户ID
policy_id 是 string 策略ID
查询备份策略
下面代码为查询备份策略的过程,用户可以根据需求进行相应的参数配置。
def query_policies(self):
policies = list(self.conn.volume_backup.backup_policies()) if policies and len(policies) > 0:
return policies[0]