Source code for jdcloud_sdk.services.vm.apis.CreateImageRequest

# coding=utf8

# Copyright 2018 JDCLOUD.COM
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# NOTE: This class is auto generated by the jdcloud code generator program.

from jdcloud_sdk.core.jdcloudrequest import JDCloudRequest


[docs]class CreateImageRequest(JDCloudRequest): """ 为云主机制作私有镜像。 详细操作说明请参考帮助文档:[基于实例创建私有镜像](https://docs.jdcloud.com/cn/virtual-machines/create-private-image) ## 接口说明 - 云主机实例没有正在进行中的任务时才可制作镜像。 - 本地系统盘的实例,仅支持关机(已停止)状态下制作私有镜像。 - 云盘系统盘的实例,支持开机(运行中)/关机(已停止)状态下制作私有镜像。 - 调用接口后,需要等待镜像状态变为 `ready` 后,才能正常使用镜像。 - 若当前实例系统盘为本地盘,则创建完成后的私有镜像为本地盘系统盘镜像;若当前实例系统盘为云硬盘,则创建完成后的私有镜像为云硬盘系统盘镜像。您可通过镜像类型转换 [convertImage](https://docs.jdcloud.com/Image/api/convertimage) 将本地盘系统盘镜像转换为云硬盘系统盘镜像后使用。 - 默认情况下,制作的镜像中包括数据盘中的云硬盘(制作快照),但是不包含本地数据盘。 - 如果需要变更打包镜像中的一些数据盘、或排除一些数据盘不需要制作快照,可通过 `dataDisks` 中的参数进行控制。 """ def __init__(self, parameters, header=None, version="v1"): super(CreateImageRequest, self).__init__( '/regions/{regionId}/instances/{instanceId}:createImage', 'POST', header, version) self.parameters = parameters
[docs]class CreateImageParameters(object): def __init__(self,regionId, instanceId, name, ): """ :param regionId: 地域ID。 :param instanceId: 云主机ID。 :param name: 镜像名称,长度为2\~32个字符,只允许中文、数字、大小写字母、英文下划线(\_)、连字符(-)及点(.)。 """ self.regionId = regionId self.instanceId = instanceId self.name = name self.description = None self.dataDisks = None
[docs] def setDescription(self, description): """ :param description: (Optional) 镜像描述。256字符以内。 """ self.description = description
[docs] def setDataDisks(self, dataDisks): """ :param dataDisks: (Optional) 数据盘列表。 在不指定该参数的情况下,制作镜像的过程中会将该实例中的所有云盘数据盘制作快照,并与系统盘一起,制作成打包镜像。 如果不希望将实例中的某个云盘数据盘制作快照,可使用 `noDevice` 的方式排除,例如:`deviceName=vdb`、`noDevice=true` 就不会将 `vdb` 制作快照。 如果希望在打包镜像中插入一块新盘,该盘不在实例中,可通过指定新的 `deviceName` 的方式实现,例如:`deviceName=vdx` 将会在打包镜像中插入一块盘符为 `vdx` 的新盘,支持新盘使用或不使用快照都可以。 如果使用 `deviceName` 指定了与实例中相同的盘符,那么实例中对应的云盘数据盘也不会制作快照,并使用新指定的参数进行替换。 """ self.dataDisks = dataDisks