Comment 0 for bug 1529572

Revision history for this message
wangxiyuan (wangxiyuan) wrote :

Env: glance-master,

Reproduce:
1. Suppose there is an image with its location in Glance already.
2. send a location-update request with two bodies, like:

[
    {
      "op":"replace",
   "path":"/locations",
      "value":[
      ]
   },

   {
      "op":"replace",
   "path":"/locations",
      "value":[
        {
            "url": "swift+http://admin:admin:root@10.229.45.145:35357/v3/glance/wrong-test.img",
             #note: this is a wrong location url.
            "metadata": {}
        }
      ]
   }
]
3. the Glance raise an error: Invalid locations. Because that I send a wrong url to Glance.
4. Show the image.

Expect result:
the image's status is 'queued' and the location is empty.

Actual result:
the image's status is 'active', but the location is empty.

The reason is that Glance save the image' information to db when the hole request is over. But i give the wrong url, so that the the location has been removed and image didn't be saved to db.

So IMO, we should take db saving each time we change the location.