yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #38714
[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