文章目录
本文章由公号【开发小鸽】发布!欢迎关注!!!
老规矩–妹妹镇楼:

1. glance镜像服务的API使用
(1)image镜像的状态
queued Image 服务为目录中的图像保留了一个图像 ID,但尚未上传任何图像数据。
saving Image 服务正在将图像的原始数据保存到后备存储中。
active 图像处于活动状态并准备好在 Image 服务中使用。
killed 发生图像数据上传错误。
deleted 图像服务保留有关图像的信息,但图像不再可用。
pending_delete deleted状态类似。处于这种状态的图像是不可恢复的。
deactivated 图像数据不可使用。
uploading 数据已作为可互操作的图像导入过程的一部分进行暂存。它尚未可供使用。 (从图像 API 2.6 开始)
importing 图像数据正在作为可互操作图像导入过程的一部分进行处理,但尚不可使用。 (从图像 API 2.6 开始)
(2)image镜像的可见性
public 任何用户都可以读取图像及其数据负载。此外,该图像会出现在所有用户的默认图像列表中。
community 任何用户都可以读取到的图像和数据的有效载荷,但图像也 不会出现在所有者以外的任何用户的默认图像列表。(此可见性值是在 Image API v2.5 中添加的)
shared 图像必须具有此可见性才能将图像成员添加到其中。只有所有者和已添加到图像的特定图像成员可以读取图像或其数据负载。
该图像出现在所有者的默认图像列表中。它还会出现在已接受该图像的成员的默认图像列表中。有关更多信息,请参阅本文档的图像共享部分。
如果您在创建图像时未指定可见性值,则默认情况下会为其分配此可见性。但是,非所有者在被添加为图像成员之前将无权访问图像。(此可见性值是在 Image API v2.5 中添加的)
private 只有所有者图像可以读取图像或其数据负载。此外,图像会出现在所有者的默认图像列表中。从 Image API v2.5 开始,具有私有可见性的图像不能添加成员。
(3)查询出所有的image
可以通过该API查询出所有的image,如下的url能够直接查询出所有的image镜像,注意,要在request header中添加刚刚查询出来的用户token信息,设置为X-Auth-Token首部字段。
结果如下所示,查询出了所有的image镜像:
{
"images": [
{
"container_format": "bare",
"min_ram": 0,
"updated_at": "2021-10-04T06:17:51Z",
"file": "/v2/images/0c04d636-815a-4750-8e14-7f2768030527/file",
"owner": "a7d812868cb74f1a978035530f55f1d0",
"id": "0c04d636-815a-4750-8e14-7f2768030527",
"size": 2357547008,
"self": "/v2/images/0c04d636-815a-4750-8e14-7f2768030527",
"disk_format": "vhd",
"os_hash_algo": "sha512",
"schema": "/v2/schemas/image",
"status": "active",
"tags": [],
"visibility": "public",
"min_disk": 0,
"virtual_size": null,
"name": "chrome_vhd",
"checksum": "2b35d15e5c5fa135267ab020cfeb994b",
"created_at": "2021-10-04T06:17:29Z",
"os_hidden": false,
"protected": false,
"os_hash_value": "b28a766c912a9f6a2d16d96b87dd03e46407a2433d6fe4d34d6d6a1ed63f31e28d33a4e49076d6c1c18d9fd80f782bd2d95780b03b51c24a49fe5432a151de48"
},
{
"container_format": "bare",
"min_ram": 0,
"updated_at": "2021-10-04T05:37:46Z",
"file": "/v2/images/1ff93663-5f1d-4e71-b2da-87603724db12/file",
"owner": "a7d812868cb74f1a978035530f55f1d0",
"id": "1ff93663-5f1d-4e71-b2da-87603724db12",
"size": 7868645616,
"self": "/v2/images/1ff93663-5f1d-4e71-b2da-87603724db12",
"disk_format": "qcow2",
"os_hash_algo": "sha512",
"schema": "/v2/schemas/image",
"status": "active",
"tags": [],
"visibility": "public",
"min_disk": 0,
"virtual_size": null,
"name": "win7_xshell_qcow2",
"checksum": "823c8e7c12708950e4cd6585537598eb",
"created_at": "2021-10-04T05:36:44Z",
"os_hidden": false,
"protected": false,
"os_hash_value": "5d6b695a1156d132d5a0b920066a1d77f00fcb47ce4733bdd0cf068590f4cd3dd0d24a284070483c6127a5634d7469ebdc5b22f1347e9a521d8fd04a72f17f26"
},
{
"container_format": "bare",
"min_ram": 0,
"updated_at": "2021-06-22T08:35:19Z",
"file": "/v2/images/f7cdcc6a-dbec-4d4a-82c4-4170a9cc1a19/file",
"owner": "a7d812868cb74f1a978035530f55f1d0",
"id": "f7cdcc6a-dbec-4d4a-82c4-4170a9cc1a19",
"size": 12716032,
"self": "/v2/images/f7cdcc6a-dbec-4d4a-82c4-4170a9cc1a19",
"disk_format": "qcow2",
"os_hash_algo": "sha512",
"schema": "/v2/schemas/image",
"status": "active",
"tags": [],
"visibility": "public",
"min_disk": 0,
"virtual_size": null,
"name": "cirros",
"checksum": "443b7623e27ecf03dc9e01ee93f67afe",
"created_at": "2021-06-22T08:35:18Z",
"os_hidden": false,
"protected": false,
"os_hash_value": "6513f21e44aa3da349f248188a44bc304a3653a04122d8fb4535423c8e1d14cd6a153f735bb0982e2161b5b5186106570c17a9e58b64dd39390617cd5a350f78"
}
],
"schema": "/v2/schemas/images",
"first": "/v2/images"
}
(4)排序查询所有的image
对查询出来的image进行排序后输出,如根据image的name进行降序排序,sort_key是排序的参数,sort_dir是排序的方向:
GET /v2/images?sort_key=name&sort_dir=asc
可以根据如下的参数进行设置:
• container_format
• disk_format
• id
• name
• status
(5)查询出所有与image镜像相关的task任务
传入参数:
(6)停用某个image镜像
停用图像。 (自 Image API v2.3 起)
默认情况下,此操作仅限于管理员。
如果您尝试下载已停用的图像,您将收到 403(禁止)响应代码。此外,只有管理用户才能查看停用图像的图像位置。
如果图像状态不是active或 ,则停用操作将返回错误deactivated。
传入参数:
查看镜像情况,该镜像已被停用:
(7)激活某个image镜像
重新激活图像。 (自 Image API v2.3 起)
默认情况下,此操作仅限于管理员。
如果图像状态不是active或 ,则重新激活操作将返回错误deactivated。
传入参数:
image镜像的状态已经改变了:
(8)创建一个image镜像
为操作系统磁盘映像创建目录记录。
传入参数:
得到响应如下所示:
{
"container_format": "bare",
"min_ram": 0,
"updated_at": "2021-10-07T09:38:49Z",
"file": "/v2/images/f90e107d-a5de-41d6-ad9c-2acd443e4a47/file",
"owner": "a7d812868cb74f1a978035530f55f1d0",
"id": "f90e107d-a5de-41d6-ad9c-2acd443e4a47",
"size": null,
"self": "/v2/images/f90e107d-a5de-41d6-ad9c-2acd443e4a47",
"disk_format": "qcow2",
"os_hash_algo": null,
"schema": "/v2/schemas/image",
"status": "queued",
"tags": [],
"visibility": "shared",
"min_disk": 0,
"virtual_size": null,
"name": "cirros_3",
"checksum": null,
"created_at": "2021-10-07T09:38:49Z",
"os_hidden": false,
"protected": false,
"os_hash_value": null
}
查看该镜像的状态,可以看到该镜像没有上传本地文件,处于queued状态:
(9)删除一个image镜像
(自 Image API v2.0 起)删除图像。
您不能删除protected属性设置为 true(boolean) 的图像。
先决条件
• 您可以删除除 之外的任何状态的图像deleted。
• 图片的protected属性不能是true。
• 您有权在配置的图像删除策略下执行图像删除。
同步后置条件
• 响应为空并返回 HTTP204响应代码。
• API 从图像索引中删除图像。
• 如果镜像在存储后端有关联的二进制镜像数据,OpenStack Image 服务会删除该数据
传入参数:
可以看到,该image镜像被删除了。