Public bug reported:

I'm working under RHEL7 + ICEHOUSE 2014.1
For glance, image is stored in local file system.

I want to create a volume from an image.
So I run command "cinder create --image-id ${image_id} --display-name ${name} 
${size}"
But then, I get error "glanceclient AttributeError: container_format" in ciner 
api debug info.

log_http_response 
/usr/lib/python2.7/site-packages/glanceclient/common/http.py:152
2014-07-22 17:25:32.310 15514 ERROR cinder.api.middleware.fault 
[req-0a2334ec-11a0-4356-89b4-492a2a59b302 fafa6d26b7644056bcdd920f2a667785 
c78d023501b34820b5bcd9e2db85a2bf - - -] Caught error: container_format
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault Traceback (most 
recent call last):
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/cinder/api/middleware/fault.py", line 75, in 
__call__
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     return 
req.get_response(self.application)
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/webob/request.py", line 1296, in send
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     
application, catch_exc_info=False)
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/webob/request.py", line 1260, in 
call_application
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     app_iter = 
application(self.environ, start_response)
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     return 
resp(environ, start_response)
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/keystoneclient/middleware/auth_token.py", 
line 615, in __call__
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     return 
self.app(env, start_response)
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     return 
resp(environ, start_response)
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     return 
resp(environ, start_response)
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/routes/middleware.py", line 131, in __call__
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     response = 
self.app(environ, start_response)
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     return 
resp(environ, start_response)
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/webob/dec.py", line 130, in __call__
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     resp = 
self.call_func(req, *args, **self.kwargs)
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/webob/dec.py", line 195, in call_func
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     return 
self.func(req, *args, **kwargs)
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/cinder/api/openstack/wsgi.py", line 895, in 
__call__
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     
content_type, body, accept)
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/cinder/api/openstack/wsgi.py", line 943, in 
_process_stack
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     
action_result = self.dispatch(meth, request, action_args)
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/cinder/api/openstack/wsgi.py", line 1019, in 
dispatch
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     return 
method(req=request, **action_args)
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/cinder/api/v1/volumes.py", line 432, in create
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     new_volume 
= self.volume_api.create(context,
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/cinder/volume/api.py", line 189, in create
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     
flow_engine.run()
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/taskflow/engines/action_engine/engine.py", 
line 89, in run
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     for _state 
in self.run_iter():
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/taskflow/engines/action_engine/engine.py", 
line 137, in run_iter
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     
misc.Failure.reraise_if_any(failures.values())
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/taskflow/utils/misc.py", line 797, in 
reraise_if_any
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     
failures[0].reraise()
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/taskflow/utils/misc.py", line 804, in reraise
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     
six.reraise(*self._exc_info)
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/taskflow/engines/action_engine/executor.py", 
line 34, in _execute_task
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     result = 
task.execute(**arguments)
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/cinder/volume/flows/api/create_volume.py", 
line 341, in execute
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     
self._check_image_metadata(context, image_id, size)
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/cinder/volume/flows/api/create_volume.py", 
line 180, in _check_image_metadata
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     image_meta 
= self.image_service.show(context, image_id)
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/cinder/image/glance.py", line 228, in show
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     
base_image_meta = self._translate_from_glance(image)
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/cinder/image/glance.py", line 336, in 
_translate_from_glance
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     image_meta 
= _extract_attributes(image)
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/cinder/image/glance.py", line 434, in 
_extract_attributes
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     
output[attr] = getattr(image, attr)
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/glanceclient/common/base.py", line 95, in 
__getattr__
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     return 
self.__getattr__(k)
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/glanceclient/common/base.py", line 97, in 
__getattr__
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     raise 
AttributeError(k)
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault AttributeError: 
container_format
2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault 
2014-07-22 17:25:32.361 15514 INFO cinder.api.middleware.fault 
[req-0a2334ec-11a0-4356-89b4-492a2a59b302 fafa6d26b7644056bcdd920f2a667785 
c78d023501b34820b5bcd9e2db85a2bf - - -] 
http://127.0.0.1:8776/v1/c78d023501b34820b5bcd9e2db85a2bf/volumes returned with 
HTTP 500
2014-07-22 17:25:32.362 15514 INFO eventlet.wsgi.server 
[req-0a2334ec-11a0-4356-89b4-492a2a59b302 fafa6d26b7644056bcdd920f2a667785 
c78d023501b34820b5bcd9e2db85a2bf - - -] 127.0.0.1 - - [22/Jul/2014 17:25:32] 
"POST /v1/c78d023501b34820b5bcd9e2db85a2bf/volumes HTTP/1.1" 500 401 5.034834

Then I find out, the value of this image's container_format is null in mysql.
Before this, I used glance cli to upload the image
"glance image-create --name imgtest --disk-format qcow2 --is-public false 
--copy-from 'http://10.43.179.2:8081/files/linux/cirros-0.3.0-x86_64-disk.img'"

But use dashboard to upload an image, the value of container_format is
default to BARE.

When we create a volume with an image, in glanceclient it checked the
Attribute container_format. But in glance, when we use cli to upload an
image, it did not check the attribute of container_format or used
default value as it did in dashboard.

In order to maintain consistent, i think in glance cli, the default
value of container_format should also be provided.

** Affects: glance
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to Glance.
https://bugs.launchpad.net/bugs/1347376

Title:
  create a volume from a image raise AttributeError

Status in OpenStack Image Registry and Delivery Service (Glance):
  New

Bug description:
  I'm working under RHEL7 + ICEHOUSE 2014.1
  For glance, image is stored in local file system.

  I want to create a volume from an image.
  So I run command "cinder create --image-id ${image_id} --display-name ${name} 
${size}"
  But then, I get error "glanceclient AttributeError: container_format" in 
ciner api debug info.

  log_http_response 
/usr/lib/python2.7/site-packages/glanceclient/common/http.py:152
  2014-07-22 17:25:32.310 15514 ERROR cinder.api.middleware.fault 
[req-0a2334ec-11a0-4356-89b4-492a2a59b302 fafa6d26b7644056bcdd920f2a667785 
c78d023501b34820b5bcd9e2db85a2bf - - -] Caught error: container_format
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault Traceback 
(most recent call last):
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/cinder/api/middleware/fault.py", line 75, in 
__call__
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     return 
req.get_response(self.application)
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/webob/request.py", line 1296, in send
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     
application, catch_exc_info=False)
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/webob/request.py", line 1260, in 
call_application
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     app_iter 
= application(self.environ, start_response)
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     return 
resp(environ, start_response)
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/keystoneclient/middleware/auth_token.py", 
line 615, in __call__
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     return 
self.app(env, start_response)
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     return 
resp(environ, start_response)
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     return 
resp(environ, start_response)
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/routes/middleware.py", line 131, in __call__
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     response 
= self.app(environ, start_response)
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     return 
resp(environ, start_response)
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/webob/dec.py", line 130, in __call__
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     resp = 
self.call_func(req, *args, **self.kwargs)
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/webob/dec.py", line 195, in call_func
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     return 
self.func(req, *args, **kwargs)
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/cinder/api/openstack/wsgi.py", line 895, in 
__call__
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     
content_type, body, accept)
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/cinder/api/openstack/wsgi.py", line 943, in 
_process_stack
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     
action_result = self.dispatch(meth, request, action_args)
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/cinder/api/openstack/wsgi.py", line 1019, in 
dispatch
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     return 
method(req=request, **action_args)
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/cinder/api/v1/volumes.py", line 432, in create
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     
new_volume = self.volume_api.create(context,
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/cinder/volume/api.py", line 189, in create
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     
flow_engine.run()
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/taskflow/engines/action_engine/engine.py", 
line 89, in run
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     for 
_state in self.run_iter():
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/taskflow/engines/action_engine/engine.py", 
line 137, in run_iter
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     
misc.Failure.reraise_if_any(failures.values())
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/taskflow/utils/misc.py", line 797, in 
reraise_if_any
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     
failures[0].reraise()
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/taskflow/utils/misc.py", line 804, in reraise
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     
six.reraise(*self._exc_info)
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/taskflow/engines/action_engine/executor.py", 
line 34, in _execute_task
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     result = 
task.execute(**arguments)
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/cinder/volume/flows/api/create_volume.py", 
line 341, in execute
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     
self._check_image_metadata(context, image_id, size)
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/cinder/volume/flows/api/create_volume.py", 
line 180, in _check_image_metadata
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     
image_meta = self.image_service.show(context, image_id)
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/cinder/image/glance.py", line 228, in show
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     
base_image_meta = self._translate_from_glance(image)
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/cinder/image/glance.py", line 336, in 
_translate_from_glance
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     
image_meta = _extract_attributes(image)
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/cinder/image/glance.py", line 434, in 
_extract_attributes
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     
output[attr] = getattr(image, attr)
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/glanceclient/common/base.py", line 95, in 
__getattr__
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     return 
self.__getattr__(k)
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault   File 
"/usr/lib/python2.7/site-packages/glanceclient/common/base.py", line 97, in 
__getattr__
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault     raise 
AttributeError(k)
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault 
AttributeError: container_format
  2014-07-22 17:25:32.310 15514 TRACE cinder.api.middleware.fault 
  2014-07-22 17:25:32.361 15514 INFO cinder.api.middleware.fault 
[req-0a2334ec-11a0-4356-89b4-492a2a59b302 fafa6d26b7644056bcdd920f2a667785 
c78d023501b34820b5bcd9e2db85a2bf - - -] 
http://127.0.0.1:8776/v1/c78d023501b34820b5bcd9e2db85a2bf/volumes returned with 
HTTP 500
  2014-07-22 17:25:32.362 15514 INFO eventlet.wsgi.server 
[req-0a2334ec-11a0-4356-89b4-492a2a59b302 fafa6d26b7644056bcdd920f2a667785 
c78d023501b34820b5bcd9e2db85a2bf - - -] 127.0.0.1 - - [22/Jul/2014 17:25:32] 
"POST /v1/c78d023501b34820b5bcd9e2db85a2bf/volumes HTTP/1.1" 500 401 5.034834

  Then I find out, the value of this image's container_format is null in mysql.
  Before this, I used glance cli to upload the image
  "glance image-create --name imgtest --disk-format qcow2 --is-public false 
--copy-from 'http://10.43.179.2:8081/files/linux/cirros-0.3.0-x86_64-disk.img'"

  But use dashboard to upload an image, the value of container_format is
  default to BARE.

  When we create a volume with an image, in glanceclient it checked the
  Attribute container_format. But in glance, when we use cli to upload
  an image, it did not check the attribute of container_format or used
  default value as it did in dashboard.

  In order to maintain consistent, i think in glance cli, the default
  value of container_format should also be provided.

To manage notifications about this bug go to:
https://bugs.launchpad.net/glance/+bug/1347376/+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

Reply via email to