)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"054c4a13f590c1d81b029af681eec09b2bb50ba8","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Nakul Dahiwade \u003cnakul.dahiwade@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-03-02 16:44:28 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Jsonify meter and meter rule functional tests"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Some functional tests try to parse the CLI table output"},{"line_number":10,"context_line":"format, that cause much work on parse string by using"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ba2be162_1ed53d1b","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":7},"updated":"2017-03-02 16:54:49.000000000","message":"please continue to use this word, it\u0027s amazing","commit_id":"3d3e5f7968270526613e08ff3b37670a13e75fb4"},{"author":{"_account_id":22776,"name":"Nakul Dahiwade","email":"nakul.dahiwade@intel.com","username":"nakul.dahiwade"},"change_message_id":"bc8a1d10a0bef648a7fb87f4f2d991ec21d53eba","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Nakul Dahiwade \u003cnakul.dahiwade@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-03-02 16:44:28 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Jsonify meter and meter rule functional tests"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Some functional tests try to parse the CLI table output"},{"line_number":10,"context_line":"format, that cause much work on parse string by using"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ba2be162_004f686b","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":7},"in_reply_to":"ba2be162_1ed53d1b","updated":"2017-03-03 16:10:44.000000000","message":"Sure :) thanks.","commit_id":"3d3e5f7968270526613e08ff3b37670a13e75fb4"}],"openstackclient/tests/functional/network/v2/test_meter.py":[{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"a60f2637985d106641a59b43a6c5b6d7c3338c4f","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    name1 \u003d uuid.uuid4().hex"},{"line_number":30,"context_line":"    name2 \u003d uuid.uuid4().hex"},{"line_number":31,"context_line":"    description \u003d \u0027fakedescription\u0027"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def test_meter_delete(self):"},{"line_number":34,"context_line":"        \"\"\"Test create, delete multiple\"\"\""},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba2be162_cb77979d","line":32,"updated":"2017-03-02 01:19:10.000000000","message":"test_meter_show is needed as well.","commit_id":"1a988348a22379b285401137a397bbb9c5db2bc4"},{"author":{"_account_id":22776,"name":"Nakul Dahiwade","email":"nakul.dahiwade@intel.com","username":"nakul.dahiwade"},"change_message_id":"d012909adbb364db34d7ba97ea58f46c67bdd097","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    name1 \u003d uuid.uuid4().hex"},{"line_number":30,"context_line":"    name2 \u003d uuid.uuid4().hex"},{"line_number":31,"context_line":"    description \u003d \u0027fakedescription\u0027"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def test_meter_delete(self):"},{"line_number":34,"context_line":"        \"\"\"Test create, delete multiple\"\"\""},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba2be162_3bc3f3ee","line":32,"in_reply_to":"ba2be162_cb77979d","updated":"2017-03-02 16:46:08.000000000","message":"Done","commit_id":"1a988348a22379b285401137a397bbb9c5db2bc4"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"f33173d6a92f3a1dfe86d4e2da92d1c100eb0c05","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    #                has its own needs and there are collisions when running"},{"line_number":28,"context_line":"    #                tests in parallel."},{"line_number":29,"context_line":"    name1 \u003d uuid.uuid4().hex"},{"line_number":30,"context_line":"    name2 \u003d uuid.uuid4().hex"},{"line_number":31,"context_line":"    description \u003d \u0027fakedescription\u0027"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def test_meter_delete(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_bf56e859","line":30,"updated":"2017-03-02 19:02:43.000000000","message":"These really need to stay local vars in the methods as the tests may run in parallel and we would be stepping on things this way.\n\nThere really is not much need for setUpClass in this case; you do not use self.description consistently below.","commit_id":"3d3e5f7968270526613e08ff3b37670a13e75fb4"},{"author":{"_account_id":22776,"name":"Nakul Dahiwade","email":"nakul.dahiwade@intel.com","username":"nakul.dahiwade"},"change_message_id":"35451601a612d9a9c974d99b7b412d64d3de610e","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    #                has its own needs and there are collisions when running"},{"line_number":28,"context_line":"    #                tests in parallel."},{"line_number":29,"context_line":"    name1 \u003d uuid.uuid4().hex"},{"line_number":30,"context_line":"    name2 \u003d uuid.uuid4().hex"},{"line_number":31,"context_line":"    description \u003d \u0027fakedescription\u0027"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def test_meter_delete(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_f5193489","line":30,"in_reply_to":"ba2be162_bf56e859","updated":"2017-03-03 16:09:48.000000000","message":"Done","commit_id":"3d3e5f7968270526613e08ff3b37670a13e75fb4"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"f33173d6a92f3a1dfe86d4e2da92d1c100eb0c05","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        json_output \u003d json.loads(self.openstack("},{"line_number":37,"context_line":"            \u0027network meter create -f json \u0027 + self.name1 + \u0027 --description \u0027"},{"line_number":38,"context_line":"            + self.description))"},{"line_number":39,"context_line":"        self.assertEqual("},{"line_number":40,"context_line":"            self.name1,"},{"line_number":41,"context_line":"            json_output.get(\u0027name\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_9f85a408","line":38,"updated":"2017-03-02 19:02:43.000000000","message":"Let\u0027s please get back to using the common indentation patterns...","commit_id":"3d3e5f7968270526613e08ff3b37670a13e75fb4"},{"author":{"_account_id":22776,"name":"Nakul Dahiwade","email":"nakul.dahiwade@intel.com","username":"nakul.dahiwade"},"change_message_id":"35451601a612d9a9c974d99b7b412d64d3de610e","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        json_output \u003d json.loads(self.openstack("},{"line_number":37,"context_line":"            \u0027network meter create -f json \u0027 + self.name1 + \u0027 --description \u0027"},{"line_number":38,"context_line":"            + self.description))"},{"line_number":39,"context_line":"        self.assertEqual("},{"line_number":40,"context_line":"            self.name1,"},{"line_number":41,"context_line":"            json_output.get(\u0027name\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_5515a046","line":38,"in_reply_to":"ba2be162_9f85a408","updated":"2017-03-03 16:09:48.000000000","message":"Done","commit_id":"3d3e5f7968270526613e08ff3b37670a13e75fb4"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"f33173d6a92f3a1dfe86d4e2da92d1c100eb0c05","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        self.assertIn(self.name1, name_list)"},{"line_number":106,"context_line":"        self.assertIn(self.name2, name_list)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        # Clean up"},{"line_number":109,"context_line":"        raw_output \u003d self.openstack("},{"line_number":110,"context_line":"            \u0027network meter delete \u0027 + self.name1 + \u0027 \u0027 + self.name2)"},{"line_number":111,"context_line":"        self.assertOutput(\u0027\u0027, raw_output)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_3f7bd8f6","line":108,"updated":"2017-03-02 19:02:43.000000000","message":"Plseae use self.addCleanup() to do this","commit_id":"3d3e5f7968270526613e08ff3b37670a13e75fb4"},{"author":{"_account_id":22776,"name":"Nakul Dahiwade","email":"nakul.dahiwade@intel.com","username":"nakul.dahiwade"},"change_message_id":"35451601a612d9a9c974d99b7b412d64d3de610e","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        self.assertIn(self.name1, name_list)"},{"line_number":106,"context_line":"        self.assertIn(self.name2, name_list)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        # Clean up"},{"line_number":109,"context_line":"        raw_output \u003d self.openstack("},{"line_number":110,"context_line":"            \u0027network meter delete \u0027 + self.name1 + \u0027 \u0027 + self.name2)"},{"line_number":111,"context_line":"        self.assertOutput(\u0027\u0027, raw_output)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_b5041c18","line":108,"in_reply_to":"ba2be162_3f7bd8f6","updated":"2017-03-03 16:09:48.000000000","message":"Done","commit_id":"3d3e5f7968270526613e08ff3b37670a13e75fb4"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"f33173d6a92f3a1dfe86d4e2da92d1c100eb0c05","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            json_output.get(\u0027description\u0027)"},{"line_number":131,"context_line":"        )"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        json_output \u003d json.loads(self.openstack("},{"line_number":134,"context_line":"            \u0027network meter create -f json \u0027 + self.name2 + \u0027 --description \u0027"},{"line_number":135,"context_line":"            + self.description + \u0027 --share\u0027))"},{"line_number":136,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_1f7d34b1","line":133,"updated":"2017-03-02 19:02:43.000000000","message":"Why is a second meter needed here?  The checks below are already done elsewhere fro verifying the values, just do another show command by name to check that.","commit_id":"3d3e5f7968270526613e08ff3b37670a13e75fb4"},{"author":{"_account_id":22776,"name":"Nakul Dahiwade","email":"nakul.dahiwade@intel.com","username":"nakul.dahiwade"},"change_message_id":"35451601a612d9a9c974d99b7b412d64d3de610e","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            json_output.get(\u0027description\u0027)"},{"line_number":131,"context_line":"        )"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        json_output \u003d json.loads(self.openstack("},{"line_number":134,"context_line":"            \u0027network meter create -f json \u0027 + self.name2 + \u0027 --description \u0027"},{"line_number":135,"context_line":"            + self.description + \u0027 --share\u0027))"},{"line_number":136,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_20062c1d","line":133,"in_reply_to":"ba2be162_1f7d34b1","updated":"2017-03-03 16:09:48.000000000","message":"Done","commit_id":"3d3e5f7968270526613e08ff3b37670a13e75fb4"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"f33173d6a92f3a1dfe86d4e2da92d1c100eb0c05","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            json_output.get(\u0027description\u0027)"},{"line_number":152,"context_line":"        )"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        # Clean up"},{"line_number":155,"context_line":"        raw_output \u003d self.openstack("},{"line_number":156,"context_line":"            \u0027network meter delete \u0027 + self.name1 + \u0027 \u0027 + self.name2)"},{"line_number":157,"context_line":"        self.assertOutput(\u0027\u0027, raw_output)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_9f0f6487","line":154,"updated":"2017-03-02 19:02:43.000000000","message":"Please use self.addCleanup() to do this","commit_id":"3d3e5f7968270526613e08ff3b37670a13e75fb4"},{"author":{"_account_id":22776,"name":"Nakul Dahiwade","email":"nakul.dahiwade@intel.com","username":"nakul.dahiwade"},"change_message_id":"35451601a612d9a9c974d99b7b412d64d3de610e","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            json_output.get(\u0027description\u0027)"},{"line_number":152,"context_line":"        )"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        # Clean up"},{"line_number":155,"context_line":"        raw_output \u003d self.openstack("},{"line_number":156,"context_line":"            \u0027network meter delete \u0027 + self.name1 + \u0027 \u0027 + self.name2)"},{"line_number":157,"context_line":"        self.assertOutput(\u0027\u0027, raw_output)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_600ca43b","line":154,"in_reply_to":"ba2be162_9f0f6487","updated":"2017-03-03 16:09:48.000000000","message":"Done","commit_id":"3d3e5f7968270526613e08ff3b37670a13e75fb4"}],"openstackclient/tests/functional/network/v2/test_network_meter_rule.py":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"f33173d6a92f3a1dfe86d4e2da92d1c100eb0c05","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        self.assertIsNotNone(re_ip)"},{"line_number":55,"context_line":"        self.assertIsNotNone(rule_id)"},{"line_number":56,"context_line":"        self.assertEqual("},{"line_number":57,"context_line":"            \u002710.0.0.0/8\u0027, re_ip"},{"line_number":58,"context_line":"        )"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def test_meter_rule_list(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_1f02940b","line":57,"updated":"2017-03-02 19:02:43.000000000","message":"If you do a hanging indent, each arguments goes on its own line","commit_id":"3d3e5f7968270526613e08ff3b37670a13e75fb4"}]}
