glance_store.location 模块¶
一个描述 Glance 中镜像位置的类。
在 Glance 中,镜像可以被存储在 Glance 中,或者可以被注册在 Glance 中但实际上存储在其他地方。
我们需要一个类来支持 Glance 描述镜像存储位置的各种方式。
Glance 中的镜像有两个位置属性:镜像 URI 和镜像存储 URI。
镜像 URI 本质上是镜像的永久链接标识符。它显示在各种 Glance API 调用输出中,虽然是只读的,但完全面向用户。它不应包含任何安全凭据信息。Glance 镜像 URI 应该是 Glance API 服务器的主机名:端口号加上 /images/<IMAGE_ID>。
Glance 存储 URI 是一种内部 URI 结构,Glance 使用它来维护有关如何访问存储在存储后端中的镜像的关键信息。它可能包含安全凭据,并且不面向用户。
- class glance_store.location.Location(store_name, store_location_class, conf, uri=None, image_id=None, store_specs=None, backend=None)¶
基类:
object描述 Glance 知道的镜像位置的类
- get_store_uri()¶
返回 Glance 镜像 URI,即 API 服务器的主机名:端口号加上 /images/<IMAGE_ID>
- get_uri()¶
- class glance_store.location.StoreLocation(store_specs, conf, backend_group=None)¶
基类:
object每个存储都必须实现的基类
- get_uri()¶
子类应实现一种方法,该方法返回一个内部 URI,当提供给 StoreLocation 实例时,可以被 StoreLocation 的 parse_uri() 方法解释。从该方法返回的 URI 绝不能公开,并且仅在 Glance 内部使用,因此可以在此 URI 中编码凭据。
- parse_uri(uri)¶
子类应实现一种方法,该方法接受一个字符串 URI 并设置适当的内部字段,以便调用 get_uri() 将返回一个正确的内部 URI
- process_specs()¶
子类应实现对 self.specs 集合的任何处理,例如存储凭据和可能建立连接。
- static validate_schemas(uri, valid_schemas)¶
检查 URI 方案是否是 valid_schemas,否则生成异常
- glance_store.location.get_location_from_uri(uri, conf=<oslo_config.cfg.ConfigOpts object>)¶
给定一个 URI,返回一个 Location 对象,该对象已经由适当的存储解析了 URI。
- 参数:
uri – 一个来自用户在 Location 属性/标头中的 URI。
conf – 全局配置。
- 示例 URI
https://user:pass@example.com:80/images/some-id http://example.com/123456 swift://example.com/container/obj-id swift://user:account:pass@authurl.com/container/obj-id swift+http://user:account:pass@authurl.com/container/obj-id file:///var/lib/glance/images/1 cinder://volume-id s3://accesskey:secretkey@s3.amazonaws.com/bucket/key-id s3+https://accesskey:secretkey@s3.amazonaws.com/bucket/key-id
- glance_store.location.get_location_from_uri_and_backend(uri, backend, conf=<oslo_config.cfg.ConfigOpts object>)¶
从 URI 中提取后端位置。
给定一个 URI,返回一个 Location 对象,该对象已经由适当的存储解析了 URI。
- 参数:
uri – 一个来自用户在 Location 属性/标头中的 URI。
backend – 存储的后端名称。
conf – 全局配置。
- 示例 URI
https://user:pass@example.com:80/images/some-id http://example.com/123456 swift://example.com/container/obj-id swift://user:account:pass@authurl.com/container/obj-id swift+http://user:account:pass@authurl.com/container/obj-id file:///var/lib/glance/images/1 cinder://volume-id s3://accesskey:secretkey@s3.amazonaws.com/bucket/key-id s3+https://accesskey:secretkey@s3.amazonaws.com/bucket/key-id
- glance_store.location.register_scheme_backend_map(scheme_map)¶
注册方案与后端之间的映射。
给定 ‘scheme’ 到 store_name 的映射,将映射添加到已知的方案列表中。
此函数会覆盖现有的存储。
- glance_store.location.register_scheme_map(scheme_map)¶
给定 ‘scheme’ 到 store_name 的映射,将映射添加到已知的方案列表中。
此函数会覆盖现有的存储。