The attempt to merge lp:~johannes.erdfelt/glance/image-undelete into lp:glance failed. Below is the output from the failed tests. running test running egg_info creating glance.egg-info writing glance.egg-info/PKG-INFO writing top-level names to glance.egg-info/top_level.txt writing dependency_links to glance.egg-info/dependency_links.txt writing manifest file 'glance.egg-info/SOURCES.txt' reading manifest file 'glance.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'ChangeLog' writing manifest file 'glance.egg-info/SOURCES.txt' running build_ext We test the following: ... ok We test the following: ... ok Test for LP Bugs #736295, #767203 ... ok We test the following: ... ok We test conditions that produced LP Bug #768969, where an image ... ok Set up three test images and ensure each query param filter works ... ok We test the following sequential series of actions: ... ok Ensure marker and limit query params work ... ok Set up three test images and ensure each query param filter works ... ok We test the process flow where a user registers an image ... ok A test against the actual datastore backend for the registry ... ok A test that errors coming from the POST API do not ... ok We test that various calls to the images and root endpoints are ... ok Upload image, delete it, then restore it ... ok Upload initial image, then attempt to upload duplicate image ... ok Set up four test images and ensure each query param filter works ... ok We test the following sequential series of actions: ... ok Ensure marker and limit query params work ... ok Set up three test images and ensure each query param filter works ... ok We test the process flow where a user registers an image ... ok A test against the actual datastore backend for the registry ... ok A test that errors coming from the POST API do not ... ok We test that various calls to the images and root endpoints are ... ok Test logging output proper when verbose and debug ... ok Test logging output proper when verbose and debug ... ok A test for LP bug #704854 -- Exception thrown by registry ... ok We test the following: ... ok We test the following: ... ok test that images don't get deleted immediatly and that the scrubber ... ok test that images get deleted immediately by default ... ok test that images can be restored after delayed delete ... ok Tests raises BadRequest for invalid store header ... ok Tests to add a basic image in the file store ... ok Tests creates a queued image for no body and no loc header ... ok Tests creates a queued image for no body and no loc header ... ok Test that the image contents are checksummed properly ... ok test_bad_container_format (tests.unit.test_api.TestGlanceAPI) ... ok test_bad_disk_format (tests.unit.test_api.TestGlanceAPI) ... ok test_delete_image (tests.unit.test_api.TestGlanceAPI) ... ok test_delete_non_exists_image (tests.unit.test_api.TestGlanceAPI) ... ok Here, we try to delete an image that is in the queued state. ... ok Test that the ETag header matches the x-image-meta-checksum ... ok Tests that the /images/detail registry API returns a 400 ... ok Tests that the /images registry API returns list of ... ok Test that the image contents are checksummed properly ... ok Test for HEAD /images/ ... ok test_show_image_basic (tests.unit.test_api.TestGlanceAPI) ... ok test_show_non_exists_image (tests.unit.test_api.TestGlanceAPI) ... ok Tests that the /images POST registry API creates the image ... ok Tests proper exception is raised if a bad disk_format is set ... ok Tests proper exception is raised if a bad disk_format is set ... ok Tests proper exception is raised if a bad status is set ... ok Tests that exception raised for bad matching disk and ... ok Tests that the /images DELETE registry API deletes the image ... ok Tests proper exception is raised if attempt to delete ... ok Tests that the /images/detail registry API returns ... ok Tests that the /images/detail registry API returns list of ... ok Tests that the /images/detail registry API returns list of ... ok Tests that the /images/detail registry API returns list of ... ok Tests that the /images/detail registry API returns list of ... ok Tests that the /images/detail registry API returns list of ... ok Tests that the /images/detail registry API returns list of ... ok Tests that the /images/detail registry API returns list of ... ok Tests that the /images/detail registry API returns list of ... ok Tests that the /images/detail registry API returns list of ... ok Tests that the /images/detail registry API returns list of ... ok Tests that the /images/detail registry API returns list of ... ok Tests that the /images/detail registry API returns a 400 ... ok Tests that the /images/details registry API returns list of ... ok Tests that the /images/details registry API returns list of ... ok Tests that the /images registry API returns list of ... ok Ensure a 400 is returned when a bad sort_dir is provided. ... ok Ensure a 400 is returned when a bad sort_key is provided. ... ok Tests that the /images registry API returns list of ... ok Tests that the /images registry API returns a 400 ... ok Tests that the /images registry API returns list of ... ok Tests that the /images registry API returns list of ... ok Tests that the /images registry API returns list of ... ok Tests that the /images registry API returns list of ... ok Tests that the /images registry API returns list of ... ok Tests that the /images registry API returns list of ... ok Tests that the /images registry API returns list of ... ok Tests that the /images registry API returns list of ... ok Tests that the /images registry API returns list of ... ERROR Tests that the /images registry API returns list of ... ok Tests that the /images registry API returns list of ... ok Tests that the /images registry API returns list of ... ok Tests that the /images registry API returns list of ... ok Tests that the /images registry API returns list of ... ok Tests that the root registry API returns "index", ... ok Tests that the /images PUT registry API updates the image ... ok Tests proper exception is raised if attempt to update ... ok Tests that exception raised trying to set a bad container_format ... ok Tests that exception raised trying to set a bad disk_format ... ok Tests that exception raised trying to set a bad status ... ok Tests that exception raised for bad matching disk and ... ok Test ClientConnectionError raised ... ERROR Tests proper exception is raised if image with ID already exists ... ok Tests that we can add image metadata and returns the new id ... ok Verify that ISO with invalid container format is rejected. ... ok Tests a bad status is set to a proper one by server ... ok Tests BadRequest raised when supplying bad store name in meta ... ok Tests can add image by passing image data as file ... ERROR Tests can add image by passing image data as string ... ERROR Tests add image by passing image data as string w/ no size attr ... ERROR Tests that we can add image metadata with ISO disk format ... ok Tests that we can add image metadata with properties ... ok Tests client returns image as queued ... ok Tests that image metadata is deleted properly ... ok Tests cannot delete non-existing image ... ok Test a simple file backend retrieval works as expected ... ok Tests that a detailed call can be filtered by a property ... ok Tests that the detailed info about public images returned ... ok Tests that a detailed call can be filtered by a base attribute ... ok Tests that a detailed call can be filtered by a property ... ok Test exception is raised when marker is invalid ... ok Test detailed calls are filtered by marker/limit params. ... ok Test correct set of public image returned ... ok Tests that an index call can be filtered by a base attribute ... ok Tests that an index call can be filtered by a property ... ok Test exception is raised when marker is invalid ... ok Test correct number of public images returned with limit param. ... ok Test correct set of public images returned with marker param. ... ok Test correct set of images returned with marker/limit params. ... ok Tests that the client returns list of public images ... ok Tests that the detailed info about an ISO image is returned ... ok Tests that the detailed info about an image returned ... ok Tests that NotFound is raised when getting a non-existing image ... ok Test retrieval of a non-existing image returns a 404 ... ok Tests that the /images PUT registry API updates the image ... ok Tests non existing image update doesn't work ... ok Tests proper exception is raised if image with ID already exists ... ok Tests that we can add image metadata and returns the new id ... ok Tests proper exception is raised if a bad status is set ... ok Tests that we can add image metadata with properties ... ok Tests that image metadata is deleted properly ... ok Tests cannot delete non-existing image ... ok Tests that the detailed info about an image returned ... ok Tests that the detailed info about public images returned ... ok Tests that a detailed call can be filtered by container_format ... ok Tests that a detailed call can be filtered by disk_format ... ok Tests that a detailed call can be filtered by name ... ok Tests that a detailed call can be filtered by a property ... ok Tests that a detailed call can be filtered by status ... ok Test exception is raised when marker is invalid ... ok Test correct set of images returned with marker/limit params. ... ok Tests that a detailed call returns list of ... ok Tests that a detailed call can be filtered by size_max ... ok Tests that a detailed call can be filtered by size_min ... ok Test correct set of public image returned ... ok Test correct set of public, name-filtered image returned. This ... ok Test exception is raised when marker is invalid ... ok Test correct number of images returned with limit param. ... ok Test correct set of images returned with limit param == None. ... ok Test correct set of images returned with marker param. ... ok Test correct set of images returned with marker/limit params. ... ok Tests that NotFound is raised when getting a non-existing image ... ok Tests that the /images registry API returns list of ... ok Tests that the /images registry API returns list of ... ok Tests that the /images registry API returns list of ... ok Tests that the /images registry API returns list of ... ok Tests that the /images registry API returns list of ... ok Tests that the /images registry API returns list of ... ok Tests that the /images registry API returns list of ... ok Tests that the /images registry API returns list of ... ok Tests restoring deleted image ... ok Tests that the /images PUT registry API updates the image ... ok Tests non existing image update doesn't work ... ok test_common_options (tests.unit.test_config.TestConfig) ... ok test_parse_options (tests.unit.test_config.TestConfig) ... Usage: setup.py [options] setup.py: error: no such option: --unknown ok Tests that an anonymous context (with is_admin set to False) ... ok Tests that an anonymous context (with is_admin set to False) ... ok Tests that an anonymous context (with is_admin set to False) ... ok Tests that an anonymous context (with is_admin set to False) ... ok Tests that an authenticated context (with is_admin set to ... ok Tests that an authenticated context (with is_admin set to ... ok Tests that an authenticated context (with is_admin set to ... ok Tests that an authenticated context (with is_admin set to ... ok Tests that an authenticated context (with is_admin set to ... ok Tests that an authenticated context (with is_admin set to ... ok Tests that an empty context (with is_admin set to True) can ... ok Tests that an empty context (with is_admin set to True) can ... ok Tests that an empty context (with is_admin set to True) can ... ok Tests that an empty context (with is_admin set to True) can ... ok Test that we can add an image via the filesystem backend ... ok Tests that adding an image with an existing identifier ... ok Test we can delete an existing image in the filesystem store ... ok Test that trying to delete a file that doesn't exist ... ok Test a "normal" retrieval of an image in chunks ... ok Test that trying to retrieve a file that doesn't exist ... ok Here, we test that in the case when we moved a column "type" from the ... ok Walks all version scripts for each tested database, ensuring ... ok test_authors_up_to_date (tests.unit.test_misc.AuthorsTestCase) ... ok Test that we can add an image via the s3 backend ... ok Tests that adding an image with an existing identifier ... ok Test that having http(s):// in the s3serviceurl in config ... ok Tests that adding options without host raises ... ok Tests that adding options without user raises ... ok Test we can delete an existing image in the s3 store ... ok Test that trying to delete a s3 that doesn't exist ... ok Test a "normal" retrieval of an image in chunks ... ok Test retrieval of an image with wrong expected_size param ... ok Test that trying to retrieve a s3 that doesn't exist ... ok Tests that adding options without key raises ... ok Test that a URI with a non-existing scheme triggers exception ... ok Test the specific StoreLocation for the Filesystem store ... ok Test that the backend returned by glance.store.get_backend_class ... ok Test that for various URIs, the correct Location ... ok Test the specific StoreLocation for the HTTP store ... ok Test the specific StoreLocation for the S3 store ... ok Test the specific StoreLocation for the Swift store ... ok test_http_get (tests.unit.test_stores.TestHTTPBackend) ... ok test_https_get (tests.unit.test_stores.TestHTTPBackend) ... ok Test that we can add an image via the swift backend ... ok Tests that adding an image with an existing identifier ... ok Test that we can add an image via the swift backend with ... ok Tests that adding options without auth address raises ... ok Tests that adding an image with a non-existing container ... ok Tests that adding an image with a non-existing container ... ok Tests that adding options without user raises ... ok Test we can delete an existing image in the swift store ... ok Test that trying to delete a swift that doesn't exist ... ok Test a "normal" retrieval of an image in chunks ... ok Test retrieval of an image with wrong expected_size param ... ok Test that trying to retrieve a swift that doesn't exist ... ok Test a retrieval from Swift with an HTTP authurl. This is ... ok Tests that adding options without key raises ... ok Tests that boolean headers like is_public can be set ... ok Verifies that data is the same after being passed through headers ... ok Verifies that the headers returned by conversion code are unicode. ... ok test_get_version_list (tests.unit.test_versions.VersionsTest) ... ok test_default_no_body (tests.unit.test_wsgi.JSONRequestDeserializerTest) ... ok test_default_with_body (tests.unit.test_wsgi.JSONRequestDeserializerTest) ... ok test_from_json (tests.unit.test_wsgi.JSONRequestDeserializerTest) ... ok test_has_body_has_content_length (tests.unit.test_wsgi.JSONRequestDeserializerTest) ... ok test_has_body_no_content_length (tests.unit.test_wsgi.JSONRequestDeserializerTest) ... ok test_has_body_zero_content_length (tests.unit.test_wsgi.JSONRequestDeserializerTest) ... ok test_no_body_no_content_length (tests.unit.test_wsgi.JSONRequestDeserializerTest) ... ok test_default (tests.unit.test_wsgi.JSONResponseSerializerTest) ... ok test_to_json (tests.unit.test_wsgi.JSONResponseSerializerTest) ... ok test_content_type_accept_default (tests.unit.test_wsgi.RequestTest) ... ok test_content_type_from_accept_json (tests.unit.test_wsgi.RequestTest) ... ok test_content_type_from_accept_json_xml_quality (tests.unit.test_wsgi.RequestTest) ... ok test_content_type_from_accept_xml (tests.unit.test_wsgi.RequestTest) ... ok test_content_type_from_accept_xml_json (tests.unit.test_wsgi.RequestTest) ... ok test_content_type_missing (tests.unit.test_wsgi.RequestTest) ... ok test_content_type_unsupported (tests.unit.test_wsgi.RequestTest) ... ok test_content_type_with_charset (tests.unit.test_wsgi.RequestTest) ... ok test_dispatch (tests.unit.test_wsgi.ResourceTest) ... ok test_dispatch_default (tests.unit.test_wsgi.ResourceTest) ... ok test_dispatch_no_default (tests.unit.test_wsgi.ResourceTest) ... ok test_get_action_args (tests.unit.test_wsgi.ResourceTest) ... ok ====================================================================== ERROR: Tests that the /images registry API returns list of ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/tmp_UzfUz/tests/unit/test_api.py", line 44, in setUp stubs.stub_out_filesystem_backend() File "/tmp/tmp_UzfUz/tests/stubs.py", line 104, in stub_out_filesystem_backend os.mkdir(FAKE_FILESYSTEM_ROOTDIR) OSError: [Errno 17] File exists: '/tmp/glance-tests' ====================================================================== ERROR: Test ClientConnectionError raised ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/tmp_UzfUz/tests/unit/test_clients.py", line 43, in test_bad_address 1) File "/usr/lib/python2.6/unittest.py", line 336, in failUnlessRaises callableObj(*args, **kwargs) File "/tmp/tmp_UzfUz/glance/client.py", line 100, in get_image res = self.do_request("GET", "/images/%s" % image_id) File "/tmp/tmp_UzfUz/glance/client.py", line 56, in do_request headers, params) File "/tmp/tmp_UzfUz/glance/common/client.py", line 112, in do_request c = connection_type(self.host, self.port) TypeError: 'NoneType' object is not callable ====================================================================== ERROR: Tests can add image by passing image data as file ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/tmp_UzfUz/tests/unit/test_clients.py", line 1491, in test_add_image_with_image_data_as_file new_meta, new_image_chunks = self.client.get_image(3) File "/tmp/tmp_UzfUz/glance/client.py", line 100, in get_image res = self.do_request("GET", "/images/%s" % image_id) File "/tmp/tmp_UzfUz/glance/client.py", line 56, in do_request headers, params) File "/tmp/tmp_UzfUz/glance/common/client.py", line 134, in do_request res = c.getresponse() File "/tmp/tmp_UzfUz/tests/stubs.py", line 229, in getresponse res = self.req.get_response(api) File "/usr/lib/pymodules/python2.6/webob/request.py", line 1053, in get_response application, catch_exc_info=False) File "/usr/lib/pymodules/python2.6/webob/request.py", line 1022, in call_application app_iter = application(self.environ, start_response) File "/usr/lib/pymodules/python2.6/webob/dec.py", line 147, in __call__ resp = self.call_func(req, *args, **self.kwargs) File "/usr/lib/pymodules/python2.6/webob/dec.py", line 208, in call_func return self.func(req, *args, **kwargs) File "/tmp/tmp_UzfUz/glance/common/wsgi.py", line 113, in __call__ response = req.get_response(self.application) File "/usr/lib/pymodules/python2.6/webob/request.py", line 1053, in get_response application, catch_exc_info=False) File "/usr/lib/pymodules/python2.6/webob/request.py", line 1022, in call_application app_iter = application(self.environ, start_response) File "/usr/lib/pymodules/python2.6/webob/dec.py", line 159, in __call__ return resp(environ, start_response) File "/usr/local/lib/python2.6/dist-packages/Routes-1.12.3-py2.6.egg/routes/middleware.py", line 131, in __call__ response = self.app(environ, start_response) File "/usr/lib/pymodules/python2.6/webob/dec.py", line 159, in __call__ return resp(environ, start_response) File "/usr/lib/pymodules/python2.6/webob/dec.py", line 147, in __call__ resp = self.call_func(req, *args, **self.kwargs) File "/usr/lib/pymodules/python2.6/webob/dec.py", line 208, in call_func return self.func(req, *args, **kwargs) File "/tmp/tmp_UzfUz/glance/common/wsgi.py", line 311, in __call__ request, **action_args) File "/tmp/tmp_UzfUz/glance/common/wsgi.py", line 328, in dispatch return method(*args, **kwargs) File "/tmp/tmp_UzfUz/glance/api/v1/images.py", line 249, in show image_iterator = get_from_store(image) File "/tmp/tmp_UzfUz/glance/api/v1/images.py", line 198, in get_from_store options=self.options) File "/tmp/tmp_UzfUz/glance/store/__init__.py", line 89, in get_from_backend return backend_class.get(loc, **kwargs) File "/tmp/tmp_UzfUz/glance/store/filesystem.py", line 112, in get raise exception.NotFound("Image file %s not found" % filepath) NotFound: Image file /tmp/glance-tests/3 not found -------------------- >> begin captured logging << -------------------- routes.middleware: DEBUG: Initialized with method overriding = True, and path info altering = True routes.middleware: DEBUG: Matched POST /images routes.middleware: DEBUG: Route path: '/images', defaults: {'action': u'create', 'controller': } routes.middleware: DEBUG: Match dict: {'action': u'create', 'controller': } routes.middleware: DEBUG: Initialized with method overriding = True, and path info altering = True routes.middleware: DEBUG: Matched POST /images routes.middleware: DEBUG: Route path: '/images', defaults: {'action': u'create', 'controller': } routes.middleware: DEBUG: Match dict: {'action': u'create', 'controller': } glance.api.v1.images: DEBUG: Setting image 3 to status 'saving' routes.middleware: DEBUG: Initialized with method overriding = True, and path info altering = True routes.middleware: DEBUG: Matched PUT /images/3 routes.middleware: DEBUG: Route path: '/images/:(id)', defaults: {'action': u'update', 'controller': } routes.middleware: DEBUG: Match dict: {'action': u'update', 'controller': , 'id': u'3'} glance.registry.server: DEBUG: Updating image 3 with metadata: {u'status': u'saving'} glance.api.v1.images: DEBUG: Uploading image data for image 3 to file store glance.store.filesystem: DEBUG: Wrote 19 bytes to /tmp/glance-tests/3 with checksum d990432ef91afef3ad9dbf4a975d3365 glance.api.v1.images: DEBUG: Updating image 3 data. Checksum set to d990432ef91afef3ad9dbf4a975d3365, size set to 19 routes.middleware: DEBUG: Initialized with method overriding = True, and path info altering = True routes.middleware: DEBUG: Matched PUT /images/3 routes.middleware: DEBUG: Route path: '/images/:(id)', defaults: {'action': u'update', 'controller': } routes.middleware: DEBUG: Match dict: {'action': u'update', 'controller': , 'id': u'3'} glance.registry.server: DEBUG: Updating image 3 with metadata: {u'checksum': u'd990432ef91afef3ad9dbf4a975d3365', u'size': 19} routes.middleware: DEBUG: Initialized with method overriding = True, and path info altering = True routes.middleware: DEBUG: Matched PUT /images/3 routes.middleware: DEBUG: Route path: '/images/:(id)', defaults: {'action': u'update', 'controller': } routes.middleware: DEBUG: Match dict: {'action': u'update', 'controller': , 'id': u'3'} glance.registry.server: DEBUG: Updating image 3 with metadata: {u'status': u'active', u'location': u'file:///tmp/glance-tests/3'} routes.middleware: DEBUG: Initialized with method overriding = True, and path info altering = True routes.middleware: DEBUG: Matched GET /images/3 routes.middleware: DEBUG: Route path: '/images/:(id)', defaults: {'action': u'show', 'controller': } routes.middleware: DEBUG: Match dict: {'action': u'show', 'controller': , 'id': u'3'} routes.middleware: DEBUG: Initialized with method overriding = True, and path info altering = True routes.middleware: DEBUG: Matched GET /images/3 routes.middleware: DEBUG: Route path: '/images/:(id)', defaults: {'action': u'show', 'controller': } routes.middleware: DEBUG: Match dict: {'action': u'show', 'controller': , 'id': u'3'} glance.api.v1.images: DEBUG: image cache DISABLED, retrieving image '3' from store --------------------- >> end captured logging << --------------------- ====================================================================== ERROR: Tests can add image by passing image data as string ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/tmp_UzfUz/tests/unit/test_clients.py", line 1453, in test_add_image_with_image_data_as_string new_meta, new_image_chunks = self.client.get_image(3) File "/tmp/tmp_UzfUz/glance/client.py", line 100, in get_image res = self.do_request("GET", "/images/%s" % image_id) File "/tmp/tmp_UzfUz/glance/client.py", line 56, in do_request headers, params) File "/tmp/tmp_UzfUz/glance/common/client.py", line 134, in do_request res = c.getresponse() File "/tmp/tmp_UzfUz/tests/stubs.py", line 229, in getresponse res = self.req.get_response(api) File "/usr/lib/pymodules/python2.6/webob/request.py", line 1053, in get_response application, catch_exc_info=False) File "/usr/lib/pymodules/python2.6/webob/request.py", line 1022, in call_application app_iter = application(self.environ, start_response) File "/usr/lib/pymodules/python2.6/webob/dec.py", line 147, in __call__ resp = self.call_func(req, *args, **self.kwargs) File "/usr/lib/pymodules/python2.6/webob/dec.py", line 208, in call_func return self.func(req, *args, **kwargs) File "/tmp/tmp_UzfUz/glance/common/wsgi.py", line 113, in __call__ response = req.get_response(self.application) File "/usr/lib/pymodules/python2.6/webob/request.py", line 1053, in get_response application, catch_exc_info=False) File "/usr/lib/pymodules/python2.6/webob/request.py", line 1022, in call_application app_iter = application(self.environ, start_response) File "/usr/lib/pymodules/python2.6/webob/dec.py", line 159, in __call__ return resp(environ, start_response) File "/usr/local/lib/python2.6/dist-packages/Routes-1.12.3-py2.6.egg/routes/middleware.py", line 131, in __call__ response = self.app(environ, start_response) File "/usr/lib/pymodules/python2.6/webob/dec.py", line 159, in __call__ return resp(environ, start_response) File "/usr/lib/pymodules/python2.6/webob/dec.py", line 147, in __call__ resp = self.call_func(req, *args, **self.kwargs) File "/usr/lib/pymodules/python2.6/webob/dec.py", line 208, in call_func return self.func(req, *args, **kwargs) File "/tmp/tmp_UzfUz/glance/common/wsgi.py", line 311, in __call__ request, **action_args) File "/tmp/tmp_UzfUz/glance/common/wsgi.py", line 328, in dispatch return method(*args, **kwargs) File "/tmp/tmp_UzfUz/glance/api/v1/images.py", line 249, in show image_iterator = get_from_store(image) File "/tmp/tmp_UzfUz/glance/api/v1/images.py", line 198, in get_from_store options=self.options) File "/tmp/tmp_UzfUz/glance/store/__init__.py", line 89, in get_from_backend return backend_class.get(loc, **kwargs) File "/tmp/tmp_UzfUz/glance/store/filesystem.py", line 112, in get raise exception.NotFound("Image file %s not found" % filepath) NotFound: Image file /tmp/glance-tests/3 not found -------------------- >> begin captured logging << -------------------- routes.middleware: DEBUG: Initialized with method overriding = True, and path info altering = True routes.middleware: DEBUG: Matched POST /images routes.middleware: DEBUG: Route path: '/images', defaults: {'action': u'create', 'controller': } routes.middleware: DEBUG: Match dict: {'action': u'create', 'controller': } routes.middleware: DEBUG: Initialized with method overriding = True, and path info altering = True routes.middleware: DEBUG: Matched POST /images routes.middleware: DEBUG: Route path: '/images', defaults: {'action': u'create', 'controller': } routes.middleware: DEBUG: Match dict: {'action': u'create', 'controller': } glance.api.v1.images: DEBUG: Setting image 3 to status 'saving' routes.middleware: DEBUG: Initialized with method overriding = True, and path info altering = True routes.middleware: DEBUG: Matched PUT /images/3 routes.middleware: DEBUG: Route path: '/images/:(id)', defaults: {'action': u'update', 'controller': } routes.middleware: DEBUG: Match dict: {'action': u'update', 'controller': , 'id': u'3'} glance.registry.server: DEBUG: Updating image 3 with metadata: {u'status': u'saving'} glance.api.v1.images: DEBUG: Uploading image data for image 3 to file store glance.store.filesystem: INFO: Directory to write image files does not exist (/tmp/glance-tests). Creating. glance.store.filesystem: DEBUG: Wrote 19 bytes to /tmp/glance-tests/3 with checksum d990432ef91afef3ad9dbf4a975d3365 glance.api.v1.images: DEBUG: Updating image 3 data. Checksum set to d990432ef91afef3ad9dbf4a975d3365, size set to 19 routes.middleware: DEBUG: Initialized with method overriding = True, and path info altering = True routes.middleware: DEBUG: Matched PUT /images/3 routes.middleware: DEBUG: Route path: '/images/:(id)', defaults: {'action': u'update', 'controller': } routes.middleware: DEBUG: Match dict: {'action': u'update', 'controller': , 'id': u'3'} glance.registry.server: DEBUG: Updating image 3 with metadata: {u'checksum': u'd990432ef91afef3ad9dbf4a975d3365', u'size': 19} routes.middleware: DEBUG: Initialized with method overriding = True, and path info altering = True routes.middleware: DEBUG: Matched PUT /images/3 routes.middleware: DEBUG: Route path: '/images/:(id)', defaults: {'action': u'update', 'controller': } routes.middleware: DEBUG: Match dict: {'action': u'update', 'controller': , 'id': u'3'} glance.registry.server: DEBUG: Updating image 3 with metadata: {u'status': u'active', u'location': u'file:///tmp/glance-tests/3'} routes.middleware: DEBUG: Initialized with method overriding = True, and path info altering = True routes.middleware: DEBUG: Matched GET /images/3 routes.middleware: DEBUG: Route path: '/images/:(id)', defaults: {'action': u'show', 'controller': } routes.middleware: DEBUG: Match dict: {'action': u'show', 'controller': , 'id': u'3'} routes.middleware: DEBUG: Initialized with method overriding = True, and path info altering = True routes.middleware: DEBUG: Matched GET /images/3 routes.middleware: DEBUG: Route path: '/images/:(id)', defaults: {'action': u'show', 'controller': } routes.middleware: DEBUG: Match dict: {'action': u'show', 'controller': , 'id': u'3'} glance.api.v1.images: DEBUG: image cache DISABLED, retrieving image '3' from store --------------------- >> end captured logging << --------------------- ====================================================================== ERROR: Tests add image by passing image data as string w/ no size attr ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/tmp_UzfUz/tests/unit/test_clients.py", line 1516, in test_add_image_with_image_data_as_string_and_no_size new_meta, new_image_chunks = self.client.get_image(3) File "/tmp/tmp_UzfUz/glance/client.py", line 100, in get_image res = self.do_request("GET", "/images/%s" % image_id) File "/tmp/tmp_UzfUz/glance/client.py", line 56, in do_request headers, params) File "/tmp/tmp_UzfUz/glance/common/client.py", line 134, in do_request res = c.getresponse() File "/tmp/tmp_UzfUz/tests/stubs.py", line 229, in getresponse res = self.req.get_response(api) File "/usr/lib/pymodules/python2.6/webob/request.py", line 1053, in get_response application, catch_exc_info=False) File "/usr/lib/pymodules/python2.6/webob/request.py", line 1022, in call_application app_iter = application(self.environ, start_response) File "/usr/lib/pymodules/python2.6/webob/dec.py", line 147, in __call__ resp = self.call_func(req, *args, **self.kwargs) File "/usr/lib/pymodules/python2.6/webob/dec.py", line 208, in call_func return self.func(req, *args, **kwargs) File "/tmp/tmp_UzfUz/glance/common/wsgi.py", line 113, in __call__ response = req.get_response(self.application) File "/usr/lib/pymodules/python2.6/webob/request.py", line 1053, in get_response application, catch_exc_info=False) File "/usr/lib/pymodules/python2.6/webob/request.py", line 1022, in call_application app_iter = application(self.environ, start_response) File "/usr/lib/pymodules/python2.6/webob/dec.py", line 159, in __call__ return resp(environ, start_response) File "/usr/local/lib/python2.6/dist-packages/Routes-1.12.3-py2.6.egg/routes/middleware.py", line 131, in __call__ response = self.app(environ, start_response) File "/usr/lib/pymodules/python2.6/webob/dec.py", line 159, in __call__ return resp(environ, start_response) File "/usr/lib/pymodules/python2.6/webob/dec.py", line 147, in __call__ resp = self.call_func(req, *args, **self.kwargs) File "/usr/lib/pymodules/python2.6/webob/dec.py", line 208, in call_func return self.func(req, *args, **kwargs) File "/tmp/tmp_UzfUz/glance/common/wsgi.py", line 311, in __call__ request, **action_args) File "/tmp/tmp_UzfUz/glance/common/wsgi.py", line 328, in dispatch return method(*args, **kwargs) File "/tmp/tmp_UzfUz/glance/api/v1/images.py", line 249, in show image_iterator = get_from_store(image) File "/tmp/tmp_UzfUz/glance/api/v1/images.py", line 198, in get_from_store options=self.options) File "/tmp/tmp_UzfUz/glance/store/__init__.py", line 89, in get_from_backend return backend_class.get(loc, **kwargs) File "/tmp/tmp_UzfUz/glance/store/filesystem.py", line 112, in get raise exception.NotFound("Image file %s not found" % filepath) NotFound: Image file /tmp/glance-tests/3 not found -------------------- >> begin captured logging << -------------------- routes.middleware: DEBUG: Initialized with method overriding = True, and path info altering = True routes.middleware: DEBUG: Matched POST /images routes.middleware: DEBUG: Route path: '/images', defaults: {'action': u'create', 'controller': } routes.middleware: DEBUG: Match dict: {'action': u'create', 'controller': } routes.middleware: DEBUG: Initialized with method overriding = True, and path info altering = True routes.middleware: DEBUG: Matched POST /images routes.middleware: DEBUG: Route path: '/images', defaults: {'action': u'create', 'controller': } routes.middleware: DEBUG: Match dict: {'action': u'create', 'controller': } glance.api.v1.images: DEBUG: Setting image 3 to status 'saving' routes.middleware: DEBUG: Initialized with method overriding = True, and path info altering = True routes.middleware: DEBUG: Matched PUT /images/3 routes.middleware: DEBUG: Route path: '/images/:(id)', defaults: {'action': u'update', 'controller': } routes.middleware: DEBUG: Match dict: {'action': u'update', 'controller': , 'id': u'3'} glance.registry.server: DEBUG: Updating image 3 with metadata: {u'status': u'saving'} glance.api.v1.images: DEBUG: Uploading image data for image 3 to file store glance.store.filesystem: DEBUG: Wrote 19 bytes to /tmp/glance-tests/3 with checksum d990432ef91afef3ad9dbf4a975d3365 glance.api.v1.images: DEBUG: Updating image 3 data. Checksum set to d990432ef91afef3ad9dbf4a975d3365, size set to 19 routes.middleware: DEBUG: Initialized with method overriding = True, and path info altering = True routes.middleware: DEBUG: Matched PUT /images/3 routes.middleware: DEBUG: Route path: '/images/:(id)', defaults: {'action': u'update', 'controller': } routes.middleware: DEBUG: Match dict: {'action': u'update', 'controller': , 'id': u'3'} glance.registry.server: DEBUG: Updating image 3 with metadata: {u'checksum': u'd990432ef91afef3ad9dbf4a975d3365', u'size': 19} routes.middleware: DEBUG: Initialized with method overriding = True, and path info altering = True routes.middleware: DEBUG: Matched PUT /images/3 routes.middleware: DEBUG: Route path: '/images/:(id)', defaults: {'action': u'update', 'controller': } routes.middleware: DEBUG: Match dict: {'action': u'update', 'controller': , 'id': u'3'} glance.registry.server: DEBUG: Updating image 3 with metadata: {u'status': u'active', u'location': u'file:///tmp/glance-tests/3'} routes.middleware: DEBUG: Initialized with method overriding = True, and path info altering = True routes.middleware: DEBUG: Matched GET /images/3 routes.middleware: DEBUG: Route path: '/images/:(id)', defaults: {'action': u'show', 'controller': } routes.middleware: DEBUG: Match dict: {'action': u'show', 'controller': , 'id': u'3'} routes.middleware: DEBUG: Initialized with method overriding = True, and path info altering = True routes.middleware: DEBUG: Matched GET /images/3 routes.middleware: DEBUG: Route path: '/images/:(id)', defaults: {'action': u'show', 'controller': } routes.middleware: DEBUG: Match dict: {'action': u'show', 'controller': , 'id': u'3'} glance.api.v1.images: DEBUG: image cache DISABLED, retrieving image '3' from store --------------------- >> end captured logging << --------------------- ---------------------------------------------------------------------- Ran 252 tests in 80.976s FAILED (errors=5)