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: 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: 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.