跳转到: 导航, 搜索

已废弃:GlanceAPISpec

(重定向自 GlanceAPISpec)

Glance API 规范

Glance <=> Nova 集成需要这些组件

  • Glance - 虚拟机镜像管理服务
    • Parallax - 镜像注册服务
    • Teller - 镜像交付服务
  • 客户端类
    • `glance.client.GlanceClient` - Nova 中用于查询 Glance 镜像的客户端
      • `glance.client.ParallaxClient` - 用于查询 Parallax 可用镜像的客户端工具
      • `glance.client.TellerClient` - 用于分块检索镜像的客户端工具

Parallax API 命令

本节描述用于创建、列出、修改和删除镜像元数据的 Parallax REST API。

获取所有公共镜像的 id/name 基本信息

GET http://parallax.openstack.org/images


返回一个映射,其中包含一个映射列表,其中包含以 JSON 编码的公共镜像的详细信息


{
"images":
  [
  {"id": 1, "name": "My Image 1"},
  {"id": 2, "name": "My Image 2"},
  ]
}


获取所有公共镜像的详细信息

GET http://parallax.openstack.org/images/detail


返回一个映射,其中包含一个映射列表,其中包含以 JSON 编码的公共镜像的详细信息


{
"images":
  [
    {
    "id": 1,
    "name": "My Image",
    "status": "available",
    "image_type": "kernel"
    "is_public": true,
    "properties": { "mykey": "myvalue" },
    "files": [ { "location": "swift://user:passwd@acct/container/obj.tar.gz.0",
                 "size": 101 } ]
    }
  ]
}


笔记

`properties` 元素是镜像可能保存的自定义键/值对的映射。

`files` 元素是包含组成镜像的块以及块大小的映射列表

获取单个镜像的元数据

GET http://parallax.openstack.org/images/<ID>


以 JSON 编码的形式返回镜像的元数据


{
"image":
  {
  "id": 1,
  "name": "My Image",
  "status": "available",
  "image_type": "kernel"
  "is_public": true,
  "properties": { "mykey": "myvalue" },
  "files": [ { "location": "swift://user:passwd@acct/container/obj.tar.gz.0",
             "size": 101 } ]
  }
}


笔记

返回的字典仅包含一个元素“image”的原因是为了 XML 转换,其中根元素将是 `<image>` 而不是根 XML 命名空间。

`properties` 元素是镜像可能保存的自定义键/值对的映射。

`files` 元素是包含组成镜像的块以及块大小的映射列表

异常

404:未找到镜像

注册/创建新镜像

POST http://parallax.openstack.org/images


请求的主体应是 JSON 编码的镜像元数据映射


{
"image":
  {
  "name": "My Image",
  "status": "available",
  "image_type": "kernel"
  "is_public": true,
  "properties": { "mykey": "myvalue" },
  "files": [ { "location": "swift://user:passwd@acct/container/obj.tar.gz.0",
             "size": 101 } ]
  }
}


如果成功,返回的响应将是 JSON 编码的 Parallax 中新创建的镜像的映射,包括填充了新镜像的内部标识符的 `id` 列


{
"image":
  {
  "id": 1,
  "name": "My Image",
  "status": "available",
  "image_type": "kernel"
  "is_public": true,
  "properties": { "mykey": "myvalue" },
  "files": [ { "location": "swift://user:passwd@acct/container/obj.tar.gz.0",
             "size": 101 } ]
  }
}


笔记

主体字典和结果字典仅包含一个元素“image”的原因是为了 XML 转换,其中根元素将是 `<image>` 而不是根 XML 命名空间。

`properties` 元素是镜像可能保存的自定义键/值对的映射。

`files` 元素是包含组成镜像的块以及块大小的映射列表

更新现有镜像的元数据

PUT http://parallax.openstack.org/images/<ID>


请求的主体应是 JSON 编码的镜像元数据映射


{
"image":
  {
  "id": 2349823,
  "name": "My Image",
  "status": "disabled",
  "image_type": "kernel"
  "is_public": true,
  "properties": { "mykey": "myvalue" },
  "files": [ { "location": "swift://user:passwd@acct/container/obj.tar.gz.0",
             "size": 101 } ]
  }
}


如果成功,返回的响应将是 JSON 编码的 Parallax 中更新的镜像元数据映射


{
"image":
  {
  "id": 2349823,
  "name": "My Image",
  "status": "disabled",
  "image_type": "kernel"
  "is_public": true,
  "metadata": { "mykey": "myvalue" },
  "files": [ { "location": "swift://user:passwd@acct/container/obj.tar.gz.0",
             "size": 101 } ]
  }
}


笔记

主体字典和结果字典仅包含一个元素“image”的原因是为了 XML 转换,其中根元素将是 `<image>` 而不是根 XML 命名空间。

`properties` 元素是镜像可能保存的自定义键/值对的映射。

`files` 元素是包含组成镜像的块以及块大小的映射列表

异常

404:未找到镜像

从注册表中删除现有镜像

DELETE http://parallax.openstack.org/images/<ID>


请求的主体将被忽略。

异常

404:未找到镜像

Teller API 命令

本节描述 Teller REST API。

获取镜像

GET http://teller.openstack.org/images/<ID>


将虚拟机镜像数据作为响应主体返回。

异常

404:未找到镜像

存储镜像

POST http://teller.openstack.org/images/<ID>


POST 请求的主体应是 mime 编码的数据块,代表要存储的镜像。

注意:这只是将原始镜像数据存储在 Teller 的后端。如果您负责存储镜像的元数据,则应使用对 Parallax API 的类似调用来执行此操作。

立即返回一个图像信息映射,指示图像的状态


{
'image':
  {
    'id': identifier for image,
    'status': 'pending'
  }
}


更新镜像

没有更新镜像的操作。创建后所有镜像都是不可变的。

删除镜像

DELETE http://teller.openstack.org/images/<ID>


成功时返回 200 OK

当 URI 中的镜像不存在时返回 404