)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"1a74849820c8beed634adc92dad258887ce136b7","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add missing tests for db.api.instance_* methods"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add missing and fixed existing tests."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"blueprint db-api-tests"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAAPn%2F%2Fb%2Bw%3D","line":9,"updated":"2013-07-01 23:03:08.000000000","message":"What was wrong with them?  It\u0027s not clear why you changed existing tests.  It would be good to explain it in the commit message.","commit_id":"4a201583a03633746d7093c0ad1c31c591a30a78"},{"author":{"_account_id":7369,"name":"Sergey Skripnick","email":"sskripnick@mirantis.com","username":"redixin"},"change_message_id":"b8f13974803f59b5df0dc319b729c1d0ed66c272","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add missing tests for db.api.instance_* methods"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add missing and fixed existing tests."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"blueprint db-api-tests"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAAPn%2F%2FaV8%3D","line":9,"in_reply_to":"AAAAPn%2F%2Fb%2Bw%3D","updated":"2013-07-02 14:25:32.000000000","message":"Done","commit_id":"4a201583a03633746d7093c0ad1c31c591a30a78"}],"nova/tests/db/test_db_api.py":[{"author":{"_account_id":6661,"name":"Burt Holzman","email":"holzman@gmail.com","username":"burt"},"change_message_id":"56e00b635d4c37fa96b0f8a931839ae8e467e0d0","unresolved":false,"context_lines":[{"line_number":1556,"context_line":"                                                {\u0027display_name\u0027: u\u0027test\u0027})"},{"line_number":1557,"context_line":"        self._assertEqualListsOfInstances([instance], result)"},{"line_number":1558,"context_line":""},{"line_number":1559,"context_line":"    def test_instance_get_all_by_filters_filter(self):"},{"line_number":1560,"context_line":"        instance \u003d self.create_instance_with_args("},{"line_number":1561,"context_line":"            metadata\u003d{\u0027testkey42\u0027: \u0027testvalue42\u0027})"},{"line_number":1562,"context_line":"        self.create_instance_with_args()"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAP3%2F%2F15Y%3D","line":1559,"updated":"2013-07-10 15:25:49.000000000","message":"Thanks for adding this.  I think also it do the null check for failing the filter, something like\n\n        result \u003d db.instance_get_all_by_filters(\n            self.ctxt, {\u0027filter\u0027: [\n                {\u0027name\u0027: \u0027tag:foo\u0027, \u0027value\u0027: \u0027bar\u0027},\n            ]})\n        self.assertEqual([], result)","commit_id":"5ae74bd9a909826480a491022dc47eabfc578c31"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ec8ea7e24faf85c7afd91d97e8e6022d5fe7e831","unresolved":false,"context_lines":[{"line_number":1617,"context_line":"        self._assertEqualListsOfObjects([inst1, inst2], result,"},{"line_number":1618,"context_line":"            ignored_keys\u003d[\u0027metadata\u0027, \u0027system_metadata\u0027,"},{"line_number":1619,"context_line":"                          \u0027deleted\u0027, \u0027deleted_at\u0027, \u0027info_cache\u0027])"},{"line_number":1620,"context_line":"        if inst1[\u0027id\u0027] \u003d\u003d result[0][\u0027id\u0027]:"},{"line_number":1621,"context_line":"            self.assertTrue(result[0][\u0027deleted\u0027])"},{"line_number":1622,"context_line":"        else:"},{"line_number":1623,"context_line":"            self.assertTrue(result[1][\u0027deleted\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAP3%2F%2Ft7Q%3D","line":1620,"updated":"2013-07-12 14:31:24.000000000","message":"don\u0027t really get why we have an if here?","commit_id":"5efb970d72ddac7924e10518ea55823a960fdd72"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"d90933ba33b1784464e0227dc19b5dadbe23c417","unresolved":false,"context_lines":[{"line_number":1617,"context_line":"        self._assertEqualListsOfObjects([inst1, inst2], result,"},{"line_number":1618,"context_line":"            ignored_keys\u003d[\u0027metadata\u0027, \u0027system_metadata\u0027,"},{"line_number":1619,"context_line":"                          \u0027deleted\u0027, \u0027deleted_at\u0027, \u0027info_cache\u0027])"},{"line_number":1620,"context_line":"        if inst1[\u0027id\u0027] \u003d\u003d result[0][\u0027id\u0027]:"},{"line_number":1621,"context_line":"            self.assertTrue(result[0][\u0027deleted\u0027])"},{"line_number":1622,"context_line":"        else:"},{"line_number":1623,"context_line":"            self.assertTrue(result[1][\u0027deleted\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAP3%2F%2FpL0%3D","line":1620,"in_reply_to":"AAAAP3%2F%2Ft7Q%3D","updated":"2013-07-15 14:12:57.000000000","message":"Done","commit_id":"5efb970d72ddac7924e10518ea55823a960fdd72"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ec8ea7e24faf85c7afd91d97e8e6022d5fe7e831","unresolved":false,"context_lines":[{"line_number":1661,"context_line":"        self._assertEqualListsOfObjects([instance], result,"},{"line_number":1662,"context_line":"                ignored_keys\u003d[\u0027metadata\u0027, \u0027system_metadata\u0027, \u0027info_cache\u0027,"},{"line_number":1663,"context_line":"                              \u0027security_groups\u0027])"},{"line_number":1664,"context_line":"        self.assertEqual(result[0][\u0027system_metadata\u0027], [])"},{"line_number":1665,"context_line":""},{"line_number":1666,"context_line":"    def test_instance_get_all_hung_in_rebooting(self):"},{"line_number":1667,"context_line":"        # Ensure no instances are returned."}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAP3%2F%2Ft78%3D","line":1664,"updated":"2013-07-12 14:31:24.000000000","message":"wrong way round, I think, if you need to make another change.","commit_id":"5efb970d72ddac7924e10518ea55823a960fdd72"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ec8ea7e24faf85c7afd91d97e8e6022d5fe7e831","unresolved":false,"context_lines":[{"line_number":1686,"context_line":""},{"line_number":1687,"context_line":"    def test_instance_update_with_expected_vm_state(self):"},{"line_number":1688,"context_line":"        instance \u003d self.create_instance_with_args(vm_state\u003d\u0027foo\u0027)"},{"line_number":1689,"context_line":"        db.instance_update(self.ctxt, instance[\u0027uuid\u0027], {\u0027host\u0027: \u0027h1\u0027,"},{"line_number":1690,"context_line":"                                       \u0027expected_vm_state\u0027: (\u0027foo\u0027, \u0027bar\u0027)})"},{"line_number":1691,"context_line":""},{"line_number":1692,"context_line":"    def test_instance_update_with_unexpected_vm_state(self):"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAP3%2F%2Ft8U%3D","line":1689,"updated":"2013-07-12 14:31:24.000000000","message":"is it not worth checking the update actually happened?","commit_id":"5efb970d72ddac7924e10518ea55823a960fdd72"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"d90933ba33b1784464e0227dc19b5dadbe23c417","unresolved":false,"context_lines":[{"line_number":1686,"context_line":""},{"line_number":1687,"context_line":"    def test_instance_update_with_expected_vm_state(self):"},{"line_number":1688,"context_line":"        instance \u003d self.create_instance_with_args(vm_state\u003d\u0027foo\u0027)"},{"line_number":1689,"context_line":"        db.instance_update(self.ctxt, instance[\u0027uuid\u0027], {\u0027host\u0027: \u0027h1\u0027,"},{"line_number":1690,"context_line":"                                       \u0027expected_vm_state\u0027: (\u0027foo\u0027, \u0027bar\u0027)})"},{"line_number":1691,"context_line":""},{"line_number":1692,"context_line":"    def test_instance_update_with_unexpected_vm_state(self):"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAP3%2F%2FpLw%3D","line":1689,"in_reply_to":"AAAAP3%2F%2Ft8U%3D","updated":"2013-07-15 14:12:57.000000000","message":"This test check that actual state contained in expected_vm_state.\nIf no exception - OK. Expected state only validated in db api method.\n\nCode from sqlalchemy api:\nif \"expected_vm_state\" in values:\n            expected \u003d values.pop(\"expected_vm_state\")\n            if not isinstance(expected, (tuple, list, set)):\n                expected \u003d (expected,)\n            actual_state \u003d instance_ref[\"vm_state\"]\n            if actual_state not in expected:\n                raise exception.UnexpectedVMStateError(actual\u003dactual_state,\n                                                       expected\u003dexpected)","commit_id":"5efb970d72ddac7924e10518ea55823a960fdd72"},{"author":{"_account_id":6661,"name":"Burt Holzman","email":"holzman@gmail.com","username":"burt"},"change_message_id":"185b59c76f1c2b2abcf19fbf435359bc90068b48","unresolved":false,"context_lines":[{"line_number":1617,"context_line":"        self._assertEqualListsOfObjects([inst1, inst2], result,"},{"line_number":1618,"context_line":"            ignored_keys\u003d[\u0027metadata\u0027, \u0027system_metadata\u0027,"},{"line_number":1619,"context_line":"                          \u0027deleted\u0027, \u0027deleted_at\u0027, \u0027info_cache\u0027])"},{"line_number":1620,"context_line":""},{"line_number":1621,"context_line":"    def test_instance_get_all_by_filters_deleted_and_soft_deleted(self):"},{"line_number":1622,"context_line":"        inst1 \u003d self.create_instance_with_args()"},{"line_number":1623,"context_line":"        inst2 \u003d self.create_instance_with_args(vm_state\u003dvm_states.SOFT_DELETED)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAP3%2F%2FoRw%3D","line":1620,"updated":"2013-07-15 16:47:51.000000000","message":"Shouldn\u0027t we still check that the instance was deleted?","commit_id":"82977dbc27faaf1524e576811aaa114dd9e215a4"}]}
