cinder.image.glance module

Implementation of an image service that uses Glance as the backend

class GlanceClientWrapper(context: RequestContext | None = None, netloc: str | None = None, use_ssl: bool = False)

Bases: object

Glance client wrapper class that implements retries.

call(context: RequestContext, method: str, *args: Any, **kwargs: str) Any

Call a glance client method.

If we get a connection error, retry the request according to CONF.glance_num_retries.

class GlanceImageService(client: Any | None = None)

Bases: object

Provides storage and retrieval of disk image objects within Glance.

add_location(context: RequestContext, image_id: str, url: str, metadata: dict) dict

Add a backend location url to an image.

Returns a dict containing image metadata on success.

create(context: RequestContext, image_meta: dict[str, Any], data=None) dict[str, Any]

Store the image data and return the new image object.

delete(context: RequestContext, image_id: str) bool

Delete the given image.

Raises:
detail(context: RequestContext, **kwargs: str) list[dict]

Calls out to Glance for a list of detailed image information.

download(context: RequestContext, image_id: str, data=None)

Calls out to Glance for data and writes data.

get_location(context: RequestContext, image_id: str) tuple[str | None, Any]

Get backend storage location url.

Returns a tuple containing the direct url and locations representing the backend storage location, or (None, None) if these attributes are not shown by Glance.

get_stores(context: RequestContext)

Returns a list of dicts with stores information.

list_members(context: RequestContext, image_id: str) list[dict]

Returns a list of dicts with image member data.

show(context: RequestContext, image_id: str) dict[str, Any]

Returns a dict with image data for the given opaque image id.

update(context: RequestContext, image_id: str, image_meta: dict, data=None, purge_props: bool = True, store_id: str | None = None, base_image_ref: str | None = None) dict

Modify the given image with the new data.

get_api_servers(context: RequestContext) Iterable

Return Iterable over shuffled api servers.

Shuffle a list of glance_api_servers and return an iterator that will cycle through the list, looping around to the beginning if necessary. If CONF.glance_api_servers is None then they will be retrieved from the catalog.

get_default_image_service() GlanceImageService
get_remote_image_service(context: RequestContext, image_href) tuple[GlanceImageService, str]

Create an image_service and parse the id from the given image_href.

The image_href param can be an href of the form ‘http://example.com:9292/v1/images/b8b2c6f7-7345-4e2f-afa2-eedaba9cbbe3’, or just an id such as ‘b8b2c6f7-7345-4e2f-afa2-eedaba9cbbe3’. If the image_href is a standalone id, then the default image service is returned.

Parameters:

image_href – href that describes the location of an image

Returns:

a tuple of the form (image_service, image_id)