)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"0931ccf9cf5f3c0278d25b54316820c52221a44b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fixes image filtering using extra properties"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Fixes 1259227"},{"line_number":10,"context_line":"This fixes a bug in simple DB that causes filtering of images based on"},{"line_number":11,"context_line":"extra-properties to fail. The current code works only when an image has no"},{"line_number":12,"context_line":"extra-properties or exactly one. The current test suite doesn\u0027t include a test"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F9mqI%3D","line":9,"updated":"2013-12-09 19:09:58.000000000","message":"you need the word \"bug\" after fixes for jenkins to auto detect. Also, please put it after description.","commit_id":"3b599e744928763c912a39b0c40a4c328a291e65"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"e2802609d3ebc2da306f811b143fe724a96c4193","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fixes image filtering using extra properties"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Fixes 1259227"},{"line_number":10,"context_line":"This fixes a bug in simple DB that causes filtering of images based on"},{"line_number":11,"context_line":"extra-properties to fail. The current code works only when an image has no"},{"line_number":12,"context_line":"extra-properties or exactly one. The current test suite doesn\u0027t include a test"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F9meM%3D","line":9,"in_reply_to":"AAAATn%2F9mqI%3D","updated":"2013-12-09 20:46:06.000000000","message":"sure, thanks!","commit_id":"3b599e744928763c912a39b0c40a4c328a291e65"}],"glance/db/simple/api.py":[{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"0931ccf9cf5f3c0278d25b54316820c52221a44b","unresolved":false,"context_lines":[{"line_number":282,"context_line":"                for p in image[\u0027properties\u0027]:"},{"line_number":283,"context_line":"                    properties \u003d {p[\u0027name\u0027]: p[\u0027value\u0027],"},{"line_number":284,"context_line":"                                  \u0027deleted\u0027: p[\u0027deleted\u0027]}"},{"line_number":285,"context_line":"                    property_match |\u003d (properties.get(key) \u003d\u003d value and"},{"line_number":286,"context_line":"                                       properties.get(\u0027deleted\u0027) is False)"},{"line_number":287,"context_line":"                add \u003d property_match"},{"line_number":288,"context_line":"            if not add:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9mpM%3D","line":285,"updated":"2013-12-09 19:09:58.000000000","message":"you can also use more preferred python way of \"is not\" vs. !\u003d , in the above condition","commit_id":"3b599e744928763c912a39b0c40a4c328a291e65"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"e2802609d3ebc2da306f811b143fe724a96c4193","unresolved":false,"context_lines":[{"line_number":282,"context_line":"                for p in image[\u0027properties\u0027]:"},{"line_number":283,"context_line":"                    properties \u003d {p[\u0027name\u0027]: p[\u0027value\u0027],"},{"line_number":284,"context_line":"                                  \u0027deleted\u0027: p[\u0027deleted\u0027]}"},{"line_number":285,"context_line":"                    property_match |\u003d (properties.get(key) \u003d\u003d value and"},{"line_number":286,"context_line":"                                       properties.get(\u0027deleted\u0027) is False)"},{"line_number":287,"context_line":"                add \u003d property_match"},{"line_number":288,"context_line":"            if not add:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9mhw%3D","line":285,"in_reply_to":"AAAATn%2F9mpM%3D","updated":"2013-12-09 20:46:06.000000000","message":"Nikhil, the operator is not \u0027 !\u003d \u0027\nIt is \u0027 |\u003d \u0027","commit_id":"3b599e744928763c912a39b0c40a4c328a291e65"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"0931ccf9cf5f3c0278d25b54316820c52221a44b","unresolved":false,"context_lines":[{"line_number":284,"context_line":"                                  \u0027deleted\u0027: p[\u0027deleted\u0027]}"},{"line_number":285,"context_line":"                    property_match |\u003d (properties.get(key) \u003d\u003d value and"},{"line_number":286,"context_line":"                                       properties.get(\u0027deleted\u0027) is False)"},{"line_number":287,"context_line":"                add \u003d property_match"},{"line_number":288,"context_line":"            if not add:"},{"line_number":289,"context_line":"                break"},{"line_number":290,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9moY%3D","line":287,"updated":"2013-12-09 19:09:58.000000000","message":"also, can you please rename this add variable to \"to_add\" and use it in line 285 instead of 2 variables used here?","commit_id":"3b599e744928763c912a39b0c40a4c328a291e65"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"e2802609d3ebc2da306f811b143fe724a96c4193","unresolved":false,"context_lines":[{"line_number":284,"context_line":"                                  \u0027deleted\u0027: p[\u0027deleted\u0027]}"},{"line_number":285,"context_line":"                    property_match |\u003d (properties.get(key) \u003d\u003d value and"},{"line_number":286,"context_line":"                                       properties.get(\u0027deleted\u0027) is False)"},{"line_number":287,"context_line":"                add \u003d property_match"},{"line_number":288,"context_line":"            if not add:"},{"line_number":289,"context_line":"                break"},{"line_number":290,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9mek%3D","line":287,"in_reply_to":"AAAATn%2F9moY%3D","updated":"2013-12-09 20:46:06.000000000","message":"good refactoring, thanks!","commit_id":"3b599e744928763c912a39b0c40a4c328a291e65"}],"glance/tests/functional/v2/test_images.py":[{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"0931ccf9cf5f3c0278d25b54316820c52221a44b","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        path \u003d self._url(\u0027/v2/images?bar\u003dfoo\u0027)"},{"line_number":125,"context_line":"        response \u003d requests.get(path, headers\u003dself._headers())"},{"line_number":126,"context_line":"        self.assertEqual(200, response.status_code)"},{"line_number":127,"context_line":"        images \u003d json.loads(response.text)[\u0027images\u0027]"},{"line_number":128,"context_line":"        self.assertEqual(0, len(images))"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        # Image list should list one image based on the filter \u0027foo\u003dbar\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9mnM%3D","line":127,"updated":"2013-12-09 19:09:58.000000000","message":"I know that other tests are using json straightaway however, would prefer if you added glance.openstack.common.jsonutils and used that instead.","commit_id":"3b599e744928763c912a39b0c40a4c328a291e65"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"0931ccf9cf5f3c0278d25b54316820c52221a44b","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        images \u003d json.loads(response.text)[\u0027images\u0027]"},{"line_number":128,"context_line":"        self.assertEqual(0, len(images))"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        # Image list should list one image based on the filter \u0027foo\u003dbar\u0027"},{"line_number":131,"context_line":"        path \u003d self._url(\u0027/v2/images?foo\u003dbar\u0027)"},{"line_number":132,"context_line":"        response \u003d requests.get(path, headers\u003dself._headers())"},{"line_number":133,"context_line":"        self.assertEqual(200, response.status_code)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9mmI%3D","line":130,"updated":"2013-12-09 19:09:58.000000000","message":"For this use case, I wonder if it would be better to have more than 1 image in the tests so that we know filters are exact.","commit_id":"3b599e744928763c912a39b0c40a4c328a291e65"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"e2802609d3ebc2da306f811b143fe724a96c4193","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        images \u003d json.loads(response.text)[\u0027images\u0027]"},{"line_number":128,"context_line":"        self.assertEqual(0, len(images))"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        # Image list should list one image based on the filter \u0027foo\u003dbar\u0027"},{"line_number":131,"context_line":"        path \u003d self._url(\u0027/v2/images?foo\u003dbar\u0027)"},{"line_number":132,"context_line":"        response \u003d requests.get(path, headers\u003dself._headers())"},{"line_number":133,"context_line":"        self.assertEqual(200, response.status_code)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9mJg%3D","line":130,"in_reply_to":"AAAATn%2F9mmI%3D","updated":"2013-12-09 20:46:06.000000000","message":"Makes sense, will add.","commit_id":"3b599e744928763c912a39b0c40a4c328a291e65"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"0931ccf9cf5f3c0278d25b54316820c52221a44b","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        self.assertEqual(1, len(images))"},{"line_number":136,"context_line":"        self.assertEqual(images[0][\u0027id\u0027], image_id)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        # Image list should list one image based on the filter"},{"line_number":139,"context_line":"        # \u0027foo\u003dbar\u0026abc\u003dxyz\u0027"},{"line_number":140,"context_line":"        path \u003d self._url(\u0027/v2/images?foo\u003dbar\u0026abc\u003dxyz\u0027)"},{"line_number":141,"context_line":"        response \u003d requests.get(path, headers\u003dself._headers())"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9mmA%3D","line":138,"updated":"2013-12-09 19:09:58.000000000","message":"same as line 130","commit_id":"3b599e744928763c912a39b0c40a4c328a291e65"}],"glance/tests/unit/v2/test_images_resource.py":[{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"0931ccf9cf5f3c0278d25b54316820c52221a44b","unresolved":false,"context_lines":[{"line_number":446,"context_line":"        self.assertTrue(\u002764bit\u0027 in tags[0])"},{"line_number":447,"context_line":"        self.assertEqual(\u0027kvm\u0027, properties[0][\u0027hypervisor_type\u0027])"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"    def test_index_with_multiple_properties(self):"},{"line_number":450,"context_line":"        path \u003d \u0027/images?foo\u003dbar\u0026hypervisor_type\u003dkvm\u0027"},{"line_number":451,"context_line":"        request \u003d unit_test_utils.get_fake_request(path)"},{"line_number":452,"context_line":"        output \u003d self.controller.index(request,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9mlI%3D","line":449,"updated":"2013-12-09 19:09:58.000000000","message":"This might be unrelated- Can we add a test which checks multiple property filters containing at least one base property?","commit_id":"3b599e744928763c912a39b0c40a4c328a291e65"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"e2802609d3ebc2da306f811b143fe724a96c4193","unresolved":false,"context_lines":[{"line_number":446,"context_line":"        self.assertTrue(\u002764bit\u0027 in tags[0])"},{"line_number":447,"context_line":"        self.assertEqual(\u0027kvm\u0027, properties[0][\u0027hypervisor_type\u0027])"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"    def test_index_with_multiple_properties(self):"},{"line_number":450,"context_line":"        path \u003d \u0027/images?foo\u003dbar\u0026hypervisor_type\u003dkvm\u0027"},{"line_number":451,"context_line":"        request \u003d unit_test_utils.get_fake_request(path)"},{"line_number":452,"context_line":"        output \u003d self.controller.index(request,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9mQU%3D","line":449,"in_reply_to":"AAAATn%2F9mlI%3D","updated":"2013-12-09 20:46:06.000000000","message":"sure.","commit_id":"3b599e744928763c912a39b0c40a4c328a291e65"}],"glance/tests/unit/v2/test_registry_api.py":[{"author":{"_account_id":4463,"name":"iccha-sethi","email":"iccha.sethi@rackspace.com","username":"iccha-sethi"},"change_message_id":"42a876da32bc9b5248494e760b026f2738137b95","unresolved":false,"context_lines":[{"line_number":616,"context_line":""},{"line_number":617,"context_line":"        db_api.image_create(self.context, extra_fixture)"},{"line_number":618,"context_line":""},{"line_number":619,"context_line":"        # extra_fixture \u003d {\u0027id\u0027: _gen_uuid(),"},{"line_number":620,"context_line":"        #                  \u0027status\u0027: \u0027active\u0027,"},{"line_number":621,"context_line":"        #                  \u0027is_public\u0027: True,"},{"line_number":622,"context_line":"        #                  \u0027disk_format\u0027: \u0027vhd\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9bww%3D","line":619,"updated":"2013-12-11 15:47:13.000000000","message":"oopsie!","commit_id":"2a63305748a4b7837e8a9f153eb6bc419c63086f"}]}
