)]}'
{"openstackclient/identity/common.py":[{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"f18c9d1132400b2a02cfb40ea86781bcfd6b7191","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        return identity_client.services.find(name\u003dname_type_or_id)"},{"line_number":44,"context_line":"    except identity_exc.NotFound:"},{"line_number":45,"context_line":"        pass"},{"line_number":46,"context_line":"    except identity_exc.NoUniqueMatch:"},{"line_number":47,"context_line":"        msg \u003d _(\"Multiple service matches found for \u0027%s\u0027, \""},{"line_number":48,"context_line":"                \"use an ID to be more specific.\")"},{"line_number":49,"context_line":"        raise exceptions.CommandError(msg % name_type_or_id)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    try:"},{"line_number":52,"context_line":"        # search for service type"}],"source_content_type":"text/x-python","patch_set":12,"id":"dada55a8_e2445e1c","line":49,"range":{"start_line":46,"start_character":0,"end_line":49,"end_character":60},"updated":"2016-07-19 10:10:52.000000000","message":"Is there any test covered this part ?  Maybe we can add one with a fake NoUniqueMatch exception.","commit_id":"0e2f56d6e6f60e47224b23a092b9f422d44e1284"},{"author":{"_account_id":21514,"name":"Huanxuan Ao","email":"aohuanxuan@163.com","username":"aohuanxuan"},"change_message_id":"cd850f66c00a602eb6e9012c49d0fc0259a79c1f","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        return identity_client.services.find(name\u003dname_type_or_id)"},{"line_number":44,"context_line":"    except identity_exc.NotFound:"},{"line_number":45,"context_line":"        pass"},{"line_number":46,"context_line":"    except identity_exc.NoUniqueMatch:"},{"line_number":47,"context_line":"        msg \u003d _(\"Multiple service matches found for \u0027%s\u0027, \""},{"line_number":48,"context_line":"                \"use an ID to be more specific.\")"},{"line_number":49,"context_line":"        raise exceptions.CommandError(msg % name_type_or_id)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    try:"},{"line_number":52,"context_line":"        # search for service type"}],"source_content_type":"text/x-python","patch_set":12,"id":"dada55a8_4873c980","line":49,"range":{"start_line":46,"start_character":0,"end_line":49,"end_character":60},"in_reply_to":"dada55a8_e2445e1c","updated":"2016-07-19 11:00:29.000000000","message":"Good suggestion, I add a test about showing nounique service in identity v3, Thanks :)","commit_id":"0e2f56d6e6f60e47224b23a092b9f422d44e1284"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"631be5a29133769adcf70c556a6dad636145d52c","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        # search for service id"},{"line_number":34,"context_line":"        return identity_client.services.get(name_type_or_id)"},{"line_number":35,"context_line":"    except Exception as ex:"},{"line_number":36,"context_line":"        if type(ex).__name__ \u003d\u003d \u0027NotFound\u0027:"},{"line_number":37,"context_line":"            pass"},{"line_number":38,"context_line":"        else:"},{"line_number":39,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":15,"id":"dada55a8_302ace90","line":36,"range":{"start_line":36,"start_character":29,"end_line":36,"end_character":31},"updated":"2016-07-22 08:33:37.000000000","message":"if use \"!\u003d\", we can shorten two line code :-), and I think the following logic looks more clean\n\n    try:\n        # search for service id\n        return identity_client.services.get(name_type_or_id)\n    except identity_exc.NotFound:\n        # ignore NotFound exception, raise others\n        pass","commit_id":"70e6f9d580eb38f3ff2b536eb7c2a78ddd95c189"},{"author":{"_account_id":21514,"name":"Huanxuan Ao","email":"aohuanxuan@163.com","username":"aohuanxuan"},"change_message_id":"9985981caeedb5520c061caf6afe0326288f5d1a","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        # search for service id"},{"line_number":34,"context_line":"        return identity_client.services.get(name_type_or_id)"},{"line_number":35,"context_line":"    except Exception as ex:"},{"line_number":36,"context_line":"        if type(ex).__name__ \u003d\u003d \u0027NotFound\u0027:"},{"line_number":37,"context_line":"            pass"},{"line_number":38,"context_line":"        else:"},{"line_number":39,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":15,"id":"dada55a8_37f55bcb","line":36,"range":{"start_line":36,"start_character":29,"end_line":36,"end_character":31},"in_reply_to":"dada55a8_302ace90","updated":"2016-07-22 11:40:37.000000000","message":"Thank you for your great suggestion :)","commit_id":"70e6f9d580eb38f3ff2b536eb7c2a78ddd95c189"}],"openstackclient/tests/identity/v2_0/test_endpoint.py":[{"author":{"_account_id":21514,"name":"Huanxuan Ao","email":"aohuanxuan@163.com","username":"aohuanxuan"},"change_message_id":"6f41ab1629cade8d4bd35fd10e5e7fb6d2e2b516","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        self.endpoints_mock.get.return_value \u003d self.fake_endpoint"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        self.services_mock.get.return_value \u003d self.fake_service"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        self.endpoints_mock.delete.return_value \u003d None"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"dada55a8_8bf94983","side":"PARENT","line":107,"range":{"start_line":107,"start_character":8,"end_line":107,"end_character":63},"updated":"2016-07-19 07:52:07.000000000","message":"This is redundant in this test, so this patch also remove it.","commit_id":"60639d76a742852e18f9e2889c480be95596c268"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"f18c9d1132400b2a02cfb40ea86781bcfd6b7191","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        self.endpoints_mock.get.return_value \u003d self.fake_endpoint"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        self.services_mock.get.return_value \u003d self.fake_service"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        self.endpoints_mock.delete.return_value \u003d None"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"dada55a8_42972a90","side":"PARENT","line":107,"range":{"start_line":107,"start_character":8,"end_line":107,"end_character":63},"in_reply_to":"dada55a8_8bf94983","updated":"2016-07-19 10:10:52.000000000","message":"Good catch.","commit_id":"60639d76a742852e18f9e2889c480be95596c268"}],"openstackclient/tests/identity/v3/test_service.py":[{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"631be5a29133769adcf70c556a6dad636145d52c","unresolved":false,"context_lines":[{"line_number":505,"context_line":"        )"},{"line_number":506,"context_line":"        self.assertEqual(datalist, data)"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"    def test_service_show_nounique(self):"},{"line_number":509,"context_line":"        self.services_mock.find.side_effect \u003d identity_exc.NoUniqueMatch(None)"},{"line_number":510,"context_line":"        arglist \u003d ["},{"line_number":511,"context_line":"            identity_fakes.service_name,"}],"source_content_type":"text/x-python","patch_set":15,"id":"dada55a8_52ee2ab5","line":508,"updated":"2016-07-22 08:33:37.000000000","message":"I would like that the test case\u0027s added in v2.0 too","commit_id":"70e6f9d580eb38f3ff2b536eb7c2a78ddd95c189"},{"author":{"_account_id":21514,"name":"Huanxuan Ao","email":"aohuanxuan@163.com","username":"aohuanxuan"},"change_message_id":"9985981caeedb5520c061caf6afe0326288f5d1a","unresolved":false,"context_lines":[{"line_number":505,"context_line":"        )"},{"line_number":506,"context_line":"        self.assertEqual(datalist, data)"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"    def test_service_show_nounique(self):"},{"line_number":509,"context_line":"        self.services_mock.find.side_effect \u003d identity_exc.NoUniqueMatch(None)"},{"line_number":510,"context_line":"        arglist \u003d ["},{"line_number":511,"context_line":"            identity_fakes.service_name,"}],"source_content_type":"text/x-python","patch_set":15,"id":"dada55a8_17f2d706","line":508,"in_reply_to":"dada55a8_52ee2ab5","updated":"2016-07-22 11:40:37.000000000","message":"Done","commit_id":"70e6f9d580eb38f3ff2b536eb7c2a78ddd95c189"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"631be5a29133769adcf70c556a6dad636145d52c","unresolved":false,"context_lines":[{"line_number":515,"context_line":"        ]"},{"line_number":516,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"        self.assertRaises(exceptions.CommandError,"},{"line_number":519,"context_line":"                          self.cmd.take_action,"},{"line_number":520,"context_line":"                          parsed_args)"}],"source_content_type":"text/x-python","patch_set":15,"id":"dada55a8_38955588","line":518,"range":{"start_line":518,"start_character":37,"end_line":518,"end_character":50},"updated":"2016-07-22 08:33:37.000000000","message":"asserting the message of exception equal \"Multiple service matches found...\" that make sense, because the CommandError is raised too, but with different message \"NotFound\" before fixing the bug.","commit_id":"70e6f9d580eb38f3ff2b536eb7c2a78ddd95c189"},{"author":{"_account_id":21514,"name":"Huanxuan Ao","email":"aohuanxuan@163.com","username":"aohuanxuan"},"change_message_id":"9985981caeedb5520c061caf6afe0326288f5d1a","unresolved":false,"context_lines":[{"line_number":515,"context_line":"        ]"},{"line_number":516,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"        self.assertRaises(exceptions.CommandError,"},{"line_number":519,"context_line":"                          self.cmd.take_action,"},{"line_number":520,"context_line":"                          parsed_args)"}],"source_content_type":"text/x-python","patch_set":15,"id":"dada55a8_170e57e5","line":518,"range":{"start_line":518,"start_character":37,"end_line":518,"end_character":50},"in_reply_to":"dada55a8_38955588","updated":"2016-07-22 11:40:37.000000000","message":"Good idea! Thanks.","commit_id":"70e6f9d580eb38f3ff2b536eb7c2a78ddd95c189"}],"releasenotes/notes/bug-1597296-9735f33eacf5552e.yaml":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"8b32e086e83493bd96c975a10d41634c0052eee4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Fixed ``find_service()`` in identity to raise a NoUniqueMatch exception if"},{"line_number":4,"context_line":"    there are more than one services be found by one name."},{"line_number":5,"context_line":"    [Bug `1597296 \u003chttps://bugs.launchpad.net/python-openstackclient/+bug/1597296\u003e`]"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"dada55a8_5345f9b0","line":4,"updated":"2016-07-20 13:40:00.000000000","message":"find_service() is not meaningful to the end user, phrase this in therm that they will understand, like \u0027Fixed service name lookup in Identity commands to properly handle multiple matches\u0027.","commit_id":"9caaaf3d0cbf71c1faf0f4e2a3430ee599ffd7af"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"631be5a29133769adcf70c556a6dad636145d52c","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Fixed service name lookup in Identity commands to properly handle"},{"line_number":4,"context_line":"    multiple matches."},{"line_number":5,"context_line":"    [Bug `1597296 \u003chttps://bugs.launchpad.net/python-openstackclient/+bug/1597296\u003e`]"}],"source_content_type":"text/x-yaml","patch_set":15,"id":"dada55a8_7031e659","line":5,"updated":"2016-07-22 08:33:37.000000000","message":"lack a underline \"_\" at the end of URL.","commit_id":"70e6f9d580eb38f3ff2b536eb7c2a78ddd95c189"},{"author":{"_account_id":21514,"name":"Huanxuan Ao","email":"aohuanxuan@163.com","username":"aohuanxuan"},"change_message_id":"9985981caeedb5520c061caf6afe0326288f5d1a","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Fixed service name lookup in Identity commands to properly handle"},{"line_number":4,"context_line":"    multiple matches."},{"line_number":5,"context_line":"    [Bug `1597296 \u003chttps://bugs.launchpad.net/python-openstackclient/+bug/1597296\u003e`]"}],"source_content_type":"text/x-yaml","patch_set":15,"id":"dada55a8_57e60f17","line":5,"in_reply_to":"dada55a8_7031e659","updated":"2016-07-22 11:40:37.000000000","message":"Done","commit_id":"70e6f9d580eb38f3ff2b536eb7c2a78ddd95c189"}]}
