快照
更新时间:2023-03-31
创建快照
用于从指定的磁盘创建快照,支持创建系统盘快照和CDS磁盘快照
创建系统盘快照时,实例的状态必须为 Running 或 Stopped 此操作才能正常完成
创建CDS磁盘快照时,磁盘的状态需要为InUse或 Available 此操作才能正常完成
可创建快照数量的配额取决于账号下拥有的磁盘总数,当前最多为磁盘数量乘以8
def create_snapshot(self):
client_token = generate_client_token()
#设置快照名称
snapshot_name = 'your-snapshot-name' + client_token
#用于创建快照的磁盘ID
volumeId = 'your-choose-volume-id'
self.assertEqual(
type(self.client.create_snapshot(volume_id,snapshot_name,client_token=client_token)),
baidubce.bce_response.BceResponse)
查询快照列表
用于查询所有的快照信息,包括系统盘快照和数据盘快照信息:
def list_snapshots(self):
#查询某一磁盘下的快照输入磁盘ID
#若要查询系统盘,则输入实例ID
volume_id = 'your-volume-id'
#批量获取列表的查询的起始位置
marker = 'your-marker'
#每页包含的最大数量
max_keys = 100
self.assertEqual(
type(self.client.list_snapshots(marker=marker,max_keys=max_keys,volume_id=volume_id)),
baidubce.bce_response.BceResponse)
查询快照详情
用于通过用户的指定的快照ID查询单个快照的详细信息:
def get_snapshots(self):
#待查询快照ID
snapshot_id = 'your-snapshot-id'
self.assertEqual(
type(self.client.get_snapshots(snapshot_id=snapshot_id)),
baidubce.bce_response.BceResponse)
删除快照
用于通过指定快照ID删除快照
只有当快照的状态为 CreatedFailed 或 Available时,操作才能正常完成:
def delete_snapshots(self):
#待删除快照ID
snapshot_id = 'your-snapshot-id'
self.assertEqual(
type(self.client.delete_snapshots(snapshot_id=snapshot_id)),
baidubce.bce_response.BceResponse)
查询快照链列表
可以通过以下代码可以查询快照链列表
def test_list_snapshot_chain(self):
"""
test case for get_available_disk_info
"""
resp = self.client.list_snapshot_chain("v-0RMyIJRq")
self.assertEqual(
type(resp),
baidubce.bce_response.BceResponse)
if resp is not None and resp.content is not None:
print(json.loads(resp.content.decode('utf-8')))
else:
print(resp)
快照链绑定标签
使用以下代码可以给指定快照链绑定标签
def test_tag_snapshot_chain(self):
"""
test case for tag_snapshot_chain
"""
tag1 = bcc_model.TagModel(tagKey='TestKey02',
tagValue='TestValue02')
tag2 = bcc_model.TagModel(tagKey='TestKey03',
tagValue='TestValue03')
tags = []
tags.append(tag1)
tags.append(tag2)
resp = self.client.tag_snapshot_chain("sl-fJDs8G9i", tags=tags)
self.assertEqual(
type(resp),
baidubce.bce_response.BceResponse)
if resp is not None and resp.content is not None:
print(json.loads(resp.content.decode('utf-8')))
else:
print(resp)
快照链解绑标签
使用以下代码可以给指定快照链解绑标签
def test_untag_snapshot_chain(self):
"""
test case for untag_snapshot_chain
"""
tag1 = bcc_model.TagModel(tagKey='TestKey02',
tagValue='TestValue02')
tag2 = bcc_model.TagModel(tagKey='TestKey03',
tagValue='TestValue03')
tags = []
tags.append(tag1)
tags.append(tag2)
resp = self.client.untag_snapshot_chain("sl-fJDs8G9i", tags=tags)
self.assertEqual(
type(resp),
baidubce.bce_response.BceResponse)
if resp is not None and resp.content is not None:
print(json.loads(resp.content.decode('utf-8')))
else:
print(resp)
跨区域复制快照
使用以下代码可以将一份磁盘快照从一个地域复制到另一个地域
def test_create_remote_copy_snapshot(self):
"""
test case for create_remote_copy_snapshot
"""
dest_region_infos = [bcc_model.DestRegionInfoModel("bj", "bj1"), bcc_model.DestRegionInfoModel("sh", "sh1")]
resp = self.client.create_remote_copy_snapshot(snapshot_id='s_id', dest_region_infos=dest_region_infos)
self.assertEqual(
type(resp),
baidubce.bce_response.BceResponse)
if resp is not None and resp.content is not None:
print(json.loads(resp.content.decode('utf-8')))
else:
print(resp)