yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #40220
[Bug 1504260] Re: locations not ‘deleted’ on delete-all image.locations
Was digging into the details for sometime now.
Looks like,
In the non-test environment, as @wangxiyuan mentioned above, the deletion of all locations are handled by,
https://github.com/openstack/glance/blob/master/glance/api/v2/images.py#L276
and eventually by,
https://github.com/openstack/glance/blob/master/glance/common/store_utils.py#L54
using ImageProxy & ImageLocationProxy.
Hence for delete locations, probably we never reach here:
https://github.com/openstack/glance/blob/master/glance/db/sqlalchemy/api.py#L799
That answers why the problem is not reproducible.
In test environment (functional), for some reason, the delete all locations goes through
https://github.com/openstack/glance/blob/master/glance/db/sqlalchemy/api.py#L799
and somehow skips the call via,
https://github.com/openstack/glance/blob/master/glance/common/store_utils.py#L54
Even though I am convinced it is a bug, unfortunately, I couldn't find a scenario where the delete all locations call would go through
https://github.com/openstack/glance/blob/master/glance/db/sqlalchemy/api.py#L799
in real time.
But, still curious to look into the details of what's happening behind the scenes while running tests. Will continue doing that.
If I find anything substantial will get back to reopen this bug.
For now, closing this bug.
Thanks for reviewing the patchset and getting back with your valuable
feedback.
** Changed in: glance
Status: In Progress => Invalid
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to Glance.
https://bugs.launchpad.net/bugs/1504260
Title:
locations not ‘deleted’ on delete-all image.locations
Status in Glance:
Invalid
Bug description:
Problem:
When we try to delete all locations for an ‘active’ image, the locations are not actually ‘deleted’ despite the image status being updated as ‘queued’.
Note: This behavior could be noticed only when we delete-all locations.
Scenario:
- Have an active image with its associated locations.
- Try updating the image to delete all locations with replace locations call and ensure the response status code is 200 and with image status as ‘queued’.
eg., json: {‘op': 'replace', 'path': '/locations', 'value': []}; url: /v2/images/%(image_id); http method: patch
- Make a call to get the image by ID.
Note: The obtained image details will still continue to have the list of locations.
Reason:
- The update call to delete-all locations is ignored due to incorrect python ‘falsy’ conditional check (at glance.sqlalchemy.api layer) that allows/disallows update of image locations.
Fix:
- Make the conditional check explicit so that the delete-all locations call for the given image is allowed to update the image locations as 'deleted'.
To manage notifications about this bug go to:
https://bugs.launchpad.net/glance/+bug/1504260/+subscriptions
References