ironic.common.image_service module

class ironic.common.image_service.BaseImageService[source]

Bases: object

Provides retrieval of disk images.

abstract download(image_href, image_file)[source]

Downloads image to specified location.

Parameters
  • image_href – Image reference.

  • image_file – File object to write data to.

Raises

exception.ImageRefValidationFailed.

Raises

exception.ImageDownloadFailed.

abstract show(image_href)[source]

Get dictionary of image properties.

Parameters

image_href – Image reference.

Raises

exception.ImageRefValidationFailed.

Returns

dictionary of image properties. It has three of them: ‘size’, ‘updated_at’ and ‘properties’. ‘updated_at’ attribute is a naive UTC datetime object.

abstract validate_href(image_href)[source]

Validate image reference.

Parameters

image_href – Image reference.

Raises

exception.ImageRefValidationFailed.

Returns

Information needed to further operate with an image.

class ironic.common.image_service.FileImageService[source]

Bases: ironic.common.image_service.BaseImageService

Provides retrieval of disk images available locally on the conductor.

download(image_href, image_file)[source]

Downloads image to specified location.

Parameters
  • image_href – Image reference.

  • image_file – File object to write data to.

Raises

exception.ImageRefValidationFailed if source image file doesn’t exist.

Raises

exception.ImageDownloadFailed if exceptions were raised while writing to file or creating hard link.

show(image_href)[source]

Get dictionary of image properties.

Parameters

image_href – Image reference.

Raises

exception.ImageRefValidationFailed if image file specified doesn’t exist.

Returns

dictionary of image properties. It has three of them: ‘size’, ‘updated_at’ and ‘properties’. ‘updated_at’ attribute is a naive UTC datetime object.

validate_href(image_href)[source]

Validate local image reference.

Parameters

image_href – Image reference.

Raises

exception.ImageRefValidationFailed if source image file doesn’t exist.

Returns

Path to image file if it exists.

class ironic.common.image_service.HttpImageService[source]

Bases: ironic.common.image_service.BaseImageService

Provides retrieval of disk images using HTTP.

download(image_href, image_file)[source]

Downloads image to specified location.

Parameters
  • image_href – Image reference.

  • image_file – File object to write data to.

Raises

exception.ImageRefValidationFailed if GET request returned response code not equal to 200.

Raises

exception.ImageDownloadFailed if: * IOError happened during file write; * GET request failed.

show(image_href)[source]

Get dictionary of image properties.

Parameters

image_href – Image reference.

Raises

exception.ImageRefValidationFailed if: * HEAD request failed; * HEAD request returned response code not equal to 200; * Content-Length header not found in response to HEAD request.

Returns

dictionary of image properties. It has three of them: ‘size’, ‘updated_at’ and ‘properties’. ‘updated_at’ attribute is a naive UTC datetime object.

validate_href(image_href, secret=False)[source]

Validate HTTP image reference.

Parameters
  • image_href – Image reference.

  • secret – Specify if image_href being validated should not be shown in exception message.

Raises

exception.ImageRefValidationFailed if HEAD request failed or returned response code not equal to 200.

Returns

Response to HEAD request.

ironic.common.image_service.get_image_service(image_href, client=None, context=None)[source]

Get image service instance to download the image.

Parameters
  • image_href – String containing href to get image service for.

  • client – Glance client to be used for download, used only if image_href is Glance href.

  • context – request context, used only if image_href is Glance href.

Raises

exception.ImageRefValidationFailed if no image service can handle specified href.

Returns

Instance of an image service class that is able to download specified image.