)]}'
{"openstackclient/identity/v3/catalog.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6f5dcb1018fac9017762277ff10b6472cf86a72b","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    return ret"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class ListCatalog(lister.Lister):"},{"line_number":35,"context_line":"    \"\"\"List services in the service catalog\"\"\""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    log \u003d logging.getLogger(__name__ + \u0027.ListCatalog\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_9bbbe4c3","line":34,"updated":"2015-03-04 17:09:45.000000000","message":"i\u0027m wondering if we can subclass the the v2 file? https://github.com/openstack/python-openstackclient/blob/master/openstackclient/identity/v2_0/catalog.py\n\nand provide our own _format_endpoints since that\u0027s the only thing that\u0027s different","commit_id":"c5f289d2512eca6a574d5b3583f86ba1bb6cf344"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"e575e06a4f26ca999c9183a32705fad4274d7d99","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    return ret"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class ListCatalog(lister.Lister):"},{"line_number":35,"context_line":"    \"\"\"List services in the service catalog\"\"\""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    log \u003d logging.getLogger(__name__ + \u0027.ListCatalog\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_d19e1d56","line":34,"in_reply_to":"9a80dd14_96bf3bd0","updated":"2015-03-04 17:48:29.000000000","message":"haha, sure, it was just an observation, not enough to -1","commit_id":"c5f289d2512eca6a574d5b3583f86ba1bb6cf344"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"2828e546612e37ddbdf1ced5a587b4052dcdd0b2","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    return ret"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class ListCatalog(lister.Lister):"},{"line_number":35,"context_line":"    \"\"\"List services in the service catalog\"\"\""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    log \u003d logging.getLogger(__name__ + \u0027.ListCatalog\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_96bf3bd0","line":34,"in_reply_to":"9a80dd14_9bbbe4c3","updated":"2015-03-04 17:26:02.000000000","message":"I must be hanging out with Dean too much lately, but I actually favor composition here.  I\u0027m happy to change it though if you guys like.","commit_id":"c5f289d2512eca6a574d5b3583f86ba1bb6cf344"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"cf5c773a412e66c599aa82517b2fb6a56cb3d2ab","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    return ret"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class ListCatalog(lister.Lister):"},{"line_number":35,"context_line":"    \"\"\"List services in the service catalog\"\"\""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    log \u003d logging.getLogger(__name__ + \u0027.ListCatalog\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_f6dcf776","line":34,"in_reply_to":"9a80dd14_9bbbe4c3","updated":"2015-03-06 02:46:30.000000000","message":"oh, you want to go there, do you? ;)","commit_id":"c5f289d2512eca6a574d5b3583f86ba1bb6cf344"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"cda54c4918f9138cd6acd4584ded8799f650b75f","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    return ret"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class ListCatalog(lister.Lister):"},{"line_number":35,"context_line":"    \"\"\"List services in the service catalog\"\"\""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    log \u003d logging.getLogger(__name__ + \u0027.ListCatalog\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_6630fd01","line":34,"in_reply_to":"9a80dd14_f6dcf776","updated":"2015-03-06 06:11:54.000000000","message":"I am fine having this as is, but if we\u0027re going to subclass it from the v2 class,  that would be even better.","commit_id":"c5f289d2512eca6a574d5b3583f86ba1bb6cf344"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"0f1780d06a9b97b205c0109cbf6c3657339be9cf","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from cliff import lister"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from openstackclient.common import utils"},{"line_number":21,"context_line":"from openstackclient.i18n import _  # noqa"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"def _format_endpoints(eps\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a80dd14_1e5767cb","line":21,"updated":"2015-03-06 17:57:19.000000000","message":"unused import","commit_id":"20bac960442f8b9331baabd2f920462a5f021605"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"8506f0748afe76bca7f300dfbd479cbd1eadc520","unresolved":false,"context_lines":[{"line_number":25,"context_line":"        return \"\""},{"line_number":26,"context_line":"    ret \u003d \u0027\u0027"},{"line_number":27,"context_line":"    for ep in eps:"},{"line_number":28,"context_line":"        region \u003d ep.get(\u0027region\u0027, \u0027\u003cnone\u003e\u0027)"},{"line_number":29,"context_line":"        ret +\u003d region + \u0027\\n\u0027"},{"line_number":30,"context_line":"        ret +\u003d \"  %s: %s\\n\" % (ep[\u0027interface\u0027], ep[\u0027url\u0027])"},{"line_number":31,"context_line":"    return ret"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a80dd14_cd7d191e","line":28,"updated":"2015-03-07 01:14:36.000000000","message":"I just remember for keystone v3, region has been deprecated for region_id\n\nhttp://specs.openstack.org/openstack/keystone-specs/api/v3/identity-api-v3.html#endpoints-v3-endpoints\n\nWe should be doing something like\n\nregion \u003d \u003cregion_id\u003e or \u003cregion\u003e or \u0027none\u0027","commit_id":"258ae9b9dbb925ae2c755398357db43e31a21d06"}]}
