← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1498005] [NEW] EC2 API RegisterImage method ignores KernelId and RamdiskId

 

Public bug reported:

tempest.thirdparty.boto.test_ec2_instance_run.InstanceRunTest creates an
AMI image with kernel and ramdisk parameters, here are the values passed
to n-api:

2015-09-17 21:42:43.733 INFO nova.api.ec2 [req-66cd4f86-a320-4173-953b-0a5c441ae8f9 tempest-InstanceRunTest-1462515106 tempest-InstanceRunTest-17803527] 1.211148s 127.0.0.1 POST / CloudController:RegisterImage 200 [Boto/2.38.0 Python/2.7.6 Linux/3.13.0-63-generic] application/x-www-form-urlencoded text/xml
2015-09-17 21:42:43.733 INFO nova.ec2.wsgi.server [req-66cd4f86-a320-4173-953b-0a5c441ae8f9 tempest-InstanceRunTest-1462515106 tempest-InstanceRunTest-17803527] 127.0.0.1 "POST / HTTP/1.1" status: 200 len: 299 time: 1.2117610
2015-09-17 21:42:43.924 24107 DEBUG nova.ec2.wsgi.server [-] (24107) accepted ('127.0.0.1', 59659) server /usr/local/lib/python2.7/dist-packages/eventlet/wsgi.py:826
2015-09-17 21:42:43.990 DEBUG nova.api.ec2 [req-c627bfe6-4fe2-4c5c-ad39-176d348626ce tempest-InstanceRunTest-1462515106 tempest-InstanceRunTest-17803527] action: RegisterImage __call__ /opt/stack/new/nova/nova/api/ec2/__init__.py:388
2015-09-17 21:42:43.991 DEBUG nova.api.ec2 [req-c627bfe6-4fe2-4c5c-ad39-176d348626ce tempest-InstanceRunTest-1462515106 tempest-InstanceRunTest-17803527] arg: Name		val: tempest-ami-name-277527092 __call__ /opt/stack/new/nova/nova/api/ec2/__init__.py:391
2015-09-17 21:42:43.991 DEBUG nova.api.ec2 [req-c627bfe6-4fe2-4c5c-ad39-176d348626ce tempest-InstanceRunTest-1462515106 tempest-InstanceRunTest-17803527] arg: KernelId		val: aki-00000013 __call__ /opt/stack/new/nova/nova/api/ec2/__init__.py:391
2015-09-17 21:42:43.991 DEBUG nova.api.ec2 [req-c627bfe6-4fe2-4c5c-ad39-176d348626ce tempest-InstanceRunTest-1462515106 tempest-InstanceRunTest-17803527] arg: ImageLocation		val: tempest-s3bucket-1592249957/cirros-0.3.4-x86_64-blank.img.manifest.xml __call__ /opt/stack/new/nova/nova/api/ec2/__init__.py:391
2015-09-17 21:42:43.991 DEBUG nova.api.ec2 [req-c627bfe6-4fe2-4c5c-ad39-176d348626ce tempest-InstanceRunTest-1462515106 tempest-InstanceRunTest-17803527] arg: RamdiskId		val: ari-00000014 __call__ /opt/stack/new/nova/nova/api/ec2/__init__.py:391

Although, KernelId and RamdiskId are ignored and image is created
without these properties. In case of using Ironic driver, an image
without kernel_id and ramdisk_id properties is considered a whole-disk
image, and tempest.thirdparty.boto.test_ec2_instance_run.InstanceRunTest
fails in gate, because nodes created by devstack have ephemeral_gb=1 and
Ironic cannot deploy a whole-disk image when ephemeral or swap are set,
which causes the following exception:

n-cpu:
2015-09-12 16:32:09.817 DEBUG nova.compute.manager [req-3e3492fa-056e-407f-acc4-bb8c85b16883 tempest-InstanceRunTest-21715614 tempest-InstanceRunTest-326056565] [instance: d09fb517-c17c-4405-9d29-13a1f92a669f] Build of instance d09fb517-c17c-4405-9d29-13a1f92a669f was re-scheduled: RPC do_node_deploy failed to validate deploy or power info. Error: Cannot deploy whole disk image with swap or ephemeral size set (HTTP 500) _do_build_and_run_instance /opt/stack/new/nova/nova/compute/manager.py:1923

ir-api:
2015-09-12 16:32:08.808 22705 ERROR wsme.api [req-6840c2a2-3923-47dd-9ef6-451fa7c6e3f7 ] Server-side error: "RPC do_node_deploy failed to validate deploy or power info. Error: Cannot deploy whole disk image with swap or ephemeral size set
Traceback (most recent call last):
  
  File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/server.py", line 142, in inner
    return func(*args, **kwargs)
  
  File "/opt/stack/new/ironic/ironic/conductor/manager.py", line 732, in do_node_deploy
    "power info. Error: %(msg)s") % {'msg': e})
  
InstanceDeployFailure: RPC do_node_deploy failed to validate deploy or power info. Error: Cannot deploy whole disk image with swap or ephemeral size set
". Detail:
Traceback (most recent call last):
  
  File "/usr/local/lib/python2.7/dist-packages/wsmeext/pecan.py", line 84, in callfunction
    result = f(self, *args, **kwargs)
  
  File "/opt/stack/new/ironic/ironic/api/controllers/v1/node.py", line 479, in provision
    configdrive, topic)
  
  File "/opt/stack/new/ironic/ironic/conductor/rpcapi.py", line 303, in do_node_deploy
    rebuild=rebuild, configdrive=configdrive)
  
  File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/client.py", line 158, in call
    retry=self.retry)
  
  File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/transport.py", line 90, in _send
    timeout=timeout, retry=retry)
  
  File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/_drivers/amqpdriver.py", line 431, in send
    retry=retry)
  
  File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/_drivers/amqpdriver.py", line 422, in _send
    raise result
  
InstanceDeployFailure_Remote: RPC do_node_deploy failed to validate deploy or power info. Error: Cannot deploy whole disk image with swap or ephemeral size set
Traceback (most recent call last):
  
  File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/server.py", line 142, in inner
    return func(*args, **kwargs)
  
  File "/opt/stack/new/ironic/ironic/conductor/manager.py", line 732, in do_node_deploy
    "power info. Error: %(msg)s") % {'msg': e})
  
InstanceDeployFailure: RPC do_node_deploy failed to validate deploy or power info. Error: Cannot deploy whole disk image with swap or ephemeral size set

** Affects: nova
     Importance: Undecided
     Assignee: Vladyslav Drok (vdrok)
         Status: New

** Changed in: nova
     Assignee: (unassigned) => Vladyslav Drok (vdrok)

-- 
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/1498005

Title:
  EC2 API RegisterImage method ignores KernelId and RamdiskId

Status in OpenStack Compute (nova):
  New

Bug description:
  tempest.thirdparty.boto.test_ec2_instance_run.InstanceRunTest creates
  an AMI image with kernel and ramdisk parameters, here are the values
  passed to n-api:

  2015-09-17 21:42:43.733 INFO nova.api.ec2 [req-66cd4f86-a320-4173-953b-0a5c441ae8f9 tempest-InstanceRunTest-1462515106 tempest-InstanceRunTest-17803527] 1.211148s 127.0.0.1 POST / CloudController:RegisterImage 200 [Boto/2.38.0 Python/2.7.6 Linux/3.13.0-63-generic] application/x-www-form-urlencoded text/xml
  2015-09-17 21:42:43.733 INFO nova.ec2.wsgi.server [req-66cd4f86-a320-4173-953b-0a5c441ae8f9 tempest-InstanceRunTest-1462515106 tempest-InstanceRunTest-17803527] 127.0.0.1 "POST / HTTP/1.1" status: 200 len: 299 time: 1.2117610
  2015-09-17 21:42:43.924 24107 DEBUG nova.ec2.wsgi.server [-] (24107) accepted ('127.0.0.1', 59659) server /usr/local/lib/python2.7/dist-packages/eventlet/wsgi.py:826
  2015-09-17 21:42:43.990 DEBUG nova.api.ec2 [req-c627bfe6-4fe2-4c5c-ad39-176d348626ce tempest-InstanceRunTest-1462515106 tempest-InstanceRunTest-17803527] action: RegisterImage __call__ /opt/stack/new/nova/nova/api/ec2/__init__.py:388
  2015-09-17 21:42:43.991 DEBUG nova.api.ec2 [req-c627bfe6-4fe2-4c5c-ad39-176d348626ce tempest-InstanceRunTest-1462515106 tempest-InstanceRunTest-17803527] arg: Name		val: tempest-ami-name-277527092 __call__ /opt/stack/new/nova/nova/api/ec2/__init__.py:391
  2015-09-17 21:42:43.991 DEBUG nova.api.ec2 [req-c627bfe6-4fe2-4c5c-ad39-176d348626ce tempest-InstanceRunTest-1462515106 tempest-InstanceRunTest-17803527] arg: KernelId		val: aki-00000013 __call__ /opt/stack/new/nova/nova/api/ec2/__init__.py:391
  2015-09-17 21:42:43.991 DEBUG nova.api.ec2 [req-c627bfe6-4fe2-4c5c-ad39-176d348626ce tempest-InstanceRunTest-1462515106 tempest-InstanceRunTest-17803527] arg: ImageLocation		val: tempest-s3bucket-1592249957/cirros-0.3.4-x86_64-blank.img.manifest.xml __call__ /opt/stack/new/nova/nova/api/ec2/__init__.py:391
  2015-09-17 21:42:43.991 DEBUG nova.api.ec2 [req-c627bfe6-4fe2-4c5c-ad39-176d348626ce tempest-InstanceRunTest-1462515106 tempest-InstanceRunTest-17803527] arg: RamdiskId		val: ari-00000014 __call__ /opt/stack/new/nova/nova/api/ec2/__init__.py:391

  Although, KernelId and RamdiskId are ignored and image is created
  without these properties. In case of using Ironic driver, an image
  without kernel_id and ramdisk_id properties is considered a whole-disk
  image, and
  tempest.thirdparty.boto.test_ec2_instance_run.InstanceRunTest fails in
  gate, because nodes created by devstack have ephemeral_gb=1 and Ironic
  cannot deploy a whole-disk image when ephemeral or swap are set, which
  causes the following exception:

  n-cpu:
  2015-09-12 16:32:09.817 DEBUG nova.compute.manager [req-3e3492fa-056e-407f-acc4-bb8c85b16883 tempest-InstanceRunTest-21715614 tempest-InstanceRunTest-326056565] [instance: d09fb517-c17c-4405-9d29-13a1f92a669f] Build of instance d09fb517-c17c-4405-9d29-13a1f92a669f was re-scheduled: RPC do_node_deploy failed to validate deploy or power info. Error: Cannot deploy whole disk image with swap or ephemeral size set (HTTP 500) _do_build_and_run_instance /opt/stack/new/nova/nova/compute/manager.py:1923

  ir-api:
  2015-09-12 16:32:08.808 22705 ERROR wsme.api [req-6840c2a2-3923-47dd-9ef6-451fa7c6e3f7 ] Server-side error: "RPC do_node_deploy failed to validate deploy or power info. Error: Cannot deploy whole disk image with swap or ephemeral size set
  Traceback (most recent call last):
    
    File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/server.py", line 142, in inner
      return func(*args, **kwargs)
    
    File "/opt/stack/new/ironic/ironic/conductor/manager.py", line 732, in do_node_deploy
      "power info. Error: %(msg)s") % {'msg': e})
    
  InstanceDeployFailure: RPC do_node_deploy failed to validate deploy or power info. Error: Cannot deploy whole disk image with swap or ephemeral size set
  ". Detail:
  Traceback (most recent call last):
    
    File "/usr/local/lib/python2.7/dist-packages/wsmeext/pecan.py", line 84, in callfunction
      result = f(self, *args, **kwargs)
    
    File "/opt/stack/new/ironic/ironic/api/controllers/v1/node.py", line 479, in provision
      configdrive, topic)
    
    File "/opt/stack/new/ironic/ironic/conductor/rpcapi.py", line 303, in do_node_deploy
      rebuild=rebuild, configdrive=configdrive)
    
    File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/client.py", line 158, in call
      retry=self.retry)
    
    File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/transport.py", line 90, in _send
      timeout=timeout, retry=retry)
    
    File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/_drivers/amqpdriver.py", line 431, in send
      retry=retry)
    
    File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/_drivers/amqpdriver.py", line 422, in _send
      raise result
    
  InstanceDeployFailure_Remote: RPC do_node_deploy failed to validate deploy or power info. Error: Cannot deploy whole disk image with swap or ephemeral size set
  Traceback (most recent call last):
    
    File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/server.py", line 142, in inner
      return func(*args, **kwargs)
    
    File "/opt/stack/new/ironic/ironic/conductor/manager.py", line 732, in do_node_deploy
      "power info. Error: %(msg)s") % {'msg': e})
    
  InstanceDeployFailure: RPC do_node_deploy failed to validate deploy or power info. Error: Cannot deploy whole disk image with swap or ephemeral size set

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


Follow ups