)]}'
{"functional/tests/identity/v2/test_identity.py":[{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"983c3079b4d1e3db6ad58773ec8adc0eb1fa7b49","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        role_name \u003d data_utils.rand_name(\u0027TestRole\u0027)"},{"line_number":103,"context_line":"        raw_output \u003d self.openstack(\u0027role create %s\u0027 % role_name)"},{"line_number":104,"context_line":"        items \u003d self.parse_show(raw_output)"},{"line_number":105,"context_line":"        self.assert_show_fields(items, self.ROLE_FIELDS)"},{"line_number":106,"context_line":"        role \u003d self.parse_show_as_object(raw_output)"},{"line_number":107,"context_line":"        if add_clean_up:"},{"line_number":108,"context_line":"            self.addCleanup("}],"source_content_type":"text/x-python","patch_set":1,"id":"9a061dce_8f581234","line":105,"range":{"start_line":105,"start_character":13,"end_line":105,"end_character":31},"updated":"2016-04-06 08:14:02.000000000","message":"should move this line after addCleanup()","commit_id":"2804b98d49b52f5b8e63c18bcc63ac4c944985bf"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"0b8a83a2d4c8aab1777a4735587bf0c208bd301e","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        role_name \u003d data_utils.rand_name(\u0027TestRole\u0027)"},{"line_number":103,"context_line":"        raw_output \u003d self.openstack(\u0027role create %s\u0027 % role_name)"},{"line_number":104,"context_line":"        items \u003d self.parse_show(raw_output)"},{"line_number":105,"context_line":"        self.assert_show_fields(items, self.ROLE_FIELDS)"},{"line_number":106,"context_line":"        role \u003d self.parse_show_as_object(raw_output)"},{"line_number":107,"context_line":"        if add_clean_up:"},{"line_number":108,"context_line":"            self.addCleanup("}],"source_content_type":"text/x-python","patch_set":1,"id":"9a061dce_17f19001","line":105,"range":{"start_line":105,"start_character":13,"end_line":105,"end_character":31},"in_reply_to":"9a061dce_8f581234","updated":"2016-04-06 18:56:56.000000000","message":"Done","commit_id":"2804b98d49b52f5b8e63c18bcc63ac4c944985bf"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"983c3079b4d1e3db6ad58773ec8adc0eb1fa7b49","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    def _create_dummy_ec2_credentials(self, add_clean_up\u003dTrue):"},{"line_number":115,"context_line":"        raw_output \u003d self.openstack(\u0027ec2 credentials create\u0027)"},{"line_number":116,"context_line":"        items \u003d self.parse_show(raw_output)"},{"line_number":117,"context_line":"        self.assert_show_fields(items, self.EC2_CREDENTIALS_FIELDS)"},{"line_number":118,"context_line":"        ec2_credentials \u003d self.parse_show_as_object(raw_output)"},{"line_number":119,"context_line":"        access_key \u003d ec2_credentials[\u0027access\u0027]"},{"line_number":120,"context_line":"        if add_clean_up:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a061dce_af92369d","line":117,"range":{"start_line":117,"start_character":13,"end_line":117,"end_character":31},"updated":"2016-04-06 08:14:02.000000000","message":"ditto","commit_id":"2804b98d49b52f5b8e63c18bcc63ac4c944985bf"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"0b8a83a2d4c8aab1777a4735587bf0c208bd301e","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    def _create_dummy_ec2_credentials(self, add_clean_up\u003dTrue):"},{"line_number":115,"context_line":"        raw_output \u003d self.openstack(\u0027ec2 credentials create\u0027)"},{"line_number":116,"context_line":"        items \u003d self.parse_show(raw_output)"},{"line_number":117,"context_line":"        self.assert_show_fields(items, self.EC2_CREDENTIALS_FIELDS)"},{"line_number":118,"context_line":"        ec2_credentials \u003d self.parse_show_as_object(raw_output)"},{"line_number":119,"context_line":"        access_key \u003d ec2_credentials[\u0027access\u0027]"},{"line_number":120,"context_line":"        if add_clean_up:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a061dce_77e28c30","line":117,"range":{"start_line":117,"start_character":13,"end_line":117,"end_character":31},"in_reply_to":"9a061dce_af92369d","updated":"2016-04-06 18:56:56.000000000","message":"Done","commit_id":"2804b98d49b52f5b8e63c18bcc63ac4c944985bf"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"983c3079b4d1e3db6ad58773ec8adc0eb1fa7b49","unresolved":false,"context_lines":[{"line_number":126,"context_line":"    def _create_dummy_token(self, add_clean_up\u003dTrue):"},{"line_number":127,"context_line":"        raw_output \u003d self.openstack(\u0027token issue\u0027)"},{"line_number":128,"context_line":"        items \u003d self.parse_show(raw_output)"},{"line_number":129,"context_line":"        self.assert_show_fields(items, self.TOKEN_FIELDS)"},{"line_number":130,"context_line":"        token \u003d self.parse_show_as_object(raw_output)"},{"line_number":131,"context_line":"        if add_clean_up:"},{"line_number":132,"context_line":"            self.addCleanup(self.openstack,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a061dce_8ff492f2","line":129,"range":{"start_line":129,"start_character":13,"end_line":129,"end_character":31},"updated":"2016-04-06 08:14:02.000000000","message":"ditto","commit_id":"2804b98d49b52f5b8e63c18bcc63ac4c944985bf"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"0b8a83a2d4c8aab1777a4735587bf0c208bd301e","unresolved":false,"context_lines":[{"line_number":126,"context_line":"    def _create_dummy_token(self, add_clean_up\u003dTrue):"},{"line_number":127,"context_line":"        raw_output \u003d self.openstack(\u0027token issue\u0027)"},{"line_number":128,"context_line":"        items \u003d self.parse_show(raw_output)"},{"line_number":129,"context_line":"        self.assert_show_fields(items, self.TOKEN_FIELDS)"},{"line_number":130,"context_line":"        token \u003d self.parse_show_as_object(raw_output)"},{"line_number":131,"context_line":"        if add_clean_up:"},{"line_number":132,"context_line":"            self.addCleanup(self.openstack,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a061dce_b7d6e44c","line":129,"range":{"start_line":129,"start_character":13,"end_line":129,"end_character":31},"in_reply_to":"9a061dce_8ff492f2","updated":"2016-04-06 18:56:56.000000000","message":"Done","commit_id":"2804b98d49b52f5b8e63c18bcc63ac4c944985bf"}],"functional/tests/identity/v2/test_role.py":[{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"983c3079b4d1e3db6ad58773ec8adc0eb1fa7b49","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                          \u0027user\u0027: username,"},{"line_number":42,"context_line":"                          \u0027role\u0027: role_name})"},{"line_number":43,"context_line":"        items \u003d self.parse_show(raw_output)"},{"line_number":44,"context_line":"        self.assert_show_fields(items, self.ROLE_FIELDS)"},{"line_number":45,"context_line":"        raw_output \u003d self.openstack("},{"line_number":46,"context_line":"            \u0027role list \u0027"},{"line_number":47,"context_line":"            \u0027--project %(project)s \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a061dce_efff0ea8","line":44,"range":{"start_line":44,"start_character":13,"end_line":44,"end_character":31},"updated":"2016-04-06 08:14:02.000000000","message":"please move this line to addCleanup() below.","commit_id":"2804b98d49b52f5b8e63c18bcc63ac4c944985bf"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"0b8a83a2d4c8aab1777a4735587bf0c208bd301e","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                          \u0027user\u0027: username,"},{"line_number":42,"context_line":"                          \u0027role\u0027: role_name})"},{"line_number":43,"context_line":"        items \u003d self.parse_show(raw_output)"},{"line_number":44,"context_line":"        self.assert_show_fields(items, self.ROLE_FIELDS)"},{"line_number":45,"context_line":"        raw_output \u003d self.openstack("},{"line_number":46,"context_line":"            \u0027role list \u0027"},{"line_number":47,"context_line":"            \u0027--project %(project)s \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a061dce_f7ccdcbc","line":44,"range":{"start_line":44,"start_character":13,"end_line":44,"end_character":31},"in_reply_to":"9a061dce_efff0ea8","updated":"2016-04-06 18:56:56.000000000","message":"Done","commit_id":"2804b98d49b52f5b8e63c18bcc63ac4c944985bf"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"983c3079b4d1e3db6ad58773ec8adc0eb1fa7b49","unresolved":false,"context_lines":[{"line_number":98,"context_line":"                          \u0027user\u0027: username,"},{"line_number":99,"context_line":"                          \u0027role\u0027: role_name})"},{"line_number":100,"context_line":"        items \u003d self.parse_show(raw_output)"},{"line_number":101,"context_line":"        self.assert_show_fields(items, self.ROLE_FIELDS)"},{"line_number":102,"context_line":"        raw_output \u003d self.openstack("},{"line_number":103,"context_line":"            \u0027role remove \u0027"},{"line_number":104,"context_line":"            \u0027--project %(project)s \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a061dce_2f8c6634","line":101,"range":{"start_line":101,"start_character":13,"end_line":101,"end_character":31},"updated":"2016-04-06 08:14:02.000000000","message":"please move the line to the end of test case.","commit_id":"2804b98d49b52f5b8e63c18bcc63ac4c944985bf"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"0b8a83a2d4c8aab1777a4735587bf0c208bd301e","unresolved":false,"context_lines":[{"line_number":98,"context_line":"                          \u0027user\u0027: username,"},{"line_number":99,"context_line":"                          \u0027role\u0027: role_name})"},{"line_number":100,"context_line":"        items \u003d self.parse_show(raw_output)"},{"line_number":101,"context_line":"        self.assert_show_fields(items, self.ROLE_FIELDS)"},{"line_number":102,"context_line":"        raw_output \u003d self.openstack("},{"line_number":103,"context_line":"            \u0027role remove \u0027"},{"line_number":104,"context_line":"            \u0027--project %(project)s \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a061dce_37c3f48a","line":101,"range":{"start_line":101,"start_character":13,"end_line":101,"end_character":31},"in_reply_to":"9a061dce_2f8c6634","updated":"2016-04-06 18:56:56.000000000","message":"Done","commit_id":"2804b98d49b52f5b8e63c18bcc63ac4c944985bf"}],"functional/tests/identity/v3/test_group.py":[{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"983c3079b4d1e3db6ad58773ec8adc0eb1fa7b49","unresolved":false,"context_lines":[{"line_number":157,"context_line":"                                    \u0027user_domain\u0027: self.domain_name,"},{"line_number":158,"context_line":"                                    \u0027group\u0027: group_name,"},{"line_number":159,"context_line":"                                    \u0027user\u0027: username})"},{"line_number":160,"context_line":"        self.assertOutput("},{"line_number":161,"context_line":"            \u0027%(user)s added to group %(group)s\\n\u0027 % {\u0027user\u0027: username,"},{"line_number":162,"context_line":"                                                     \u0027group\u0027: group_name},"},{"line_number":163,"context_line":"            raw_output"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a061dce_aa47c41b","line":160,"range":{"start_line":160,"start_character":13,"end_line":160,"end_character":25},"updated":"2016-04-06 08:14:02.000000000","message":"please move the line to the end of test case in order to \"remove user\" can execute even if assert failed.","commit_id":"2804b98d49b52f5b8e63c18bcc63ac4c944985bf"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"0b8a83a2d4c8aab1777a4735587bf0c208bd301e","unresolved":false,"context_lines":[{"line_number":157,"context_line":"                                    \u0027user_domain\u0027: self.domain_name,"},{"line_number":158,"context_line":"                                    \u0027group\u0027: group_name,"},{"line_number":159,"context_line":"                                    \u0027user\u0027: username})"},{"line_number":160,"context_line":"        self.assertOutput("},{"line_number":161,"context_line":"            \u0027%(user)s added to group %(group)s\\n\u0027 % {\u0027user\u0027: username,"},{"line_number":162,"context_line":"                                                     \u0027group\u0027: group_name},"},{"line_number":163,"context_line":"            raw_output"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a061dce_f7a7bc08","line":160,"range":{"start_line":160,"start_character":13,"end_line":160,"end_character":25},"in_reply_to":"9a061dce_aa47c41b","updated":"2016-04-06 18:56:56.000000000","message":"Done","commit_id":"2804b98d49b52f5b8e63c18bcc63ac4c944985bf"}],"functional/tests/identity/v3/test_role.py":[{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"983c3079b4d1e3db6ad58773ec8adc0eb1fa7b49","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                          \u0027user\u0027: username,"},{"line_number":46,"context_line":"                          \u0027user_domain\u0027: self.domain_name,"},{"line_number":47,"context_line":"                          \u0027role\u0027: role_name})"},{"line_number":48,"context_line":"        self.assertEqual(0, len(raw_output))"},{"line_number":49,"context_line":"        raw_output \u003d self.openstack("},{"line_number":50,"context_line":"            \u0027role list \u0027"},{"line_number":51,"context_line":"            \u0027--project %(project)s \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a061dce_0af350d7","line":48,"range":{"start_line":48,"start_character":13,"end_line":48,"end_character":24},"updated":"2016-04-06 08:14:02.000000000","message":"ditto","commit_id":"2804b98d49b52f5b8e63c18bcc63ac4c944985bf"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"0b8a83a2d4c8aab1777a4735587bf0c208bd301e","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                          \u0027user\u0027: username,"},{"line_number":46,"context_line":"                          \u0027user_domain\u0027: self.domain_name,"},{"line_number":47,"context_line":"                          \u0027role\u0027: role_name})"},{"line_number":48,"context_line":"        self.assertEqual(0, len(raw_output))"},{"line_number":49,"context_line":"        raw_output \u003d self.openstack("},{"line_number":50,"context_line":"            \u0027role list \u0027"},{"line_number":51,"context_line":"            \u0027--project %(project)s \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a061dce_b73264a5","line":48,"range":{"start_line":48,"start_character":13,"end_line":48,"end_character":24},"in_reply_to":"9a061dce_0af350d7","updated":"2016-04-06 18:56:56.000000000","message":"Done","commit_id":"2804b98d49b52f5b8e63c18bcc63ac4c944985bf"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"983c3079b4d1e3db6ad58773ec8adc0eb1fa7b49","unresolved":false,"context_lines":[{"line_number":130,"context_line":"                          \u0027user\u0027: username,"},{"line_number":131,"context_line":"                          \u0027user_domain\u0027: self.domain_name,"},{"line_number":132,"context_line":"                          \u0027role\u0027: role_name})"},{"line_number":133,"context_line":"        self.assertEqual(0, len(raw_output))"},{"line_number":134,"context_line":"        raw_output \u003d self.openstack("},{"line_number":135,"context_line":"            \u0027role remove \u0027"},{"line_number":136,"context_line":"            \u0027--project %(project)s \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a061dce_caa4b8a7","line":133,"range":{"start_line":133,"start_character":13,"end_line":133,"end_character":24},"updated":"2016-04-06 08:14:02.000000000","message":"please move the line to the end of the test case in order to \"role remove\" have chance to execute even if assert failed.","commit_id":"2804b98d49b52f5b8e63c18bcc63ac4c944985bf"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"0b8a83a2d4c8aab1777a4735587bf0c208bd301e","unresolved":false,"context_lines":[{"line_number":130,"context_line":"                          \u0027user\u0027: username,"},{"line_number":131,"context_line":"                          \u0027user_domain\u0027: self.domain_name,"},{"line_number":132,"context_line":"                          \u0027role\u0027: role_name})"},{"line_number":133,"context_line":"        self.assertEqual(0, len(raw_output))"},{"line_number":134,"context_line":"        raw_output \u003d self.openstack("},{"line_number":135,"context_line":"            \u0027role remove \u0027"},{"line_number":136,"context_line":"            \u0027--project %(project)s \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a061dce_f75a1cf1","line":133,"range":{"start_line":133,"start_character":13,"end_line":133,"end_character":24},"in_reply_to":"9a061dce_caa4b8a7","updated":"2016-04-06 18:56:56.000000000","message":"Done","commit_id":"2804b98d49b52f5b8e63c18bcc63ac4c944985bf"}]}
