Public bug reported: If user tries to stage data to unexisting image then it fails with 500 internal server error.
Ideally it should return 404 HTTNotFound error to the user. Steps to reproduce: 1. Run image-stage with any random id command $ glance image-stage abcd --file <file_name> Output: 500 Internal Server Error: The server has either erred or is incapable of performing the requested operation. (HTTP 500) Glance API logs: Nov 21 10:12:29 devstack devstack@g-api.service[19195]: pdict['tenant'] = self.tenant Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data [None req-99abd47d-7c74-43ad-a92e-abf01d97f4c4 admin admin] Failed to stage image data due to internal error: ImageNotFound: No image found with ID abcd Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data Traceback (most recent call last): Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data File "/opt/stack/glance/glance/api/v2/image_data.py", line 298, in stage Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data image = image_repo.get(image_id) Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data File "/opt/stack/glance/glance/api/authorization.py", line 107, in get Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data image = self.image_repo.get(image_id) Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data File "/opt/stack/glance/glance/domain/proxy.py", line 86, in get Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data return self.helper.proxy(self.base.get(item_id)) Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data File "/opt/stack/glance/glance/api/policy.py", line 105, in get Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data image = super(ImageRepoProxy, self).get(image_id) Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data File "/opt/stack/glance/glance/domain/proxy.py", line 86, in get Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data return self.helper.proxy(self.base.get(item_id)) Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data File "/opt/stack/glance/glance/domain/proxy.py", line 86, in get Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data return self.helper.proxy(self.base.get(item_id)) Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data File "/opt/stack/glance/glance/domain/proxy.py", line 86, in get Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data return self.helper.proxy(self.base.get(item_id)) Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data File "/opt/stack/glance/glance/db/__init__.py", line 89, in get Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data raise exception.ImageNotFound(msg) Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data ImageNotFound: No image found with ID abcd Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data ** Affects: glance Importance: Undecided Assignee: Abhishek Kekane (abhishek-kekane) Status: New ** Changed in: glance Assignee: (unassigned) => Abhishek Kekane (abhishek-kekane) ** Description changed: If user tries to stage data to unexisting image then it fails with 500 internal server error. Ideally it should return 404 HTTNotFound error to the user. Steps to reproduce: 1. Run image-stage with any random id command - $ glance image-stage abcd1234 --file <file_name> + $ glance image-stage abcd --file <file_name> Output: 500 Internal Server Error: The server has either erred or is incapable of performing the requested operation. (HTTP 500) Glance API logs: Nov 21 10:12:29 devstack devstack@g-api.service[19195]: pdict['tenant'] = self.tenant Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data [None req-99abd47d-7c74-43ad-a92e-abf01d97f4c4 admin admin] Failed to stage image data due to internal error: ImageNotFound: No image found with ID abcd Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data Traceback (most recent call last): Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data File "/opt/stack/glance/glance/api/v2/image_data.py", line 298, in stage Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data image = image_repo.get(image_id) Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data File "/opt/stack/glance/glance/api/authorization.py", line 107, in get Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data image = self.image_repo.get(image_id) Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data File "/opt/stack/glance/glance/domain/proxy.py", line 86, in get Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data return self.helper.proxy(self.base.get(item_id)) Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data File "/opt/stack/glance/glance/api/policy.py", line 105, in get Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data image = super(ImageRepoProxy, self).get(image_id) Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data File "/opt/stack/glance/glance/domain/proxy.py", line 86, in get Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data return self.helper.proxy(self.base.get(item_id)) Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data File "/opt/stack/glance/glance/domain/proxy.py", line 86, in get Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data return self.helper.proxy(self.base.get(item_id)) Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data File "/opt/stack/glance/glance/domain/proxy.py", line 86, in get Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data return self.helper.proxy(self.base.get(item_id)) Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data File "/opt/stack/glance/glance/db/__init__.py", line 89, in get Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data raise exception.ImageNotFound(msg) Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data ImageNotFound: No image found with ID abcd Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to Glance. https://bugs.launchpad.net/bugs/1733551 Title: Stage call returns 500 internal server error when image does not exists Status in Glance: New Bug description: If user tries to stage data to unexisting image then it fails with 500 internal server error. Ideally it should return 404 HTTNotFound error to the user. Steps to reproduce: 1. Run image-stage with any random id command $ glance image-stage abcd --file <file_name> Output: 500 Internal Server Error: The server has either erred or is incapable of performing the requested operation. (HTTP 500) Glance API logs: Nov 21 10:12:29 devstack devstack@g-api.service[19195]: pdict['tenant'] = self.tenant Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data [None req-99abd47d-7c74-43ad-a92e-abf01d97f4c4 admin admin] Failed to stage image data due to internal error: ImageNotFound: No image found with ID abcd Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data Traceback (most recent call last): Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data File "/opt/stack/glance/glance/api/v2/image_data.py", line 298, in stage Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data image = image_repo.get(image_id) Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data File "/opt/stack/glance/glance/api/authorization.py", line 107, in get Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data image = self.image_repo.get(image_id) Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data File "/opt/stack/glance/glance/domain/proxy.py", line 86, in get Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data return self.helper.proxy(self.base.get(item_id)) Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data File "/opt/stack/glance/glance/api/policy.py", line 105, in get Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data image = super(ImageRepoProxy, self).get(image_id) Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data File "/opt/stack/glance/glance/domain/proxy.py", line 86, in get Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data return self.helper.proxy(self.base.get(item_id)) Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data File "/opt/stack/glance/glance/domain/proxy.py", line 86, in get Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data return self.helper.proxy(self.base.get(item_id)) Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data File "/opt/stack/glance/glance/domain/proxy.py", line 86, in get Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data return self.helper.proxy(self.base.get(item_id)) Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data File "/opt/stack/glance/glance/db/__init__.py", line 89, in get Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data raise exception.ImageNotFound(msg) Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data ImageNotFound: No image found with ID abcd Nov 21 10:12:29 devstack devstack@g-api.service[19195]: ERROR glance.api.v2.image_data To manage notifications about this bug go to: https://bugs.launchpad.net/glance/+bug/1733551/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp