← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1257496] [NEW] Glance v1: Creating image with bad scheme in location causes 500

 

Public bug reported:

When creating an image in glance v1 and specifyig the location with a
bad scheme you receive an HTTP 500. In this case 'http+swift" is a bad
scheme.

glance image-create --name bad-location --disk-format=vhd --container-
format=ovf --location="http+swift://bah"

Request returned failure status.
HTTPInternalServerError (HTTP 500)

2013-12-03 21:24:32.009 6312 INFO glance.wsgi.server [402e831a-935d-4e14-b4c8-64653c14263d 1c3848b015f94b70866e
a33fa52945f0 54bc4959075343ff80f460b77e783a49] Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/eventlet/wsgi.py", line 389, in handle_one_response
    result = self.application(self.environ, start_response)
  File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
    resp = self.call_func(req, *args, **self.kwargs)
  File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
    return self.func(req, *args, **kwargs)
  File "/opt/stack/glance/glance/common/wsgi.py", line 367, in __call__
    response = req.get_response(self.application)
  File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1296, in send
    application, catch_exc_info=False)
  File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1260, in call_application
    app_iter = application(self.environ, start_response)
  File "/opt/stack/python-keystoneclient/keystoneclient/middleware/auth_token.py", line 581, in __call__
    return self.app(env, start_response)
  File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
    resp = self.call_func(req, *args, **self.kwargs)
  File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
    return self.func(req, *args, **kwargs)
  File "/opt/stack/glance/glance/common/wsgi.py", line 367, in __call__
    response = req.get_response(self.application)
  File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1296, in send
    application, catch_exc_info=False)
  File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1260, in call_application
    app_iter = application(self.environ, start_response)
  File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
    resp = self.call_func(req, *args, **self.kwargs)
  File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
    return self.func(req, *args, **kwargs)
  File "/opt/stack/glance/glance/common/wsgi.py", line 367, in __call__
    response = req.get_response(self.application)
  File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1296, in send
    application, catch_exc_info=False)
  File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1260, in call_application
    app_iter = application(self.environ, start_response)
  File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
    resp = self.call_func(req, *args, **self.kwargs)
  File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
    return self.func(req, *args, **kwargs)
  File "/opt/stack/glance/glance/common/wsgi.py", line 367, in __call__
    response = req.get_response(self.application)
  File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1296, in send
    application, catch_exc_info=False)
  File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1260, in call_application
    app_iter = application(self.environ, start_response)
  File "/usr/lib/python2.7/dist-packages/paste/urlmap.py", line 203, in __call__
    return app(environ, start_response)
  File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
    return resp(environ, start_response)
  File "/usr/lib/python2.7/dist-packages/routes/middleware.py", line 131, in __call__
    response = self.app(environ, start_response)
  File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
    return resp(environ, start_response)
  File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
    resp = self.call_func(req, *args, **self.kwargs)
  File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
    return self.func(req, *args, **kwargs)
  File "/opt/stack/glance/glance/common/wsgi.py", line 599, in __call__
    request, **action_args)
  File "/opt/stack/glance/glance/common/wsgi.py", line 618, in dispatch
    return method(*args, **kwargs)
  File "/opt/stack/glance/glance/common/utils.py", line 422, in wrapped
    return func(self, req, *args, **kwargs)
  File "/opt/stack/glance/glance/api/v1/images.py", line 754, in create
    image_meta = self._reserve(req, image_meta)
  File "/opt/stack/glance/glance/api/v1/images.py", line 488, in _reserve
    store = get_store_from_location(location)
  File "/opt/stack/glance/glance/store/__init__.py", line 263, in get_store_from_location
    loc = location.get_location_from_uri(uri)
  File "/opt/stack/glance/glance/store/location.py", line 73, in get_location_from_uri
    raise exception.UnknownScheme(scheme=pieces.scheme)
UnknownScheme: Unknown scheme 'http+swift' found in URI

2013-12-03 21:24:32.011 6312 INFO glance.wsgi.server [402e831a-935d-
4e14-b4c8-64653c14263d 1c3848b015f94b70866ea33fa52945f0
54bc4959075343ff80f460b77e783a49] localhost - - [03/Dec/2013 21:24:32]
"POST /v1/images HTTP/1.1" 500 139 0.216952

** Affects: glance
     Importance: Low
         Status: New

** Description changed:

  When creating an image in glance v1 and specifyig the location with a
  bad scheme you receive an HTTP 500. In this case 'http+swift" is a bad
  scheme.
  
  glance image-create --name bad-location --disk-format=vhd --container-
  format=ovf --location="http+swift://bah"
  
  Request returned failure status.
  HTTPInternalServerError (HTTP 500)
  
- 
- 
- 
  2013-12-03 21:24:32.009 6312 INFO glance.wsgi.server [402e831a-935d-4e14-b4c8-64653c14263d 1c3848b015f94b70866e
  a33fa52945f0 54bc4959075343ff80f460b77e783a49] Traceback (most recent call last):
-   File "/usr/local/lib/python2.7/dist-packages/eventlet/wsgi.py", line 389, in handle_one_response
-     result = self.application(self.environ, start_response)
-   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
-     resp = self.call_func(req, *args, **self.kwargs)
-   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
-     return self.func(req, *args, **kwargs)
-   File "/opt/stack/glance/glance/common/wsgi.py", line 367, in __call__
-     response = req.get_response(self.application)
-   File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1296, in send
-     application, catch_exc_info=False)
-   File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1260, in call_application
-     app_iter = application(self.environ, start_response)
-   File "/opt/stack/python-keystoneclient/keystoneclient/middleware/auth_token.py", line 581, in __call__
-     return self.app(env, start_response)
-   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
-     resp = self.call_func(req, *args, **self.kwargs)
-   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
-     return self.func(req, *args, **kwargs)
-   File "/opt/stack/glance/glance/common/wsgi.py", line 367, in __call__
-     response = req.get_response(self.application)
-   File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1296, in send
-     application, catch_exc_info=False)
-   File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1260, in call_application
-     app_iter = application(self.environ, start_response)
-   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
-     resp = self.call_func(req, *args, **self.kwargs)
-   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
-     return self.func(req, *args, **kwargs)
-   File "/opt/stack/glance/glance/common/wsgi.py", line 367, in __call__
-     response = req.get_response(self.application)
-   File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1296, in send
-     application, catch_exc_info=False)
-   File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1260, in call_application
-     app_iter = application(self.environ, start_response)
-   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
-     resp = self.call_func(req, *args, **self.kwargs)
-   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
-     return self.func(req, *args, **kwargs)
-   File "/opt/stack/glance/glance/common/wsgi.py", line 367, in __call__
-     response = req.get_response(self.application)
-   File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1296, in send
-     application, catch_exc_info=False)
-   File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1260, in call_application
-     app_iter = application(self.environ, start_response)
-   File "/usr/lib/python2.7/dist-packages/paste/urlmap.py", line 203, in __call__
-     return app(environ, start_response)
-   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
-     return resp(environ, start_response)
-   File "/usr/lib/python2.7/dist-packages/routes/middleware.py", line 131, in __call__
-     response = self.app(environ, start_response)
-   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
-     return resp(environ, start_response)
-   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
-     resp = self.call_func(req, *args, **self.kwargs)
-   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
-     return self.func(req, *args, **kwargs)
-   File "/opt/stack/glance/glance/common/wsgi.py", line 599, in __call__
-     request, **action_args)
-   File "/opt/stack/glance/glance/common/wsgi.py", line 618, in dispatch
-     return method(*args, **kwargs)
-   File "/opt/stack/glance/glance/common/utils.py", line 422, in wrapped
-     return func(self, req, *args, **kwargs)
-   File "/opt/stack/glance/glance/api/v1/images.py", line 754, in create
-     image_meta = self._reserve(req, image_meta)
-   File "/opt/stack/glance/glance/api/v1/images.py", line 488, in _reserve
-     store = get_store_from_location(location)
-   File "/opt/stack/glance/glance/store/__init__.py", line 263, in get_store_from_location
-     loc = location.get_location_from_uri(uri)
-   File "/opt/stack/glance/glance/store/location.py", line 73, in get_location_from_uri
-     raise exception.UnknownScheme(scheme=pieces.scheme)
+   File "/usr/local/lib/python2.7/dist-packages/eventlet/wsgi.py", line 389, in handle_one_response
+     result = self.application(self.environ, start_response)
+   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
+     resp = self.call_func(req, *args, **self.kwargs)
+   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
+     return self.func(req, *args, **kwargs)
+   File "/opt/stack/glance/glance/common/wsgi.py", line 367, in __call__
+     response = req.get_response(self.application)
+   File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1296, in send
+     application, catch_exc_info=False)
+   File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1260, in call_application
+     app_iter = application(self.environ, start_response)
+   File "/opt/stack/python-keystoneclient/keystoneclient/middleware/auth_token.py", line 581, in __call__
+     return self.app(env, start_response)
+   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
+     resp = self.call_func(req, *args, **self.kwargs)
+   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
+     return self.func(req, *args, **kwargs)
+   File "/opt/stack/glance/glance/common/wsgi.py", line 367, in __call__
+     response = req.get_response(self.application)
+   File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1296, in send
+     application, catch_exc_info=False)
+   File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1260, in call_application
+     app_iter = application(self.environ, start_response)
+   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
+     resp = self.call_func(req, *args, **self.kwargs)
+   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
+     return self.func(req, *args, **kwargs)
+   File "/opt/stack/glance/glance/common/wsgi.py", line 367, in __call__
+     response = req.get_response(self.application)
+   File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1296, in send
+     application, catch_exc_info=False)
+   File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1260, in call_application
+     app_iter = application(self.environ, start_response)
+   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
+     resp = self.call_func(req, *args, **self.kwargs)
+   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
+     return self.func(req, *args, **kwargs)
+   File "/opt/stack/glance/glance/common/wsgi.py", line 367, in __call__
+     response = req.get_response(self.application)
+   File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1296, in send
+     application, catch_exc_info=False)
+   File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1260, in call_application
+     app_iter = application(self.environ, start_response)
+   File "/usr/lib/python2.7/dist-packages/paste/urlmap.py", line 203, in __call__
+     return app(environ, start_response)
+   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
+     return resp(environ, start_response)
+   File "/usr/lib/python2.7/dist-packages/routes/middleware.py", line 131, in __call__
+     response = self.app(environ, start_response)
+   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
+     return resp(environ, start_response)
+   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
+     resp = self.call_func(req, *args, **self.kwargs)
+   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
+     return self.func(req, *args, **kwargs)
+   File "/opt/stack/glance/glance/common/wsgi.py", line 599, in __call__
+     request, **action_args)
+   File "/opt/stack/glance/glance/common/wsgi.py", line 618, in dispatch
+     return method(*args, **kwargs)
+   File "/opt/stack/glance/glance/common/utils.py", line 422, in wrapped
+     return func(self, req, *args, **kwargs)
+   File "/opt/stack/glance/glance/api/v1/images.py", line 754, in create
+     image_meta = self._reserve(req, image_meta)
+   File "/opt/stack/glance/glance/api/v1/images.py", line 488, in _reserve
+     store = get_store_from_location(location)
+   File "/opt/stack/glance/glance/store/__init__.py", line 263, in get_store_from_location
+     loc = location.get_location_from_uri(uri)
+   File "/opt/stack/glance/glance/store/location.py", line 73, in get_location_from_uri
+     raise exception.UnknownScheme(scheme=pieces.scheme)
  UnknownScheme: Unknown scheme 'http+swift' found in URI
  
- 
- 2013-12-03 21:24:32.011 6312 INFO glance.wsgi.server [402e831a-935d-4e14-b4c8-64653c14263d 1c3848b015f94b70866ea33fa52945f0 54bc4959075343ff80f460b77e783a49] 162.209.79.194 - - [03/Dec/2013 21:24:32] "POST /v1/images HTTP/1.1" 500 139 0.216952
+ 2013-12-03 21:24:32.011 6312 INFO glance.wsgi.server [402e831a-935d-
+ 4e14-b4c8-64653c14263d 1c3848b015f94b70866ea33fa52945f0
+ 54bc4959075343ff80f460b77e783a49] localhost - - [03/Dec/2013 21:24:32]
+ "POST /v1/images HTTP/1.1" 500 139 0.216952

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

Title:
  Glance v1: Creating image with bad scheme in location causes 500

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

Bug description:
  When creating an image in glance v1 and specifyig the location with a
  bad scheme you receive an HTTP 500. In this case 'http+swift" is a bad
  scheme.

  glance image-create --name bad-location --disk-format=vhd --container-
  format=ovf --location="http+swift://bah"

  Request returned failure status.
  HTTPInternalServerError (HTTP 500)

  2013-12-03 21:24:32.009 6312 INFO glance.wsgi.server [402e831a-935d-4e14-b4c8-64653c14263d 1c3848b015f94b70866e
  a33fa52945f0 54bc4959075343ff80f460b77e783a49] Traceback (most recent call last):
    File "/usr/local/lib/python2.7/dist-packages/eventlet/wsgi.py", line 389, in handle_one_response
      result = self.application(self.environ, start_response)
    File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
      resp = self.call_func(req, *args, **self.kwargs)
    File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
      return self.func(req, *args, **kwargs)
    File "/opt/stack/glance/glance/common/wsgi.py", line 367, in __call__
      response = req.get_response(self.application)
    File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1296, in send
      application, catch_exc_info=False)
    File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1260, in call_application
      app_iter = application(self.environ, start_response)
    File "/opt/stack/python-keystoneclient/keystoneclient/middleware/auth_token.py", line 581, in __call__
      return self.app(env, start_response)
    File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
      resp = self.call_func(req, *args, **self.kwargs)
    File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
      return self.func(req, *args, **kwargs)
    File "/opt/stack/glance/glance/common/wsgi.py", line 367, in __call__
      response = req.get_response(self.application)
    File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1296, in send
      application, catch_exc_info=False)
    File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1260, in call_application
      app_iter = application(self.environ, start_response)
    File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
      resp = self.call_func(req, *args, **self.kwargs)
    File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
      return self.func(req, *args, **kwargs)
    File "/opt/stack/glance/glance/common/wsgi.py", line 367, in __call__
      response = req.get_response(self.application)
    File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1296, in send
      application, catch_exc_info=False)
    File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1260, in call_application
      app_iter = application(self.environ, start_response)
    File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
      resp = self.call_func(req, *args, **self.kwargs)
    File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
      return self.func(req, *args, **kwargs)
    File "/opt/stack/glance/glance/common/wsgi.py", line 367, in __call__
      response = req.get_response(self.application)
    File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1296, in send
      application, catch_exc_info=False)
    File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1260, in call_application
      app_iter = application(self.environ, start_response)
    File "/usr/lib/python2.7/dist-packages/paste/urlmap.py", line 203, in __call__
      return app(environ, start_response)
    File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
      return resp(environ, start_response)
    File "/usr/lib/python2.7/dist-packages/routes/middleware.py", line 131, in __call__
      response = self.app(environ, start_response)
    File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
      return resp(environ, start_response)
    File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
      resp = self.call_func(req, *args, **self.kwargs)
    File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
      return self.func(req, *args, **kwargs)
    File "/opt/stack/glance/glance/common/wsgi.py", line 599, in __call__
      request, **action_args)
    File "/opt/stack/glance/glance/common/wsgi.py", line 618, in dispatch
      return method(*args, **kwargs)
    File "/opt/stack/glance/glance/common/utils.py", line 422, in wrapped
      return func(self, req, *args, **kwargs)
    File "/opt/stack/glance/glance/api/v1/images.py", line 754, in create
      image_meta = self._reserve(req, image_meta)
    File "/opt/stack/glance/glance/api/v1/images.py", line 488, in _reserve
      store = get_store_from_location(location)
    File "/opt/stack/glance/glance/store/__init__.py", line 263, in get_store_from_location
      loc = location.get_location_from_uri(uri)
    File "/opt/stack/glance/glance/store/location.py", line 73, in get_location_from_uri
      raise exception.UnknownScheme(scheme=pieces.scheme)
  UnknownScheme: Unknown scheme 'http+swift' found in URI

  2013-12-03 21:24:32.011 6312 INFO glance.wsgi.server [402e831a-935d-
  4e14-b4c8-64653c14263d 1c3848b015f94b70866ea33fa52945f0
  54bc4959075343ff80f460b77e783a49] localhost - - [03/Dec/2013 21:24:32]
  "POST /v1/images HTTP/1.1" 500 139 0.216952

To manage notifications about this bug go to:
https://bugs.launchpad.net/glance/+bug/1257496/+subscriptions


Follow ups

References