)]}'
{"keystone/catalog/backends/templated.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"40685a4a73bc1559f6af75471eb0969e05d03218","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        return catalog"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    # (marcos-fermin-lobo) Question: Should be allowed to Create/Update/Delete"},{"line_number":132,"context_line":"    # endpoints, services and regions in this backend?"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    # Region CRUD"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"baa201ad_93e67e15","line":132,"updated":"2014-09-29 02:19:14.000000000","message":"definitely not","commit_id":"eb0d929bb26371690055fe343a3af4d0e9e981fd"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"40685a4a73bc1559f6af75471eb0969e05d03218","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        raise exception.NotImplemented()"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    def get_region(self, region_id):"},{"line_number":140,"context_line":"        region_list \u003d self.list_regions(None)"},{"line_number":141,"context_line":"        for region in region_list:"},{"line_number":142,"context_line":"            if region[\u0027id\u0027] \u003d\u003d region_id:"},{"line_number":143,"context_line":"                return region"}],"source_content_type":"text/x-python","patch_set":4,"id":"baa201ad_f3c42a61","line":140,"updated":"2014-09-29 02:19:14.000000000","message":"here you are passing None instead of []","commit_id":"eb0d929bb26371690055fe343a3af4d0e9e981fd"},{"author":{"_account_id":8533,"name":"Marcos Fermín Lobo","email":"lobo@lukos.org","username":"mlobo"},"change_message_id":"62054a2ded54c4b1a9933f7a61980b720d716f01","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        raise exception.NotImplemented()"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    def get_region(self, region_id):"},{"line_number":140,"context_line":"        region_list \u003d self.list_regions(None)"},{"line_number":141,"context_line":"        for region in region_list:"},{"line_number":142,"context_line":"            if region[\u0027id\u0027] \u003d\u003d region_id:"},{"line_number":143,"context_line":"                return region"}],"source_content_type":"text/x-python","patch_set":4,"id":"baa201ad_504e6f97","line":140,"in_reply_to":"baa201ad_f3c42a61","updated":"2014-10-02 08:14:23.000000000","message":"Done","commit_id":"eb0d929bb26371690055fe343a3af4d0e9e981fd"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"40685a4a73bc1559f6af75471eb0969e05d03218","unresolved":false,"context_lines":[{"line_number":175,"context_line":"    def delete_endpoint(self, endpoint_id):"},{"line_number":176,"context_line":"        raise exception.NotImplemented()"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def extract_interface_from_string(self, line):"},{"line_number":179,"context_line":"        \"\"\"Function used to obtain the value of \u0027url\u0027 in"},{"line_number":180,"context_line":"        default_catalog.templates line"},{"line_number":181,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"baa201ad_d3f006cc","line":178,"updated":"2014-09-29 02:19:14.000000000","message":"prefix this with an underscore\n\n  _extract_interface_from_string()","commit_id":"eb0d929bb26371690055fe343a3af4d0e9e981fd"},{"author":{"_account_id":8533,"name":"Marcos Fermín Lobo","email":"lobo@lukos.org","username":"mlobo"},"change_message_id":"62054a2ded54c4b1a9933f7a61980b720d716f01","unresolved":false,"context_lines":[{"line_number":175,"context_line":"    def delete_endpoint(self, endpoint_id):"},{"line_number":176,"context_line":"        raise exception.NotImplemented()"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def extract_interface_from_string(self, line):"},{"line_number":179,"context_line":"        \"\"\"Function used to obtain the value of \u0027url\u0027 in"},{"line_number":180,"context_line":"        default_catalog.templates line"},{"line_number":181,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"baa201ad_3032cb10","line":178,"in_reply_to":"baa201ad_d3f006cc","updated":"2014-10-02 08:14:23.000000000","message":"Done","commit_id":"eb0d929bb26371690055fe343a3af4d0e9e981fd"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"40685a4a73bc1559f6af75471eb0969e05d03218","unresolved":false,"context_lines":[{"line_number":229,"context_line":"    def create_service(self, service_id, service):"},{"line_number":230,"context_line":"        raise exception.NotImplemented()"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    def list_services(self, hints):"},{"line_number":233,"context_line":"        service_list \u003d []"},{"line_number":234,"context_line":"        # (marcos-fermin-lobo) There are no \u0027id\u0027 parameters on"},{"line_number":235,"context_line":"        # default_catalog.templates specification and the clients are"}],"source_content_type":"text/x-python","patch_set":4,"id":"baa201ad_93cd9e89","line":232,"updated":"2014-09-29 02:19:14.000000000","message":"i think you can default hints to None in the signature here - and not pass in an empty array at line 251, same for line 166","commit_id":"eb0d929bb26371690055fe343a3af4d0e9e981fd"},{"author":{"_account_id":8533,"name":"Marcos Fermín Lobo","email":"lobo@lukos.org","username":"mlobo"},"change_message_id":"62054a2ded54c4b1a9933f7a61980b720d716f01","unresolved":false,"context_lines":[{"line_number":229,"context_line":"    def create_service(self, service_id, service):"},{"line_number":230,"context_line":"        raise exception.NotImplemented()"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    def list_services(self, hints):"},{"line_number":233,"context_line":"        service_list \u003d []"},{"line_number":234,"context_line":"        # (marcos-fermin-lobo) There are no \u0027id\u0027 parameters on"},{"line_number":235,"context_line":"        # default_catalog.templates specification and the clients are"}],"source_content_type":"text/x-python","patch_set":4,"id":"baa201ad_cb0e3432","line":232,"in_reply_to":"baa201ad_93cd9e89","updated":"2014-10-02 08:14:23.000000000","message":"Done","commit_id":"eb0d929bb26371690055fe343a3af4d0e9e981fd"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"e332dc3457fd859382b8fbbdbc8ab862a21c1406","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        raise exception.NotImplemented()"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    def get_region(self, region_id):"},{"line_number":137,"context_line":"        region_list \u003d self.list_regions([])"},{"line_number":138,"context_line":"        for region in region_list:"},{"line_number":139,"context_line":"            if region[\u0027id\u0027] \u003d\u003d region_id:"},{"line_number":140,"context_line":"                return region"}],"source_content_type":"text/x-python","patch_set":5,"id":"baa201ad_0b0e728d","line":137,"updated":"2014-10-02 15:25:44.000000000","message":"same issue as other methods in previous patch, just pass () and change the signature to default hints to None.","commit_id":"6bc404561aa588d384a40606b6b6f2c27a8f6ccb"},{"author":{"_account_id":8533,"name":"Marcos Fermín Lobo","email":"lobo@lukos.org","username":"mlobo"},"change_message_id":"69637391bc7be9f25bc0f7a272e3910c2b97ec0a","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        raise exception.NotImplemented()"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    def get_region(self, region_id):"},{"line_number":137,"context_line":"        region_list \u003d self.list_regions([])"},{"line_number":138,"context_line":"        for region in region_list:"},{"line_number":139,"context_line":"            if region[\u0027id\u0027] \u003d\u003d region_id:"},{"line_number":140,"context_line":"                return region"}],"source_content_type":"text/x-python","patch_set":5,"id":"baa201ad_c0e195d1","line":137,"in_reply_to":"baa201ad_0b0e728d","updated":"2014-10-03 06:45:01.000000000","message":"Done","commit_id":"6bc404561aa588d384a40606b6b6f2c27a8f6ccb"},{"author":{"_account_id":9061,"name":"David Moreau Simard","email":"moi@dmsimard.com","username":"dmsimard"},"change_message_id":"e1a12aed5fa0b0ac5f7ed42931acaaa6c3fec20d","unresolved":false,"context_lines":[{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    def list_endpoints(self, hints\u003dNone):"},{"line_number":196,"context_line":"        endpoint_list \u003d []"},{"line_number":197,"context_line":"        # (marcos-fermin-lobo) There are no \u0027id\u0027 parameteres on"},{"line_number":198,"context_line":"        # default_catalog.templates specification and the clients are"},{"line_number":199,"context_line":"        # expecting \u0027id\u0027 parameter so, here we would use a simple counter."},{"line_number":200,"context_line":"        endpoint_id \u003d 1"}],"source_content_type":"text/x-python","patch_set":16,"id":"7aaa499b_e525a55c","line":197,"updated":"2015-04-10 20:22:32.000000000","message":"s/parameteres/parameters/","commit_id":"b93d35d119be50670dcb8f4896521259d7c651c8"}],"keystone/tests/test_backend_templated.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"40685a4a73bc1559f6af75471eb0969e05d03218","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        self.skipTest(\u0027Templated backend does not support hints\u0027)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def test_delete_endpoint(self):"},{"line_number":123,"context_line":"        self.skipTest(\u0027Templated backend does not support endpoint deletion\u0027)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def test_delete_endpoint_404(self):"},{"line_number":126,"context_line":"        self.skipTest(\u0027Templated backend does not support endpoint deletion\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"baa201ad_73b03af5","line":123,"updated":"2014-09-29 02:19:14.000000000","message":"instead of skip, can we catch the exception that is raised?","commit_id":"eb0d929bb26371690055fe343a3af4d0e9e981fd"},{"author":{"_account_id":8533,"name":"Marcos Fermín Lobo","email":"lobo@lukos.org","username":"mlobo"},"change_message_id":"62054a2ded54c4b1a9933f7a61980b720d716f01","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        self.skipTest(\u0027Templated backend does not support hints\u0027)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def test_delete_endpoint(self):"},{"line_number":123,"context_line":"        self.skipTest(\u0027Templated backend does not support endpoint deletion\u0027)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def test_delete_endpoint_404(self):"},{"line_number":126,"context_line":"        self.skipTest(\u0027Templated backend does not support endpoint deletion\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"baa201ad_2b9c20c0","line":123,"in_reply_to":"baa201ad_73b03af5","updated":"2014-10-02 08:14:23.000000000","message":"This catch exception, should be for all the \"not supported\" actions related to templated catalog?","commit_id":"eb0d929bb26371690055fe343a3af4d0e9e981fd"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"40685a4a73bc1559f6af75471eb0969e05d03218","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        self.skipTest(\u0027Templated backend does not support region cud\u0027)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def test_cache_layer_service_crud(self):"},{"line_number":162,"context_line":"        self.skipTest(\u0027Templated backend does not support service cud\u0027)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    def test_service_crud(self):"},{"line_number":165,"context_line":"        # create"}],"source_content_type":"text/x-python","patch_set":4,"id":"baa201ad_53ab3689","line":162,"updated":"2014-09-29 02:19:14.000000000","message":"s/cud/CRUD","commit_id":"eb0d929bb26371690055fe343a3af4d0e9e981fd"},{"author":{"_account_id":8533,"name":"Marcos Fermín Lobo","email":"lobo@lukos.org","username":"mlobo"},"change_message_id":"62054a2ded54c4b1a9933f7a61980b720d716f01","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        self.skipTest(\u0027Templated backend does not support region cud\u0027)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def test_cache_layer_service_crud(self):"},{"line_number":162,"context_line":"        self.skipTest(\u0027Templated backend does not support service cud\u0027)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    def test_service_crud(self):"},{"line_number":165,"context_line":"        # create"}],"source_content_type":"text/x-python","patch_set":4,"id":"baa201ad_8ba98ce1","line":162,"in_reply_to":"baa201ad_53ab3689","updated":"2014-10-02 08:14:23.000000000","message":"Done","commit_id":"eb0d929bb26371690055fe343a3af4d0e9e981fd"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"40685a4a73bc1559f6af75471eb0969e05d03218","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        # Templated backend does not support service creation"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        # list"},{"line_number":169,"context_line":"        service_id \u003d \u00271\u0027"},{"line_number":170,"context_line":"        services \u003d self.catalog_api.list_services()"},{"line_number":171,"context_line":"        self.assertIn(service_id, [x[\u0027id\u0027] for x in services])"},{"line_number":172,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"baa201ad_f39b4a70","line":169,"updated":"2014-09-29 02:19:14.000000000","message":"move this below, it\u0027s not needed until the assert","commit_id":"eb0d929bb26371690055fe343a3af4d0e9e981fd"},{"author":{"_account_id":8533,"name":"Marcos Fermín Lobo","email":"lobo@lukos.org","username":"mlobo"},"change_message_id":"62054a2ded54c4b1a9933f7a61980b720d716f01","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        # Templated backend does not support service creation"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        # list"},{"line_number":169,"context_line":"        service_id \u003d \u00271\u0027"},{"line_number":170,"context_line":"        services \u003d self.catalog_api.list_services()"},{"line_number":171,"context_line":"        self.assertIn(service_id, [x[\u0027id\u0027] for x in services])"},{"line_number":172,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"baa201ad_0b8cbc7e","line":169,"in_reply_to":"baa201ad_f39b4a70","updated":"2014-10-02 08:14:23.000000000","message":"Done","commit_id":"eb0d929bb26371690055fe343a3af4d0e9e981fd"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"40685a4a73bc1559f6af75471eb0969e05d03218","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        # list"},{"line_number":169,"context_line":"        service_id \u003d \u00271\u0027"},{"line_number":170,"context_line":"        services \u003d self.catalog_api.list_services()"},{"line_number":171,"context_line":"        self.assertIn(service_id, [x[\u0027id\u0027] for x in services])"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        # delete"},{"line_number":174,"context_line":"        # Templated backend does not support service deletion"}],"source_content_type":"text/x-python","patch_set":4,"id":"baa201ad_d39e4663","line":171,"updated":"2014-09-29 02:19:14.000000000","message":"what about the other properties?","commit_id":"eb0d929bb26371690055fe343a3af4d0e9e981fd"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"72089f937f05148a13d2bed006aa5d56d3f4938b","unresolved":false,"context_lines":[{"line_number":149,"context_line":"    def test_delete_service(self):"},{"line_number":150,"context_line":"        self.skipTest(\u0027Templated backend does not support service deletion\u0027)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def test_delete_service_404(self):"},{"line_number":153,"context_line":"        self.skipTest(\u0027Templated backend does not support service deletion\u0027)"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def test_delete_service_with_endpoint(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"baa201ad_8f15f1e6","line":152,"updated":"2014-10-03 15:11:45.000000000","message":"i think the names for these tests are slightly backwards...\n\nit should be test_service_delete_404 ... not sure why they are not being skipped.. http://logs.openstack.org/11/120011/6/check/gate-keystone-python26/3764230/testr_results.html.gz","commit_id":"1cca3fb49a3085ad7f14d728dcf41b5e0f8cd62c"},{"author":{"_account_id":8533,"name":"Marcos Fermín Lobo","email":"lobo@lukos.org","username":"mlobo"},"change_message_id":"a3b901955d3e68f1e3530977bd44f157f78bcd9e","unresolved":false,"context_lines":[{"line_number":149,"context_line":"    def test_delete_service(self):"},{"line_number":150,"context_line":"        self.skipTest(\u0027Templated backend does not support service deletion\u0027)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def test_delete_service_404(self):"},{"line_number":153,"context_line":"        self.skipTest(\u0027Templated backend does not support service deletion\u0027)"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def test_delete_service_with_endpoint(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"baa201ad_bcf51884","line":152,"in_reply_to":"baa201ad_8f15f1e6","updated":"2014-10-09 08:23:03.000000000","message":"Should I change more test names?, because I found a lot of variants about this kind of names.","commit_id":"1cca3fb49a3085ad7f14d728dcf41b5e0f8cd62c"}]}
