Ejemplo n.º 1
0
    def _create_backup(self, glance_client, bank_section, image_id):
        try:
            chunks_num = utils.backup_image_to_bank(
                glance_client,
                image_id, bank_section,
                self._data_block_size_bytes
            )

            # Save the chunks_num to metadata
            resource_definition = bank_section.get_object("metadata")
            if resource_definition is not None:
                resource_definition["chunks_num"] = chunks_num
            bank_section.update_object("metadata", resource_definition)

            # Update resource_definition backup_status
            bank_section.update_object("status",
                                       constants.RESOURCE_STATUS_AVAILABLE)
            LOG.info('Protecting image (id: %s) to bank completed '
                     'successfully', image_id)
        except Exception as err:
            # update resource_definition backup_status
            LOG.exception('Protecting image (id: %s) to bank failed.',
                          image_id)
            bank_section.update_object("status",
                                       constants.RESOURCE_STATUS_ERROR)
            raise exception.CreateResourceFailed(
                name="Image Backup",
                reason=err,
                resource_id=image_id,
                resource_type=constants.IMAGE_RESOURCE_TYPE)
Ejemplo n.º 2
0
 def _backup_temporary_image(self, glance_client, image_id, bank_section):
     try:
         chunks_num = utils.backup_image_to_bank(
             glance_client,
             image_id,
             bank_section,
             self._image_object_size
         )
         image_info = glance_client.images.get(image_id)
         image_resource_definition = {
             'chunks_num': chunks_num,
             'image_metadata': {
                 'checksum': image_info.checksum,
                 'disk_format': image_info.disk_format,
                 "container_format": image_info.container_format
             }
         }
         return image_resource_definition
     except Exception as err:
         LOG.exception('Protecting temporary image (id: %s) to bank '
                       'failed.', image_id)
         raise exception.CreateResourceFailed(
             name="Volume Glance Backup",
             reason=err,
             resource_id=image_id,
             resource_type=constants.IMAGE_RESOURCE_TYPE)