← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1616938] Re: XenAPI: failed to create image from volume backed instance

 

What is the glance image backend that you're using here? It's not that
the xen api virt driver is failing, glance is rejecting the image create
request - but what's the image backend in this case?

** Also affects: glance
   Importance: Undecided
       Status: New

** Changed in: nova
       Status: Triaged => Incomplete

** Summary changed:

- XenAPI: failed to create image from volume backed instance
+ XenAPI: failed to create image from volume backed instance with glance v2

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1616938

Title:
  XenAPI: failed to create image from volume backed instance with glance
  v2

Status in Glance:
  New
Status in OpenStack Compute (nova):
  Incomplete

Bug description:
  XenServer with dirver XenAPI, it always fails to create image from
  volume.

  Tempest test:
  tempest.scenario.test_volume_boot_pattern.TestVolumeBootPatternV2.test_create_ebs_image_and_check_boot

  2016-08-24 08:13:24.636 27347 DEBUG nova.compute.api [req-fd7afac4-a2ee-41cb-b785-02766806db26 tempest-TestVolumeBootPatternV2-1645487335 tempest-TestVolumeBootPatternV2-1645487335] [instance: 5d5a8b10-655c-457e-8ad9-edbfb6ecd278] Creating snapshot from volume 9953359c-327a-41bf-abec-f3c3da416390. snapshot_volume_backed /opt/stack/new/nova/nova/compute/api.py:2445^M
  2016-08-24 08:13:25.964 27347 INFO os_vif [req-fd7afac4-a2ee-41cb-b785-02766806db26 tempest-TestVolumeBootPatternV2-1645487335 tempest-TestVolumeBootPatternV2-1645487335] Loaded VIF plugin class '<class 'vif_plug_ovs.ovs.OvsPlugin'>' with name 'ovs'^M
  2016-08-24 08:13:25.965 27347 INFO os_vif [req-fd7afac4-a2ee-41cb-b785-02766806db26 tempest-TestVolumeBootPatternV2-1645487335 tempest-TestVolumeBootPatternV2-1645487335] Loaded VIF plugin class '<class 'vif_plug_linux_bridge.linux_bridge.LinuxBridgePlugin'>' with name 'linux_bridge'^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions [req-fd7afac4-a2ee-41cb-b785-02766806db26 tempest-TestVolumeBootPatternV2-1645487335 tempest-TestVolumeBootPatternV2-1645487335] Unexpected exception in API method^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions Traceback (most recent call last):^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions   File "/opt/stack/new/nova/nova/api/openstack/extensions.py", line 338, in wrapped^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions     return f(*args, **kwargs)^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions   File "/opt/stack/new/nova/nova/api/openstack/common.py", line 372, in inner^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions     return f(*args, **kwargs)^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions   File "/opt/stack/new/nova/nova/api/validation/__init__.py", line 73, in wrapper^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions     return func(*args, **kwargs)^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions   File "/opt/stack/new/nova/nova/api/validation/__init__.py", line 73, in wrapper^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions     return func(*args, **kwargs)^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions   File "/opt/stack/new/nova/nova/api/openstack/compute/servers.py", line 1072, in _action_create_image^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions     metadata)^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions   File "/opt/stack/new/nova/nova/compute/api.py", line 146, in inner^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions     return f(self, context, instance, *args, **kw)^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions   File "/opt/stack/new/nova/nova/compute/api.py", line 2463, in snapshot_volume_backed^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions     return self.image_api.create(context, image_meta)^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions   File "/opt/stack/new/nova/nova/image/api.py", line 106, in create^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions     return session.create(context, image_info, data=data)^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions   File "/opt/stack/new/nova/nova/image/glance.py", line 626, in create^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions     data, force_activate)^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions   File "/opt/stack/new/nova/nova/image/glance.py", line 658, in _create_v2^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions     context, 2, 'create', **sent_service_image_meta)^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions   File "/opt/stack/new/nova/nova/image/glance.py", line 174, in call^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions     result = getattr(client.images, method)(*args, **kwargs)^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions   File "/usr/local/lib/python2.7/dist-packages/glanceclient/v2/images.py", line 233, in create^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions     raise TypeError(encodeutils.exception_to_unicode(e))^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions TypeError: Unable to set 'disk_format' to 'qcow2'. Reason: 'qcow2' is not one of [None, u'ami', u'ari', u'aki', u'vhd', u'raw', u'iso']^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions ^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions Failed validating u'enum' in schema[u'properties'][u'disk_format']:^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions     {u'description': u'Format of the disk',^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions      u'enum': [None, u'ami', u'ari', u'aki', u'vhd', u'raw', u'iso'],^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions      u'type': [u'null', u'string']}^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions ^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions On instance[u'disk_format']:^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions     'qcow2'^M
  2016-08-24 08:13:26.049 27347 ERROR nova.api.openstack.extensions ^M


  Per my analysis, it should be bug due to it hardcode the disk format as qcow2. 
  See: https://github.com/openstack/nova/blob/master/nova/compute/api.py#L2471
  At here, it cleans the disk_format and container_format

  Then:

  https://github.com/openstack/nova/blob/master//nova/image/glance.py#L651
  It will hardcode the disk_format as qcow2 which is not supported by XenAPI.

  nova/nova/image/glance.py
      def _create_v2(self, context, sent_service_image_meta, data=None,
                     force_activate=False):
          # Glance v1 allows image activation without setting disk and
          # container formats, v2 doesn't. It leads to the dirtiest workaround
          # where we have to hardcode this parameters.
          if force_activate:
              data = ''
              if 'disk_format' not in sent_service_image_meta:
                  sent_service_image_meta['disk_format'] = 'qcow2'
              if 'container_format' not in sent_service_image_meta:
                  sent_service_image_meta['container_format'] = 'bare'

To manage notifications about this bug go to:
https://bugs.launchpad.net/glance/+bug/1616938/+subscriptions


References