Red Hat Bugzilla – Bug 1023996
glance api: using --location in swift backend will cause image to be created locally
Last modified: 2016-04-26 15:59:26 EDT
Created attachment 816821 [details]
Description of problem:
I configured swift as my glance backend and my data servers do not have enough disk space.
when I try to create an image from horizon we fail on not enough disk space.
when I use the following command in api we succeed to create the image because its created locally.
glance image-create --name test --disk-format qcow2 --container-format bare --location http:XXXXX
However, we will not be able to launch an instance from it and instance will be stuck in scheduling.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. create a setup with swift as glance backend and make sure swift data servers do not have enough disk space
2. create an image from horizon
3. create an image from cli
4. try to boot an instance from image
we succeed in creating the image in cli when using --location
if we change configuration files to work with swift (or any remote backend for that matter) we should either fail --location or re-direct to --copy-from.
This doesn't look like glanceclient problem to me. Client doesn't know/care about glance backend, it just sends a command as instructed. If this special case should be handled in any way, it should be done in glance.
Linked upstream bug is filed about glance as well.
Also, I don't think this is a high priority bug, but I'll let the future assignee decide that.
If you don't want to use the HTTP store, you need to remove it from the `known_stores` config parameter. That will disable the store and fail if `--location http://` is used. Unfortunately, this will also make `--copy-from http://` fail.
I don't think redirection to `--copy-from` is the right thing to do. Glance is designed to use multiple stores and it's up to the user to specify into which location an image should be uploaded.
As for the issue you hit, I can't replicate it. I installed glance + swift and used `--location http://` and it just worked.
One more thing, I couldn't find in the API logs the creation of the image using `--location`, I think the log level was not low enough. Could you please use `debug = True` and `verbose = True` ?
Also unable to replicate error.
Glance+swift (backend full), uploaded new image via --location http.
Image created ok, instance booted up ok from image.
Ok, that sounds like the right behavior! Closing as won't fix since the expected result is not compliant with how glance works.