':param image_id: Id to use when storing extracted image to Glance
image store. It is assumed that some other task has already
created a row in the store with this id.
:param file_path: Path to the OVA package'

def execute(self, image_id, file_path):

    image = self.image_repo.get(image_id)
    if (image.container_format == 'ova'):
        if (image.context and image.context.is_admin):
            extractor = OVAImageExtractor()
            data_iter = self._get_ova_iter_objects(file_path)
            (disk, properties) = extractor.extract(data_iter)
            image.extra_properties.update(properties)
            image.container_format = 'bare'
            self.image_repo.save(image)
            dest_path = self._get_extracted_file_path(image_id)
            with open(dest_path, 'wb') as f:
                shutil.copyfileobj(disk, f, 4096)
            os.rename(dest_path, file_path.split('file://')[(-1)])
        else:
            raise RuntimeError(_('OVA    extract    is    limited    to    admin'))
    return file_path
