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.

Raises

exception.ImageRefIsARedirect if the supplied URL is a redirect to a different URL. The caller may be able to handle this.

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.