Bug 1023996

Summary: glance api: using --location in swift backend will cause image to be created locally
Product: Red Hat OpenStack Reporter: Dafna Ron <dron>
Component: openstack-glanceAssignee: Jon Bernard <jobernar>
Status: CLOSED WONTFIX QA Contact: Tzach Shefi <tshefi>
Severity: high Docs Contact:
Priority: unspecified    
Version: 4.0CC: abaron, dallan, dron, eglynn, fpercoco, jruzicka, tshefi, yeylon
Target Milestone: ---   
Target Release: 5.0 (RHEL 7)   
Hardware: x86_64   
OS: Linux   
Whiteboard: storage
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-01-13 09:58:40 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
logs none

Description Dafna Ron 2013-10-28 14:33:05 UTC
Created attachment 816821 [details]
logs

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):

python-glanceclient-0.10.0-1.el6ost.noarch

How reproducible:

100%

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

Actual results:

we succeed in creating the image in cli when using --location

Expected results:

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. 

Additional info:

Comment 1 Jakub Ruzicka 2013-10-29 15:41:17 UTC
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.

Comment 2 Flavio Percoco 2014-01-03 14:39:41 UTC
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` ?

Comment 5 Tzach Shefi 2014-01-12 08:57:33 UTC
Also unable to replicate error. 

Glance+swift (backend full), uploaded new image via --location http. 
Image created ok, instance booted up ok from image.

openstack-glance-2013.2.1-2.el6ost.noarch
openstack-swift-1.10.0-2.el6ost.noarch
openstack-swift-account-1.10.0-2.el6ost.noarch
openstack-swift-object-1.10.0-2.el6ost.noarch
openstack-swift-proxy-1.10.0-2.el6ost.noarch
openstack-selinux-0.1.3-2.el6ost.noarch
openstack-utils-2013.2-2.el6ost.noarch
openstack-swift-container-1.10.0-2.el6ost.noarch
openstack-swift-plugin-swift3-1.0.0-0.20120711git.1.el6ost.noarch

Comment 6 Flavio Percoco 2014-01-13 09:58:40 UTC
Ok, that sounds like the right behavior! Closing as won't fix since the expected result is not compliant with how glance works.