)]}'
{"horizon/static/horizon/js/angular/controllers/namespace-controller.js":[{"author":{"_account_id":9622,"name":"Cindy Lu","email":"clu@us.ibm.com","username":"clu14"},"change_message_id":"7db7e41acd507cf50e6fd9ed86ae146dc53f364d","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    $scope.saveResourceTypes \u003d function() {"},{"line_number":8,"context_line":"        $scope.resource_types \u003d JSON.stringify($scope.resource_types);"},{"line_number":9,"context_line":"        $scope.namespace \u003d namespace;"},{"line_number":10,"context_line":"    };"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"  });"}],"source_content_type":"text/javascript","patch_set":46,"id":"baa201ad_172728cb","line":9,"updated":"2014-10-07 00:58:24.000000000","message":"nit: too much indent here","commit_id":"081b1d7883150932df7773cfc2708a384164a049"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"37bd02c062ab979f20ec4bddca8d78a5aff55dae","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    $scope.saveResourceTypes \u003d function() {"},{"line_number":8,"context_line":"        $scope.resource_types \u003d JSON.stringify($scope.resource_types);"},{"line_number":9,"context_line":"        $scope.namespace \u003d namespace;"},{"line_number":10,"context_line":"    };"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"  });"}],"source_content_type":"text/javascript","patch_set":46,"id":"baa201ad_237b0e29","line":9,"in_reply_to":"baa201ad_172728cb","updated":"2014-10-07 05:51:19.000000000","message":"Done","commit_id":"081b1d7883150932df7773cfc2708a384164a049"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"10cbfc9b223bc514953b9fffd84a49a8f24a985e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"angular.module(\u0027hz\u0027)"},{"line_number":2,"context_line":"  .controller(\u0027hzNamespaceResourceTypeFormController\u0027, function($scope, $window)"},{"line_number":3,"context_line":"  {"},{"line_number":4,"context_line":""}],"source_content_type":"text/javascript","patch_set":58,"id":"3a961159_1fbc056c","line":1,"updated":"2014-12-17 20:11:07.000000000","message":"Does this code needs to be wrapped in\n\n(function () {\n\u0027use strict\u0027;\n..\n}\n\n\nI remember in the first patch we had to do that, can\u0027t recall why? maybe to scope everything locally?","commit_id":"dd86a19cdbdafb9b28fdcff71345024cae02ae45"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"32191e679d53ff47801e90653c4e72f949e7d99e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"angular.module(\u0027hz\u0027)"},{"line_number":2,"context_line":"  .controller(\u0027hzNamespaceResourceTypeFormController\u0027, function($scope, $window)"},{"line_number":3,"context_line":"  {"},{"line_number":4,"context_line":""}],"source_content_type":"text/javascript","patch_set":58,"id":"3a961159_cbac7f8f","line":1,"in_reply_to":"3a961159_1fbc056c","updated":"2014-12-17 23:16:10.000000000","message":"Yes, that is a scoping thing.  Thanks!\n\nDone","commit_id":"dd86a19cdbdafb9b28fdcff71345024cae02ae45"}],"openstack_dashboard/api/glance.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"47c9989835430cb97b6b66fc6ac0eb25a87f7269","unresolved":false,"context_lines":[{"line_number":292,"context_line":"    return result"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"def metadefs_namespace_add_resource_type(request,"},{"line_number":296,"context_line":"                                         namespace_name,"},{"line_number":297,"context_line":"                                         resource_type):"},{"line_number":298,"context_line":"    glanceclient(request, \u00272\u0027).metadefs_resource_type.associate("}],"source_content_type":"text/x-python","patch_set":25,"id":"1abeadc6_035e88e9","line":295,"updated":"2014-08-26 07:28:17.000000000","message":"I think this should be renamed to metadefs_resource_type_associate as it doesn\u0027t add resource type but relation between namespace and resource type.","commit_id":"f7e384c5be2f7bbe867b1b756610149f899c0a12"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"47c9989835430cb97b6b66fc6ac0eb25a87f7269","unresolved":false,"context_lines":[{"line_number":299,"context_line":"        namespace_name, **resource_type)"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"def metadefs_namespace_remove_resource_type(request,"},{"line_number":303,"context_line":"                                            namespace_name,"},{"line_number":304,"context_line":"                                            resource_type_name):"},{"line_number":305,"context_line":"    glanceclient(request, \u00272\u0027).metadefs_resource_type.deassociate("}],"source_content_type":"text/x-python","patch_set":25,"id":"1abeadc6_83f8d8c5","line":302,"updated":"2014-08-26 07:28:17.000000000","message":"I think deassociate also fits better here.","commit_id":"f7e384c5be2f7bbe867b1b756610149f899c0a12"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":256,"context_line":"def metadefs_namespace_resource_types(request, namespace_name):"},{"line_number":257,"context_line":"    resource_types \u003d \\"},{"line_number":258,"context_line":"        glanceclient(request, \u00272\u0027).metadefs_resource_type.get(namespace_name)"},{"line_number":259,"context_line":"    result \u003d []"},{"line_number":260,"context_line":"    for resource_type in resource_types:"},{"line_number":261,"context_line":"        result.append(resource_type)"},{"line_number":262,"context_line":"    return result"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_8dceb92b","line":259,"updated":"2014-09-12 03:22:11.000000000","message":"What is the conversion to array for?\n\nalternatively you can just use:\nreturn [resource_type for resource_type in resource_types]","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":256,"context_line":"def metadefs_namespace_resource_types(request, namespace_name):"},{"line_number":257,"context_line":"    resource_types \u003d \\"},{"line_number":258,"context_line":"        glanceclient(request, \u00272\u0027).metadefs_resource_type.get(namespace_name)"},{"line_number":259,"context_line":"    result \u003d []"},{"line_number":260,"context_line":"    for resource_type in resource_types:"},{"line_number":261,"context_line":"        result.append(resource_type)"},{"line_number":262,"context_line":"    return result"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_6f96e23f","line":259,"in_reply_to":"fa98f980_8dceb92b","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":265,"context_line":"def metadefs_namespace_add_resource_type(request,"},{"line_number":266,"context_line":"                                         namespace_name,"},{"line_number":267,"context_line":"                                         resource_type):"},{"line_number":268,"context_line":"    glanceclient(request, \u00272\u0027).metadefs_resource_type.associate("},{"line_number":269,"context_line":"        namespace_name, **resource_type)"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":""}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_0de2c99f","line":268,"updated":"2014-09-12 03:22:11.000000000","message":"Does this have  a return value like the id of the resource type created?","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":265,"context_line":"def metadefs_namespace_add_resource_type(request,"},{"line_number":266,"context_line":"                                         namespace_name,"},{"line_number":267,"context_line":"                                         resource_type):"},{"line_number":268,"context_line":"    glanceclient(request, \u00272\u0027).metadefs_resource_type.associate("},{"line_number":269,"context_line":"        namespace_name, **resource_type)"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":""}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_8f9b0665","line":268,"in_reply_to":"fa98f980_0de2c99f","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"33ad2a85fbbf0f3b70462e944ad0829a133ab405","unresolved":false,"context_lines":[{"line_number":247,"context_line":""},{"line_number":248,"context_line":"def metadefs_resource_types_list(request):"},{"line_number":249,"context_line":"    resource_types \u003d glanceclient(request, \u00272\u0027).metadefs_resource_type.list()"},{"line_number":250,"context_line":"    result \u003d []"},{"line_number":251,"context_line":"    for resource_type in resource_types:"},{"line_number":252,"context_line":"        result.append(resource_type)"},{"line_number":253,"context_line":"    return result"}],"source_content_type":"text/x-python","patch_set":43,"id":"fa98f980_a758b18a","line":250,"updated":"2014-09-15 18:32:12.000000000","message":"What is the conversion to array for?\n\nalternatively you can just use: return [resource_type for resource_type in resource_types]\n\nThis was from my old comment patchset 41","commit_id":"f634ad89076261f4f26fc07f5ebf63fae0bd88e4"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"7a51ae168fc71296eec5bcbc71cb0813fd920a46","unresolved":false,"context_lines":[{"line_number":247,"context_line":""},{"line_number":248,"context_line":"def metadefs_resource_types_list(request):"},{"line_number":249,"context_line":"    resource_types \u003d glanceclient(request, \u00272\u0027).metadefs_resource_type.list()"},{"line_number":250,"context_line":"    result \u003d []"},{"line_number":251,"context_line":"    for resource_type in resource_types:"},{"line_number":252,"context_line":"        result.append(resource_type)"},{"line_number":253,"context_line":"    return result"}],"source_content_type":"text/x-python","patch_set":43,"id":"fa98f980_ca8a19be","line":250,"in_reply_to":"fa98f980_a758b18a","updated":"2014-09-15 21:28:56.000000000","message":"Was using it with debugging.  Was easier to pause the breakpoint.  Thanks for catching.","commit_id":"f634ad89076261f4f26fc07f5ebf63fae0bd88e4"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"236c6d0a253dd7c4cdd2f6cfbf9fcc2c8efd1f53","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    def as_json(self, indent\u003d4):"},{"line_number":149,"context_line":"        result \u003d collections.OrderedDict()"},{"line_number":150,"context_line":"        for attr in self._attrs:"},{"line_number":151,"context_line":"            if hasattr(self, attr) and getattr(self, attr):"},{"line_number":152,"context_line":"                result[attr] \u003d getattr(self, attr)"},{"line_number":153,"context_line":"        return json.dumps(result, indent\u003dindent)"},{"line_number":154,"context_line":""}],"source_content_type":"text/x-python","patch_set":50,"id":"5a890539_7b6bbdb8","line":151,"updated":"2014-12-04 19:47:04.000000000","message":"This statement could be replaced with shorter one - if getattr(self, attr, None):","commit_id":"ff98fbda31cda6fc7e4053828f39f084add841c0"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"d8e08b787b66f7e451f3cc6092d829a5f2a37dd9","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    def as_json(self, indent\u003d4):"},{"line_number":149,"context_line":"        result \u003d collections.OrderedDict()"},{"line_number":150,"context_line":"        for attr in self._attrs:"},{"line_number":151,"context_line":"            if hasattr(self, attr) and getattr(self, attr):"},{"line_number":152,"context_line":"                result[attr] \u003d getattr(self, attr)"},{"line_number":153,"context_line":"        return json.dumps(result, indent\u003dindent)"},{"line_number":154,"context_line":""}],"source_content_type":"text/x-python","patch_set":50,"id":"3a961159_2733baf7","line":151,"in_reply_to":"5a890539_7b6bbdb8","updated":"2014-12-16 06:52:55.000000000","message":"Done","commit_id":"ff98fbda31cda6fc7e4053828f39f084add841c0"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"236c6d0a253dd7c4cdd2f6cfbf9fcc2c8efd1f53","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        if result:"},{"line_number":167,"context_line":"            result.sort()"},{"line_number":168,"context_line":"        else:"},{"line_number":169,"context_line":"            result \u003d []"},{"line_number":170,"context_line":"        return result"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":50,"id":"5a890539_9b578900","line":169,"updated":"2014-12-04 19:47:04.000000000","message":"The variable result will always be a list (empty or non-empty), so why not just remove the whole if statement and replace it with result.sort()? Sorting empty list has no effect, but the code will be little more cleaner (shorter).","commit_id":"ff98fbda31cda6fc7e4053828f39f084add841c0"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"d8e08b787b66f7e451f3cc6092d829a5f2a37dd9","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        if result:"},{"line_number":167,"context_line":"            result.sort()"},{"line_number":168,"context_line":"        else:"},{"line_number":169,"context_line":"            result \u003d []"},{"line_number":170,"context_line":"        return result"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":50,"id":"3a961159_4730c6e8","line":169,"in_reply_to":"5a890539_9b578900","updated":"2014-12-16 06:52:55.000000000","message":"Done","commit_id":"ff98fbda31cda6fc7e4053828f39f084add841c0"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"279bf5fd864b24e06d77cf3e7536f6135bf74dff","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        result \u003d [resource_type[\u0027name\u0027] for resource_type in"},{"line_number":163,"context_line":"                  getattr(self._apiresource, \u0027resource_type_associations\u0027)]"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        return result.sort()"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    @property"},{"line_number":168,"context_line":"    def public(self):"}],"source_content_type":"text/x-python","patch_set":53,"id":"3a961159_c582ebc7","line":165,"updated":"2014-12-16 09:43:17.000000000","message":"sort method do in-place sorting, so this line will always return None. You should use sorted(result) function here.","commit_id":"78ba8dfce2b51ed3933a83096d73e1d6133d4cf8"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"ed480c5af0b2a62f109e35b928a251b2d1f65c56","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        result \u003d [resource_type[\u0027name\u0027] for resource_type in"},{"line_number":163,"context_line":"                  getattr(self._apiresource, \u0027resource_type_associations\u0027)]"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        return result.sort()"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    @property"},{"line_number":168,"context_line":"    def public(self):"}],"source_content_type":"text/x-python","patch_set":53,"id":"3a961159_7c7b7329","line":165,"in_reply_to":"3a961159_c582ebc7","updated":"2014-12-17 00:16:02.000000000","message":"Done","commit_id":"78ba8dfce2b51ed3933a83096d73e1d6133d4cf8"},{"author":{"_account_id":5623,"name":"David Lyle","email":"dklyle0@gmail.com","username":"david-lyle"},"change_message_id":"f46485d1c91de7e73bad5ce4bbefa61aae453d48","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    def as_json(self, indent\u003d4):"},{"line_number":147,"context_line":"        result \u003d collections.OrderedDict()"},{"line_number":148,"context_line":"        for attr in self._attrs:"},{"line_number":149,"context_line":"            if getattr(self, attr, None):"},{"line_number":150,"context_line":"                result[attr] \u003d getattr(self, attr)"},{"line_number":151,"context_line":"        return json.dumps(result, indent\u003dindent)"},{"line_number":152,"context_line":""}],"source_content_type":"text/x-python","patch_set":55,"id":"3a961159_3cb00bdd","line":149,"updated":"2014-12-17 00:53:10.000000000","message":"why is this changed? hasattr will return True or False","commit_id":"339651cf72cbfa7847123310f3a8c199f2dd0f2d"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"8378ed838863f0677df9882f337939e389e0e9ee","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    def as_json(self, indent\u003d4):"},{"line_number":147,"context_line":"        result \u003d collections.OrderedDict()"},{"line_number":148,"context_line":"        for attr in self._attrs:"},{"line_number":149,"context_line":"            if getattr(self, attr, None):"},{"line_number":150,"context_line":"                result[attr] \u003d getattr(self, attr)"},{"line_number":151,"context_line":"        return json.dumps(result, indent\u003dindent)"},{"line_number":152,"context_line":""}],"source_content_type":"text/x-python","patch_set":55,"id":"3a961159_d6c34a36","line":149,"in_reply_to":"3a961159_3cb00bdd","updated":"2014-12-17 17:18:28.000000000","message":"Hmm... was addressing an earlier comment somewhat blindly and probably could have consolidated to a single step (eliminate if). But you are right, this is purposely being checked so that you don\u0027t add the attr at all to the result object if it doesn\u0027t exist.\n\nReverted.","commit_id":"339651cf72cbfa7847123310f3a8c199f2dd0f2d"},{"author":{"_account_id":5623,"name":"David Lyle","email":"dklyle0@gmail.com","username":"david-lyle"},"change_message_id":"f46485d1c91de7e73bad5ce4bbefa61aae453d48","unresolved":false,"context_lines":[{"line_number":205,"context_line":"             giving them a potentially unpredictable sort result when using"},{"line_number":206,"context_line":"             create_at."},{"line_number":207,"context_line":"    :param filters: specifies addition fields to filter on such as name."},{"line_number":208,"context_line":"    :returns current page results, true if previous data, false if more data."},{"line_number":209,"context_line":"    \"\"\""},{"line_number":210,"context_line":"    limit \u003d getattr(settings, \u0027API_RESULT_LIMIT\u0027, 1000)"},{"line_number":211,"context_line":"    page_size \u003d utils.get_page_size(request)"}],"source_content_type":"text/x-python","patch_set":55,"id":"3a961159_5cecf7c7","line":208,"updated":"2014-12-17 00:53:10.000000000","message":"The conditions on the last two values returned is confusing.","commit_id":"339651cf72cbfa7847123310f3a8c199f2dd0f2d"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"8378ed838863f0677df9882f337939e389e0e9ee","unresolved":false,"context_lines":[{"line_number":205,"context_line":"             giving them a potentially unpredictable sort result when using"},{"line_number":206,"context_line":"             create_at."},{"line_number":207,"context_line":"    :param filters: specifies addition fields to filter on such as name."},{"line_number":208,"context_line":"    :returns current page results, true if previous data, false if more data."},{"line_number":209,"context_line":"    \"\"\""},{"line_number":210,"context_line":"    limit \u003d getattr(settings, \u0027API_RESULT_LIMIT\u0027, 1000)"},{"line_number":211,"context_line":"    page_size \u003d utils.get_page_size(request)"}],"source_content_type":"text/x-python","patch_set":55,"id":"3a961159_76b7f6f5","line":208,"in_reply_to":"3a961159_5cecf7c7","updated":"2014-12-17 17:18:28.000000000","message":"Yeah, that\u0027s pretty bad.  That\u0027s what I get for breaking convention and adding docstrings!\n\nFixed!","commit_id":"339651cf72cbfa7847123310f3a8c199f2dd0f2d"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"10cbfc9b223bc514953b9fffd84a49a8f24a985e","unresolved":false,"context_lines":[{"line_number":266,"context_line":""},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"def metadefs_resource_types_list(request):"},{"line_number":269,"context_line":"    resource_types \u003d glanceclient(request, \u00272\u0027).metadefs_resource_type.list()"},{"line_number":270,"context_line":"    return list(resource_types)"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":""}],"source_content_type":"text/x-python","patch_set":58,"id":"3a961159_ca1c7d6d","line":269,"updated":"2014-12-17 20:11:07.000000000","message":"Does this also return a generator? wondering why we need to wrap this in a list().","commit_id":"dd86a19cdbdafb9b28fdcff71345024cae02ae45"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"32191e679d53ff47801e90653c4e72f949e7d99e","unresolved":false,"context_lines":[{"line_number":266,"context_line":""},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"def metadefs_resource_types_list(request):"},{"line_number":269,"context_line":"    resource_types \u003d glanceclient(request, \u00272\u0027).metadefs_resource_type.list()"},{"line_number":270,"context_line":"    return list(resource_types)"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":""}],"source_content_type":"text/x-python","patch_set":58,"id":"3a961159_6be0ebfa","line":269,"in_reply_to":"3a961159_ca1c7d6d","updated":"2014-12-17 23:16:10.000000000","message":"No, it doesn\u0027t... Done","commit_id":"dd86a19cdbdafb9b28fdcff71345024cae02ae45"}],"openstack_dashboard/dashboards/admin/metadata_defs/constants.py":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"33ad2a85fbbf0f3b70462e944ad0829a133ab405","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"METADATA_CREATE_TEMPLATE \u003d \u0027admin/metadata_defs/create.html\u0027"},{"line_number":16,"context_line":"METADATA_CREATE_REVERSE \u003d \"horizon:admin:metadata_defs:create\""},{"line_number":17,"context_line":"METADATA_DETAIL_OVERVIEW_TEMPLATE \u003d \"admin/metadata_defs/_detail_overview.html\""},{"line_number":18,"context_line":"METADATA_DETAIL_CONTENTS_TEMPLATE \u003d \"admin/metadata_defs/_detail_contents.html\""},{"line_number":19,"context_line":"METADATA_DETAIL_TEMPLATE \u003d \u0027admin/metadata_defs/detail.html\u0027"}],"source_content_type":"text/x-python","patch_set":43,"id":"fa98f980_8779ed94","line":16,"updated":"2014-09-15 18:32:12.000000000","message":"The suffix sounds confusing, this is the URL in namespace format. Just using _URL for the suffix might be better.","commit_id":"f634ad89076261f4f26fc07f5ebf63fae0bd88e4"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"7a51ae168fc71296eec5bcbc71cb0813fd920a46","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"METADATA_CREATE_TEMPLATE \u003d \u0027admin/metadata_defs/create.html\u0027"},{"line_number":16,"context_line":"METADATA_CREATE_REVERSE \u003d \"horizon:admin:metadata_defs:create\""},{"line_number":17,"context_line":"METADATA_DETAIL_OVERVIEW_TEMPLATE \u003d \"admin/metadata_defs/_detail_overview.html\""},{"line_number":18,"context_line":"METADATA_DETAIL_CONTENTS_TEMPLATE \u003d \"admin/metadata_defs/_detail_contents.html\""},{"line_number":19,"context_line":"METADATA_DETAIL_TEMPLATE \u003d \u0027admin/metadata_defs/detail.html\u0027"}],"source_content_type":"text/x-python","patch_set":43,"id":"fa98f980_0a4c21c7","line":16,"in_reply_to":"fa98f980_8779ed94","updated":"2014-09-15 21:28:56.000000000","message":"Done","commit_id":"f634ad89076261f4f26fc07f5ebf63fae0bd88e4"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"33ad2a85fbbf0f3b70462e944ad0829a133ab405","unresolved":false,"context_lines":[{"line_number":17,"context_line":"METADATA_DETAIL_OVERVIEW_TEMPLATE \u003d \"admin/metadata_defs/_detail_overview.html\""},{"line_number":18,"context_line":"METADATA_DETAIL_CONTENTS_TEMPLATE \u003d \"admin/metadata_defs/_detail_contents.html\""},{"line_number":19,"context_line":"METADATA_DETAIL_TEMPLATE \u003d \u0027admin/metadata_defs/detail.html\u0027"},{"line_number":20,"context_line":"METADATA_DETAIL_REVERSE \u003d \"horizon:admin:metadata_defs:detail\""},{"line_number":21,"context_line":"METADATA_INDEX_TEMPLATE \u003d \u0027admin/metadata_defs/index.html\u0027"},{"line_number":22,"context_line":"METADATA_INDEX_REVERSE \u003d \u0027horizon:admin:metadata_defs:index\u0027"},{"line_number":23,"context_line":"METADATA_MANAGE_RESOURCES_TEMPLATE \u003d \u0027admin/metadata_defs/resource_types.html\u0027"}],"source_content_type":"text/x-python","patch_set":43,"id":"fa98f980_a76c31d1","line":20,"updated":"2014-09-15 18:32:12.000000000","message":"same here","commit_id":"f634ad89076261f4f26fc07f5ebf63fae0bd88e4"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"7a51ae168fc71296eec5bcbc71cb0813fd920a46","unresolved":false,"context_lines":[{"line_number":17,"context_line":"METADATA_DETAIL_OVERVIEW_TEMPLATE \u003d \"admin/metadata_defs/_detail_overview.html\""},{"line_number":18,"context_line":"METADATA_DETAIL_CONTENTS_TEMPLATE \u003d \"admin/metadata_defs/_detail_contents.html\""},{"line_number":19,"context_line":"METADATA_DETAIL_TEMPLATE \u003d \u0027admin/metadata_defs/detail.html\u0027"},{"line_number":20,"context_line":"METADATA_DETAIL_REVERSE \u003d \"horizon:admin:metadata_defs:detail\""},{"line_number":21,"context_line":"METADATA_INDEX_TEMPLATE \u003d \u0027admin/metadata_defs/index.html\u0027"},{"line_number":22,"context_line":"METADATA_INDEX_REVERSE \u003d \u0027horizon:admin:metadata_defs:index\u0027"},{"line_number":23,"context_line":"METADATA_MANAGE_RESOURCES_TEMPLATE \u003d \u0027admin/metadata_defs/resource_types.html\u0027"}],"source_content_type":"text/x-python","patch_set":43,"id":"fa98f980_2a4725a4","line":20,"in_reply_to":"fa98f980_a76c31d1","updated":"2014-09-15 21:28:56.000000000","message":"Done","commit_id":"f634ad89076261f4f26fc07f5ebf63fae0bd88e4"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"33ad2a85fbbf0f3b70462e944ad0829a133ab405","unresolved":false,"context_lines":[{"line_number":19,"context_line":"METADATA_DETAIL_TEMPLATE \u003d \u0027admin/metadata_defs/detail.html\u0027"},{"line_number":20,"context_line":"METADATA_DETAIL_REVERSE \u003d \"horizon:admin:metadata_defs:detail\""},{"line_number":21,"context_line":"METADATA_INDEX_TEMPLATE \u003d \u0027admin/metadata_defs/index.html\u0027"},{"line_number":22,"context_line":"METADATA_INDEX_REVERSE \u003d \u0027horizon:admin:metadata_defs:index\u0027"},{"line_number":23,"context_line":"METADATA_MANAGE_RESOURCES_TEMPLATE \u003d \u0027admin/metadata_defs/resource_types.html\u0027"},{"line_number":24,"context_line":"METADATA_MANAGE_RESOURCES_REVERSE \u003d \\"},{"line_number":25,"context_line":"    \u0027horizon:admin:metadata_defs:resource_types\u0027"}],"source_content_type":"text/x-python","patch_set":43,"id":"fa98f980_276041ce","line":22,"updated":"2014-09-15 18:32:12.000000000","message":"same here","commit_id":"f634ad89076261f4f26fc07f5ebf63fae0bd88e4"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"7a51ae168fc71296eec5bcbc71cb0813fd920a46","unresolved":false,"context_lines":[{"line_number":19,"context_line":"METADATA_DETAIL_TEMPLATE \u003d \u0027admin/metadata_defs/detail.html\u0027"},{"line_number":20,"context_line":"METADATA_DETAIL_REVERSE \u003d \"horizon:admin:metadata_defs:detail\""},{"line_number":21,"context_line":"METADATA_INDEX_TEMPLATE \u003d \u0027admin/metadata_defs/index.html\u0027"},{"line_number":22,"context_line":"METADATA_INDEX_REVERSE \u003d \u0027horizon:admin:metadata_defs:index\u0027"},{"line_number":23,"context_line":"METADATA_MANAGE_RESOURCES_TEMPLATE \u003d \u0027admin/metadata_defs/resource_types.html\u0027"},{"line_number":24,"context_line":"METADATA_MANAGE_RESOURCES_REVERSE \u003d \\"},{"line_number":25,"context_line":"    \u0027horizon:admin:metadata_defs:resource_types\u0027"}],"source_content_type":"text/x-python","patch_set":43,"id":"fa98f980_4ac9c924","line":22,"in_reply_to":"fa98f980_276041ce","updated":"2014-09-15 21:28:56.000000000","message":"Done","commit_id":"f634ad89076261f4f26fc07f5ebf63fae0bd88e4"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"33ad2a85fbbf0f3b70462e944ad0829a133ab405","unresolved":false,"context_lines":[{"line_number":21,"context_line":"METADATA_INDEX_TEMPLATE \u003d \u0027admin/metadata_defs/index.html\u0027"},{"line_number":22,"context_line":"METADATA_INDEX_REVERSE \u003d \u0027horizon:admin:metadata_defs:index\u0027"},{"line_number":23,"context_line":"METADATA_MANAGE_RESOURCES_TEMPLATE \u003d \u0027admin/metadata_defs/resource_types.html\u0027"},{"line_number":24,"context_line":"METADATA_MANAGE_RESOURCES_REVERSE \u003d \\"},{"line_number":25,"context_line":"    \u0027horizon:admin:metadata_defs:resource_types\u0027"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"METADEFS_PROTECTED_PROPS \u003d [\u0027created_at\u0027, \u0027updated_at\u0027, \u0027owner\u0027, \u0027schema\u0027]"}],"source_content_type":"text/x-python","patch_set":43,"id":"fa98f980_475b8521","line":24,"updated":"2014-09-15 18:32:12.000000000","message":"same here","commit_id":"f634ad89076261f4f26fc07f5ebf63fae0bd88e4"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"7a51ae168fc71296eec5bcbc71cb0813fd920a46","unresolved":false,"context_lines":[{"line_number":21,"context_line":"METADATA_INDEX_TEMPLATE \u003d \u0027admin/metadata_defs/index.html\u0027"},{"line_number":22,"context_line":"METADATA_INDEX_REVERSE \u003d \u0027horizon:admin:metadata_defs:index\u0027"},{"line_number":23,"context_line":"METADATA_MANAGE_RESOURCES_TEMPLATE \u003d \u0027admin/metadata_defs/resource_types.html\u0027"},{"line_number":24,"context_line":"METADATA_MANAGE_RESOURCES_REVERSE \u003d \\"},{"line_number":25,"context_line":"    \u0027horizon:admin:metadata_defs:resource_types\u0027"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"METADEFS_PROTECTED_PROPS \u003d [\u0027created_at\u0027, \u0027updated_at\u0027, \u0027owner\u0027, \u0027schema\u0027]"}],"source_content_type":"text/x-python","patch_set":43,"id":"fa98f980_6acccd35","line":24,"in_reply_to":"fa98f980_475b8521","updated":"2014-09-15 21:28:56.000000000","message":"Done","commit_id":"f634ad89076261f4f26fc07f5ebf63fae0bd88e4"}],"openstack_dashboard/dashboards/admin/metadata_defs/forms.py":[{"author":{"_account_id":6650,"name":"Eric Peterson","email":"ejpetey@gmail.com","username":"ericpeterson-l"},"change_message_id":"bf8f23991d90c6e31d6da627160dfa44e4f46df7","unresolved":false,"context_lines":[{"line_number":87,"context_line":"            except Exception as e:"},{"line_number":88,"context_line":"                msg \u003d _(\u0027There was a problem parsing the namespace: %(error)s\u0027)"},{"line_number":89,"context_line":"                msg \u003d msg % {\u0027error\u0027: e}"},{"line_number":90,"context_line":"                raise forms.ValidationError(msg)"},{"line_number":91,"context_line":"        else:"},{"line_number":92,"context_line":"            namespace \u003d json.loads(data[\u0027direct_input\u0027])"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"baada198_dd15ed4c","line":90,"updated":"2014-08-08 16:20:28.000000000","message":"is there a reason to not use the django field clean methods to do this??\nhttps://docs.djangoproject.com/en/dev/ref/forms/validation/#cleaning-a-specific-field-attribute","commit_id":"125d80e042a7d93ab53b55a58e505d0bb8bddc67"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"574d420e89a39d33498888e2598ad1b8aca54b52","unresolved":false,"context_lines":[{"line_number":87,"context_line":"            except Exception as e:"},{"line_number":88,"context_line":"                msg \u003d _(\u0027There was a problem parsing the namespace: %(error)s\u0027)"},{"line_number":89,"context_line":"                msg \u003d msg % {\u0027error\u0027: e}"},{"line_number":90,"context_line":"                raise forms.ValidationError(msg)"},{"line_number":91,"context_line":"        else:"},{"line_number":92,"context_line":"            namespace \u003d json.loads(data[\u0027direct_input\u0027])"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7ac7a964_39520b14","line":90,"in_reply_to":"baada198_dd15ed4c","updated":"2014-08-26 03:32:00.000000000","message":"Done","commit_id":"125d80e042a7d93ab53b55a58e505d0bb8bddc67"},{"author":{"_account_id":8642,"name":"Lukasz Jernas","email":"deejay1@srem.org","username":"deejay1"},"change_message_id":"843095ef7723d9c5cfd68777a226385677414b6b","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        if metadata_raw and metadef_file:"},{"line_number":76,"context_line":"            raise ValidationError("},{"line_number":77,"context_line":"                _(\"Can not specify both file and direct input.\"))"},{"line_number":78,"context_line":"        if not metadata_raw and not metadef_file:"},{"line_number":79,"context_line":"            raise ValidationError("},{"line_number":80,"context_line":"                _(\"No input was provided for the namespace content.\"))"}],"source_content_type":"text/x-python","patch_set":32,"id":"fa98f980_ffbbe46f","line":77,"updated":"2014-09-01 15:23:06.000000000","message":"Cannot?","commit_id":"b2d62877809c394c8024c0a66ec8003e85cc8e40"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"f8cfe73b2bfa625cf84b9fce1601e4a0da2e62b5","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        if metadata_raw and metadef_file:"},{"line_number":76,"context_line":"            raise ValidationError("},{"line_number":77,"context_line":"                _(\"Can not specify both file and direct input.\"))"},{"line_number":78,"context_line":"        if not metadata_raw and not metadef_file:"},{"line_number":79,"context_line":"            raise ValidationError("},{"line_number":80,"context_line":"                _(\"No input was provided for the namespace content.\"))"}],"source_content_type":"text/x-python","patch_set":32,"id":"fa98f980_160a4a8a","line":77,"in_reply_to":"fa98f980_ffbbe46f","updated":"2014-09-01 17:26:55.000000000","message":"Done","commit_id":"b2d62877809c394c8024c0a66ec8003e85cc8e40"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"#    (c) Copyright 2014 Hewlett-Packard Development Company, L.P."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_cd02813d","line":1,"updated":"2014-09-12 03:22:11.000000000","message":"nit, remove extra space","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"#    (c) Copyright 2014 Hewlett-Packard Development Company, L.P."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_0f00f600","line":1,"in_reply_to":"fa98f980_cd02813d","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        help_text\u003d_(\u0027The JSON formatted contents of a namespace.\u0027),"},{"line_number":56,"context_line":"        widget\u003dforms.widgets.Textarea("},{"line_number":57,"context_line":"            attrs\u003d{\u0027class\u0027: \u0027switched\u0027, \u0027data-switch-on\u0027: \u0027source\u0027,"},{"line_number":58,"context_line":"                   \u0027data-source-raw\u0027: _(\u0027Namespace JSON\u0027)}),"},{"line_number":59,"context_line":"        required\u003dFalse)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    public \u003d forms.BooleanField(label\u003d_(\"Public\"), required\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_6d7a7589","line":58,"updated":"2014-09-12 03:22:11.000000000","message":"Must be consistent with the label in line 54, either label looks good.","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        help_text\u003d_(\u0027The JSON formatted contents of a namespace.\u0027),"},{"line_number":56,"context_line":"        widget\u003dforms.widgets.Textarea("},{"line_number":57,"context_line":"            attrs\u003d{\u0027class\u0027: \u0027switched\u0027, \u0027data-switch-on\u0027: \u0027source\u0027,"},{"line_number":58,"context_line":"                   \u0027data-source-raw\u0027: _(\u0027Namespace JSON\u0027)}),"},{"line_number":59,"context_line":"        required\u003dFalse)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    public \u003d forms.BooleanField(label\u003d_(\"Public\"), required\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_2f2cda01","line":58,"in_reply_to":"fa98f980_6d7a7589","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":95,"context_line":"            for protected_prop in constants.METADEFS_PROTECTED_PROPS:"},{"line_number":96,"context_line":"                namespace.pop(protected_prop, None)"},{"line_number":97,"context_line":"        except Exception as e:"},{"line_number":98,"context_line":"            msg \u003d _(\u0027There was a problem loading the namespace: %(error)s.\u0027)"},{"line_number":99,"context_line":"            msg \u003d msg % {\u0027error\u0027: e}"},{"line_number":100,"context_line":"            raise forms.ValidationError(msg)"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_4dbdb167","line":98,"updated":"2014-09-12 03:22:11.000000000","message":"If there is only one argument, there is really no need to provide a name for the argument","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":95,"context_line":"            for protected_prop in constants.METADEFS_PROTECTED_PROPS:"},{"line_number":96,"context_line":"                namespace.pop(protected_prop, None)"},{"line_number":97,"context_line":"        except Exception as e:"},{"line_number":98,"context_line":"            msg \u003d _(\u0027There was a problem loading the namespace: %(error)s.\u0027)"},{"line_number":99,"context_line":"            msg \u003d msg % {\u0027error\u0027: e}"},{"line_number":100,"context_line":"            raise forms.ValidationError(msg)"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_4f311e59","line":98,"in_reply_to":"fa98f980_4dbdb167","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        except Exception as e:"},{"line_number":112,"context_line":"            msg \u003d _(\u0027Unable to create new namespace. %(error)s\u0027)"},{"line_number":113,"context_line":"            msg \u003d msg % {\u0027error\u0027: e.message.split(\u0027Failed validating\u0027, 1)[0]}"},{"line_number":114,"context_line":"            exceptions.handle(request, message\u003dmsg)"},{"line_number":115,"context_line":"        return True"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_adb8dd75","line":114,"updated":"2014-09-12 03:22:11.000000000","message":"return False on error, this will re-render the current form to the user","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        except Exception as e:"},{"line_number":112,"context_line":"            msg \u003d _(\u0027Unable to create new namespace. %(error)s\u0027)"},{"line_number":113,"context_line":"            msg \u003d msg % {\u0027error\u0027: e.message.split(\u0027Failed validating\u0027, 1)[0]}"},{"line_number":114,"context_line":"            exceptions.handle(request, message\u003dmsg)"},{"line_number":115,"context_line":"        return True"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_6f32625f","line":114,"in_reply_to":"fa98f980_adb8dd75","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":122,"context_line":"    def handle(self, request, context):"},{"line_number":123,"context_line":"        namespace_name \u003d self.initial[\u0027id\u0027]"},{"line_number":124,"context_line":"        current_names \u003d self.get_names(self.initial[\u0027resource_types\u0027])"},{"line_number":125,"context_line":"        updated_types \u003d json.loads(self.data[\u0027resource_types\u0027])"},{"line_number":126,"context_line":"        selected_types \u003d [updated_type for updated_type in updated_types"},{"line_number":127,"context_line":"                          if updated_type.pop(\u0027selected\u0027, False)]"},{"line_number":128,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_0da72951","line":125,"updated":"2014-09-12 03:22:11.000000000","message":"should be inside the try-except, as this could raise an exception","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":122,"context_line":"    def handle(self, request, context):"},{"line_number":123,"context_line":"        namespace_name \u003d self.initial[\u0027id\u0027]"},{"line_number":124,"context_line":"        current_names \u003d self.get_names(self.initial[\u0027resource_types\u0027])"},{"line_number":125,"context_line":"        updated_types \u003d json.loads(self.data[\u0027resource_types\u0027])"},{"line_number":126,"context_line":"        selected_types \u003d [updated_type for updated_type in updated_types"},{"line_number":127,"context_line":"                          if updated_type.pop(\u0027selected\u0027, False)]"},{"line_number":128,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_4f183ed3","line":125,"in_reply_to":"fa98f980_0da72951","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":135,"context_line":"                selected_type.pop(\u0027updated_at\u0027, None)"},{"line_number":136,"context_line":"                glance.metadefs_namespace_add_resource_type("},{"line_number":137,"context_line":"                    self.request, namespace_name, selected_type)"},{"line_number":138,"context_line":"            msg \u003d _(\u0027Resource types updated for namespace %(namespace)s\u0027)"},{"line_number":139,"context_line":"            msg \u003d msg % {\u0027namespace\u0027: namespace_name}"},{"line_number":140,"context_line":"            messages.success(request, msg)"},{"line_number":141,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_8d6a39eb","line":138,"updated":"2014-09-12 03:22:11.000000000","message":"same comment for having argument name, it is not needed for single argument","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":135,"context_line":"                selected_type.pop(\u0027updated_at\u0027, None)"},{"line_number":136,"context_line":"                glance.metadefs_namespace_add_resource_type("},{"line_number":137,"context_line":"                    self.request, namespace_name, selected_type)"},{"line_number":138,"context_line":"            msg \u003d _(\u0027Resource types updated for namespace %(namespace)s\u0027)"},{"line_number":139,"context_line":"            msg \u003d msg % {\u0027namespace\u0027: namespace_name}"},{"line_number":140,"context_line":"            messages.success(request, msg)"},{"line_number":141,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_cfffce32","line":138,"in_reply_to":"fa98f980_8d6a39eb","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":140,"context_line":"            messages.success(request, msg)"},{"line_number":141,"context_line":"        except Exception:"},{"line_number":142,"context_line":"            msg \u003d _("},{"line_number":143,"context_line":"                \u0027Error updating resource types for namespace %(namespace)s\u0027)"},{"line_number":144,"context_line":"            msg \u003d msg % {\u0027namespace\u0027: namespace_name}"},{"line_number":145,"context_line":"            exceptions.handle(request, msg)"},{"line_number":146,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_ad6ffdfa","line":143,"updated":"2014-09-12 03:22:11.000000000","message":"ditto","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":140,"context_line":"            messages.success(request, msg)"},{"line_number":141,"context_line":"        except Exception:"},{"line_number":142,"context_line":"            msg \u003d _("},{"line_number":143,"context_line":"                \u0027Error updating resource types for namespace %(namespace)s\u0027)"},{"line_number":144,"context_line":"            msg \u003d msg % {\u0027namespace\u0027: namespace_name}"},{"line_number":145,"context_line":"            exceptions.handle(request, msg)"},{"line_number":146,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_af028a3b","line":143,"in_reply_to":"fa98f980_ad6ffdfa","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":142,"context_line":"            msg \u003d _("},{"line_number":143,"context_line":"                \u0027Error updating resource types for namespace %(namespace)s\u0027)"},{"line_number":144,"context_line":"            msg \u003d msg % {\u0027namespace\u0027: namespace_name}"},{"line_number":145,"context_line":"            exceptions.handle(request, msg)"},{"line_number":146,"context_line":"        return True"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def get_names(self, items):"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_ed74a5d0","line":145,"updated":"2014-09-12 03:22:11.000000000","message":"return False","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":142,"context_line":"            msg \u003d _("},{"line_number":143,"context_line":"                \u0027Error updating resource types for namespace %(namespace)s\u0027)"},{"line_number":144,"context_line":"            msg \u003d msg % {\u0027namespace\u0027: namespace_name}"},{"line_number":145,"context_line":"            exceptions.handle(request, msg)"},{"line_number":146,"context_line":"        return True"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def get_names(self, items):"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_eff8124c","line":145,"in_reply_to":"fa98f980_ed74a5d0","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"33ad2a85fbbf0f3b70462e944ad0829a133ab405","unresolved":false,"context_lines":[{"line_number":98,"context_line":"            msg \u003d _(\u0027There was a problem loading the namespace: %s.\u0027) % e"},{"line_number":99,"context_line":"            raise forms.ValidationError(msg)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        return namespace"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def handle(self, request, namespace):"},{"line_number":104,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":43,"id":"fa98f980_c7f4d5f2","line":101,"updated":"2014-09-15 18:32:12.000000000","message":"should this be returning \"data\" instead?","commit_id":"f634ad89076261f4f26fc07f5ebf63fae0bd88e4"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"7a51ae168fc71296eec5bcbc71cb0813fd920a46","unresolved":false,"context_lines":[{"line_number":98,"context_line":"            msg \u003d _(\u0027There was a problem loading the namespace: %s.\u0027) % e"},{"line_number":99,"context_line":"            raise forms.ValidationError(msg)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        return namespace"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def handle(self, request, namespace):"},{"line_number":104,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":43,"id":"fa98f980_cadcd9e6","line":101,"in_reply_to":"fa98f980_c7f4d5f2","updated":"2014-09-15 21:28:56.000000000","message":"Done","commit_id":"f634ad89076261f4f26fc07f5ebf63fae0bd88e4"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"33ad2a85fbbf0f3b70462e944ad0829a133ab405","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        try:"},{"line_number":105,"context_line":"            namespace \u003d glance.metadefs_namespace_create(request, namespace)"},{"line_number":106,"context_line":"            messages.success(request,"},{"line_number":107,"context_line":"                             _(\u0027Your namespace %s has been created.\u0027) %"},{"line_number":108,"context_line":"                             namespace[\u0027namespace\u0027])"},{"line_number":109,"context_line":"            return namespace"},{"line_number":110,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":43,"id":"fa98f980_e7c5598e","line":107,"updated":"2014-09-15 18:32:12.000000000","message":"I think we can just remove \"Your\" here, sound a bit off with the other messages.","commit_id":"f634ad89076261f4f26fc07f5ebf63fae0bd88e4"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"7a51ae168fc71296eec5bcbc71cb0813fd920a46","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        try:"},{"line_number":105,"context_line":"            namespace \u003d glance.metadefs_namespace_create(request, namespace)"},{"line_number":106,"context_line":"            messages.success(request,"},{"line_number":107,"context_line":"                             _(\u0027Your namespace %s has been created.\u0027) %"},{"line_number":108,"context_line":"                             namespace[\u0027namespace\u0027])"},{"line_number":109,"context_line":"            return namespace"},{"line_number":110,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":43,"id":"fa98f980_ead7ddbc","line":107,"in_reply_to":"fa98f980_e7c5598e","updated":"2014-09-15 21:28:56.000000000","message":"Done","commit_id":"f634ad89076261f4f26fc07f5ebf63fae0bd88e4"},{"author":{"_account_id":9622,"name":"Cindy Lu","email":"clu@us.ibm.com","username":"clu14"},"change_message_id":"7db7e41acd507cf50e6fd9ed86ae146dc53f364d","unresolved":false,"context_lines":[{"line_number":139,"context_line":"                glance.metadefs_namespace_add_resource_type("},{"line_number":140,"context_line":"                    self.request, namespace_name, selected_type)"},{"line_number":141,"context_line":"            msg \u003d _(\u0027Resource types updated for namespace %s.\u0027)"},{"line_number":142,"context_line":"            msg %\u003d namespace_name"},{"line_number":143,"context_line":"            messages.success(request, msg)"},{"line_number":144,"context_line":"        except Exception:"},{"line_number":145,"context_line":"            msg \u003d _(\u0027Error updating resource types for namespace %s.\u0027)"}],"source_content_type":"text/x-python","patch_set":46,"id":"baa201ad_0297e848","line":142,"updated":"2014-10-07 00:58:24.000000000","message":"combine into one line: \n\nmsg \u003d _(\u0027Resource types updated for namespace %s.\u0027) %         namespace_name","commit_id":"081b1d7883150932df7773cfc2708a384164a049"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"37bd02c062ab979f20ec4bddca8d78a5aff55dae","unresolved":false,"context_lines":[{"line_number":139,"context_line":"                glance.metadefs_namespace_add_resource_type("},{"line_number":140,"context_line":"                    self.request, namespace_name, selected_type)"},{"line_number":141,"context_line":"            msg \u003d _(\u0027Resource types updated for namespace %s.\u0027)"},{"line_number":142,"context_line":"            msg %\u003d namespace_name"},{"line_number":143,"context_line":"            messages.success(request, msg)"},{"line_number":144,"context_line":"        except Exception:"},{"line_number":145,"context_line":"            msg \u003d _(\u0027Error updating resource types for namespace %s.\u0027)"}],"source_content_type":"text/x-python","patch_set":46,"id":"baa201ad_83b83ac9","line":142,"in_reply_to":"baa201ad_0297e848","updated":"2014-10-07 05:51:19.000000000","message":"I tried this, but it pushed it out to 81 chars and gave me a pep8 warning. \n\n./openstack_dashboard/dashboards/admin/metadata_defs/forms.py:141:80: E501 line too long (80 \u003e 79 characters)\n\nOnly thing I could think of doing is to remove the period on the end, but that seems worse.  Do you agree?","commit_id":"081b1d7883150932df7773cfc2708a384164a049"},{"author":{"_account_id":9622,"name":"Cindy Lu","email":"clu@us.ibm.com","username":"clu14"},"change_message_id":"7db7e41acd507cf50e6fd9ed86ae146dc53f364d","unresolved":false,"context_lines":[{"line_number":143,"context_line":"            messages.success(request, msg)"},{"line_number":144,"context_line":"        except Exception:"},{"line_number":145,"context_line":"            msg \u003d _(\u0027Error updating resource types for namespace %s.\u0027)"},{"line_number":146,"context_line":"            msg %\u003d namespace_name"},{"line_number":147,"context_line":"            exceptions.handle(request, msg)"},{"line_number":148,"context_line":"            return False"},{"line_number":149,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":46,"id":"baa201ad_42c65069","line":146,"updated":"2014-10-07 00:58:24.000000000","message":"same","commit_id":"081b1d7883150932df7773cfc2708a384164a049"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"37bd02c062ab979f20ec4bddca8d78a5aff55dae","unresolved":false,"context_lines":[{"line_number":143,"context_line":"            messages.success(request, msg)"},{"line_number":144,"context_line":"        except Exception:"},{"line_number":145,"context_line":"            msg \u003d _(\u0027Error updating resource types for namespace %s.\u0027)"},{"line_number":146,"context_line":"            msg %\u003d namespace_name"},{"line_number":147,"context_line":"            exceptions.handle(request, msg)"},{"line_number":148,"context_line":"            return False"},{"line_number":149,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":46,"id":"baa201ad_a30b7e8c","line":146,"in_reply_to":"baa201ad_42c65069","updated":"2014-10-07 05:51:19.000000000","message":"Same as above.","commit_id":"081b1d7883150932df7773cfc2708a384164a049"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"10cbfc9b223bc514953b9fffd84a49a8f24a985e","unresolved":false,"context_lines":[{"line_number":115,"context_line":"            msg %\u003d e.message.split(\u0027Failed validating\u0027, 1)[0]"},{"line_number":116,"context_line":"            exceptions.handle(request, message\u003dmsg)"},{"line_number":117,"context_line":"            return False"},{"line_number":118,"context_line":"        return True"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"class ManageResourceTypesForm(forms.SelfHandlingForm):"}],"source_content_type":"text/x-python","patch_set":58,"id":"3a961159_8a40b536","line":118,"updated":"2014-12-17 20:11:07.000000000","message":"unreachable code because of line 112","commit_id":"dd86a19cdbdafb9b28fdcff71345024cae02ae45"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"32191e679d53ff47801e90653c4e72f949e7d99e","unresolved":false,"context_lines":[{"line_number":115,"context_line":"            msg %\u003d e.message.split(\u0027Failed validating\u0027, 1)[0]"},{"line_number":116,"context_line":"            exceptions.handle(request, message\u003dmsg)"},{"line_number":117,"context_line":"            return False"},{"line_number":118,"context_line":"        return True"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"class ManageResourceTypesForm(forms.SelfHandlingForm):"}],"source_content_type":"text/x-python","patch_set":58,"id":"3a961159_2b6183a8","line":118,"in_reply_to":"3a961159_8a40b536","updated":"2014-12-17 23:16:10.000000000","message":"Done","commit_id":"dd86a19cdbdafb9b28fdcff71345024cae02ae45"}],"openstack_dashboard/dashboards/admin/metadata_defs/panel.py":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"10cbfc9b223bc514953b9fffd84a49a8f24a985e","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    name \u003d _(\"Metadata Definitions\")"},{"line_number":25,"context_line":"    slug \u003d \u0027metadata_defs\u0027"},{"line_number":26,"context_line":"    permissions \u003d (\u0027openstack.roles.admin\u0027,)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"dashboard.Admin.register(MetadataDefinitions)"}],"source_content_type":"text/x-python","patch_set":58,"id":"3a961159_9f0b952a","line":27,"updated":"2014-12-17 20:11:07.000000000","message":"Is there a way to hide this panel if Glance v2 is not available or if the metadata service is not available?","commit_id":"dd86a19cdbdafb9b28fdcff71345024cae02ae45"}],"openstack_dashboard/dashboards/admin/metadata_defs/tables.py":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    name \u003d \"import\""},{"line_number":29,"context_line":"    verbose_name \u003d _(\"Import Namespace\")"},{"line_number":30,"context_line":"    url \u003d constants.METADATA_CREATE_REVERSE"},{"line_number":31,"context_line":"    classes \u003d (\"ajax-modal\", \"btn-create\")"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class DeleteNamespace(tables.DeleteAction):"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_2d5ced18","line":31,"updated":"2014-09-12 03:22:11.000000000","message":"Due to bootstrap upgrade the pattern changed to:\n\n classes \u003d (\"ajax-modal\",)\n\n icon \u003d \"plus\"","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    name \u003d \"import\""},{"line_number":29,"context_line":"    verbose_name \u003d _(\"Import Namespace\")"},{"line_number":30,"context_line":"    url \u003d constants.METADATA_CREATE_REVERSE"},{"line_number":31,"context_line":"    classes \u003d (\"ajax-modal\", \"btn-create\")"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class DeleteNamespace(tables.DeleteAction):"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_4a2cac99","line":31,"in_reply_to":"fa98f980_2d5ced18","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    name \u003d \"manage_resource_types\""},{"line_number":52,"context_line":"    verbose_name \u003d _(\"Update Associations\")"},{"line_number":53,"context_line":"    url \u003d constants.METADATA_MANAGE_RESOURCES_REVERSE"},{"line_number":54,"context_line":"    classes \u003d (\"ajax-modal\", \"btn-create\")"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    def allowed(self, request, namespace\u003dNone):"},{"line_number":57,"context_line":"        # Protected namespace can not be updated"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_8da239fa","line":54,"updated":"2014-09-12 03:22:11.000000000","message":"Same comment as above","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    name \u003d \"manage_resource_types\""},{"line_number":52,"context_line":"    verbose_name \u003d _(\"Update Associations\")"},{"line_number":53,"context_line":"    url \u003d constants.METADATA_MANAGE_RESOURCES_REVERSE"},{"line_number":54,"context_line":"    classes \u003d (\"ajax-modal\", \"btn-create\")"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    def allowed(self, request, namespace\u003dNone):"},{"line_number":57,"context_line":"        # Protected namespace can not be updated"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_6a1df061","line":54,"in_reply_to":"fa98f980_8da239fa","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"e8797def446aa861317b254b15210bfc2701958e","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    verbose_name \u003d _(\"Update Associations\")"},{"line_number":53,"context_line":"    url \u003d constants.METADATA_MANAGE_RESOURCES_REVERSE"},{"line_number":54,"context_line":"    classes \u003d (\"ajax-modal\", \"btn-create\")"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    def allowed(self, request, namespace\u003dNone):"},{"line_number":57,"context_line":"        # Protected namespace can not be updated"},{"line_number":58,"context_line":"        if namespace:"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_f6a3839b","line":55,"updated":"2014-09-12 15:10:54.000000000","message":"Actually, I think this should be \"pencil\u0027, based on other \"edit buttons in horizon\u0027.  Changed that in latest patch.","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":138,"context_line":"    def get_object_id(self, datum):"},{"line_number":139,"context_line":"        \"\"\"Returns the identifier for the object this row will represent."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"        .. warning::"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"            Make sure that the value returned is a unique value for the id"},{"line_number":144,"context_line":"            otherwise rendering issues can occur."}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_ad3d3ddf","line":141,"updated":"2014-09-12 03:22:11.000000000","message":"The comment here is probably not needed, it is the same comment from the base class.","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":138,"context_line":"    def get_object_id(self, datum):"},{"line_number":139,"context_line":"        \"\"\"Returns the identifier for the object this row will represent."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"        .. warning::"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"            Make sure that the value returned is a unique value for the id"},{"line_number":144,"context_line":"            otherwise rendering issues can occur."}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_2a2768b7","line":141,"in_reply_to":"fa98f980_ad3d3ddf","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        return datum.namespace"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def get_object_display(self, datum):"},{"line_number":149,"context_line":"        \"\"\"Returns a display name that identifies this object."},{"line_number":150,"context_line":"        \"\"\""},{"line_number":151,"context_line":"        if hasattr(datum, \u0027display_name\u0027):"},{"line_number":152,"context_line":"            return datum.display_name"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_cd2521c3","line":149,"updated":"2014-09-12 03:22:11.000000000","message":"same here","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        return datum.namespace"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def get_object_display(self, datum):"},{"line_number":149,"context_line":"        \"\"\"Returns a display name that identifies this object."},{"line_number":150,"context_line":"        \"\"\""},{"line_number":151,"context_line":"        if hasattr(datum, \u0027display_name\u0027):"},{"line_number":152,"context_line":"            return datum.display_name"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_ca37bce1","line":149,"in_reply_to":"fa98f980_cd2521c3","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"33ad2a85fbbf0f3b70462e944ad0829a133ab405","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    verbose_name \u003d _(\"Import Namespace\")"},{"line_number":30,"context_line":"    url \u003d constants.METADATA_CREATE_REVERSE"},{"line_number":31,"context_line":"    classes \u003d (\"ajax-modal\",)"},{"line_number":32,"context_line":"    icon \u003d \"plus\""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class DeleteNamespace(tables.DeleteAction):"}],"source_content_type":"text/x-python","patch_set":43,"id":"fa98f980_27c68168","line":32,"updated":"2014-09-15 18:32:12.000000000","message":"The policy checks in the table actions are missing.\n\nCopy the metadata policies from https://github.com/openstack/glance/blob/master/etc/policy.json#L33 into https://github.com/openstack/horizon/blob/master/openstack_dashboard/conf/glance_policy.json and apply it to the actions to determine if the user has privilege to perform the operations.","commit_id":"f634ad89076261f4f26fc07f5ebf63fae0bd88e4"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"7a51ae168fc71296eec5bcbc71cb0813fd920a46","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    verbose_name \u003d _(\"Import Namespace\")"},{"line_number":30,"context_line":"    url \u003d constants.METADATA_CREATE_REVERSE"},{"line_number":31,"context_line":"    classes \u003d (\"ajax-modal\",)"},{"line_number":32,"context_line":"    icon \u003d \"plus\""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class DeleteNamespace(tables.DeleteAction):"}],"source_content_type":"text/x-python","patch_set":43,"id":"fa98f980_2ade45da","line":32,"in_reply_to":"fa98f980_27c68168","updated":"2014-09-15 21:28:56.000000000","message":"Thanks for the pointer.  Done now!","commit_id":"f634ad89076261f4f26fc07f5ebf63fae0bd88e4"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"33ad2a85fbbf0f3b70462e944ad0829a133ab405","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"class UpdateCell(tables.UpdateAction):"},{"line_number":81,"context_line":"    def allowed(self, request, project, cell):"},{"line_number":82,"context_line":"        # For now, this is only being exposed to admins"},{"line_number":83,"context_line":"        return True"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-python","patch_set":43,"id":"fa98f980_c7acd5a1","line":81,"updated":"2014-09-15 18:32:12.000000000","message":"If it is not override, just remove this method","commit_id":"f634ad89076261f4f26fc07f5ebf63fae0bd88e4"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"7a51ae168fc71296eec5bcbc71cb0813fd920a46","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"class UpdateCell(tables.UpdateAction):"},{"line_number":81,"context_line":"    def allowed(self, request, project, cell):"},{"line_number":82,"context_line":"        # For now, this is only being exposed to admins"},{"line_number":83,"context_line":"        return True"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-python","patch_set":43,"id":"fa98f980_4af0e966","line":81,"in_reply_to":"fa98f980_c7acd5a1","updated":"2014-09-15 21:28:56.000000000","message":"Done","commit_id":"f634ad89076261f4f26fc07f5ebf63fae0bd88e4"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"33ad2a85fbbf0f3b70462e944ad0829a133ab405","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        \"display_name\","},{"line_number":112,"context_line":"        link\u003dconstants.METADATA_DETAIL_REVERSE,"},{"line_number":113,"context_line":"        verbose_name\u003d_(\"Name\"),"},{"line_number":114,"context_line":"        form_field\u003dforms.CharField(required\u003dTrue, max_length\u003d80))"},{"line_number":115,"context_line":"    description \u003d tables.Column("},{"line_number":116,"context_line":"        lambda obj: getattr(obj, \u0027description\u0027, None),"},{"line_number":117,"context_line":"        verbose_name\u003d_(\u0027Description\u0027),"}],"source_content_type":"text/x-python","patch_set":43,"id":"fa98f980_07a09d8e","line":114,"updated":"2014-09-15 18:32:12.000000000","message":"required is the default, just remove it","commit_id":"f634ad89076261f4f26fc07f5ebf63fae0bd88e4"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"7a51ae168fc71296eec5bcbc71cb0813fd920a46","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        \"display_name\","},{"line_number":112,"context_line":"        link\u003dconstants.METADATA_DETAIL_REVERSE,"},{"line_number":113,"context_line":"        verbose_name\u003d_(\"Name\"),"},{"line_number":114,"context_line":"        form_field\u003dforms.CharField(required\u003dTrue, max_length\u003d80))"},{"line_number":115,"context_line":"    description \u003d tables.Column("},{"line_number":116,"context_line":"        lambda obj: getattr(obj, \u0027description\u0027, None),"},{"line_number":117,"context_line":"        verbose_name\u003d_(\u0027Description\u0027),"}],"source_content_type":"text/x-python","patch_set":43,"id":"fa98f980_8ae651ae","line":114,"in_reply_to":"fa98f980_07a09d8e","updated":"2014-09-15 21:28:56.000000000","message":"Done","commit_id":"f634ad89076261f4f26fc07f5ebf63fae0bd88e4"},{"author":{"_account_id":9622,"name":"Cindy Lu","email":"clu@us.ibm.com","username":"clu14"},"change_message_id":"7db7e41acd507cf50e6fd9ed86ae146dc53f364d","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class DeleteNamespace(tables.DeleteAction):"},{"line_number":37,"context_line":"    data_type_singular \u003d _(\"Namespace\")"},{"line_number":38,"context_line":"    data_type_plural \u003d _(\"Namespaces\")"},{"line_number":39,"context_line":"    policy_rules \u003d ((\"image\", \"delete_metadef_namespace\"),)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def allowed(self, request, namespace\u003dNone):"}],"source_content_type":"text/x-python","patch_set":46,"id":"baa201ad_a27b7c8a","line":38,"updated":"2014-10-07 00:58:24.000000000","message":"new convention: https://review.openstack.org/#/c/124053/","commit_id":"081b1d7883150932df7773cfc2708a384164a049"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"37bd02c062ab979f20ec4bddca8d78a5aff55dae","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class DeleteNamespace(tables.DeleteAction):"},{"line_number":37,"context_line":"    data_type_singular \u003d _(\"Namespace\")"},{"line_number":38,"context_line":"    data_type_plural \u003d _(\"Namespaces\")"},{"line_number":39,"context_line":"    policy_rules \u003d ((\"image\", \"delete_metadef_namespace\"),)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def allowed(self, request, namespace\u003dNone):"}],"source_content_type":"text/x-python","patch_set":46,"id":"baa201ad_832d9a00","line":38,"in_reply_to":"baa201ad_a27b7c8a","updated":"2014-10-07 05:51:19.000000000","message":"Done: Thanks for letting me know about this new convention!","commit_id":"081b1d7883150932df7773cfc2708a384164a049"},{"author":{"_account_id":9622,"name":"Cindy Lu","email":"clu@us.ibm.com","username":"clu14"},"change_message_id":"7db7e41acd507cf50e6fd9ed86ae146dc53f364d","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    def allowed(self, request, namespace\u003dNone):"},{"line_number":42,"context_line":"        # Protected namespaces can not be deleted."},{"line_number":43,"context_line":"        if namespace:"},{"line_number":44,"context_line":"            if namespace.protected:"},{"line_number":45,"context_line":"                return False"},{"line_number":46,"context_line":"        # Return True to allow table-level bulk delete action to appear."},{"line_number":47,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":46,"id":"baa201ad_429d7065","line":44,"updated":"2014-10-07 00:58:24.000000000","message":"combine 2 ifs? \n\nhttps://github.com/openstack/horizon/blob/master/openstack_dashboard/dashboards/admin/images/tables.py#L30","commit_id":"081b1d7883150932df7773cfc2708a384164a049"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"37bd02c062ab979f20ec4bddca8d78a5aff55dae","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    def allowed(self, request, namespace\u003dNone):"},{"line_number":42,"context_line":"        # Protected namespaces can not be deleted."},{"line_number":43,"context_line":"        if namespace:"},{"line_number":44,"context_line":"            if namespace.protected:"},{"line_number":45,"context_line":"                return False"},{"line_number":46,"context_line":"        # Return True to allow table-level bulk delete action to appear."},{"line_number":47,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":46,"id":"baa201ad_e338263f","line":44,"in_reply_to":"baa201ad_429d7065","updated":"2014-10-07 05:51:19.000000000","message":"Done. Thanks, not sure why that slipped my eye before!","commit_id":"081b1d7883150932df7773cfc2708a384164a049"},{"author":{"_account_id":9622,"name":"Cindy Lu","email":"clu@us.ibm.com","username":"clu14"},"change_message_id":"7db7e41acd507cf50e6fd9ed86ae146dc53f364d","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    def allowed(self, request, namespace\u003dNone):"},{"line_number":63,"context_line":"        # Protected namespace can not be updated"},{"line_number":64,"context_line":"        if namespace:"},{"line_number":65,"context_line":"            if namespace.protected:"},{"line_number":66,"context_line":"                return False"},{"line_number":67,"context_line":"        # Return True to allow table-level bulk delete action to appear."},{"line_number":68,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":46,"id":"baa201ad_026a88b2","line":65,"updated":"2014-10-07 00:58:24.000000000","message":"same","commit_id":"081b1d7883150932df7773cfc2708a384164a049"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"37bd02c062ab979f20ec4bddca8d78a5aff55dae","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    def allowed(self, request, namespace\u003dNone):"},{"line_number":63,"context_line":"        # Protected namespace can not be updated"},{"line_number":64,"context_line":"        if namespace:"},{"line_number":65,"context_line":"            if namespace.protected:"},{"line_number":66,"context_line":"                return False"},{"line_number":67,"context_line":"        # Return True to allow table-level bulk delete action to appear."},{"line_number":68,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":46,"id":"baa201ad_0341aaa8","line":65,"in_reply_to":"baa201ad_026a88b2","updated":"2014-10-07 05:51:19.000000000","message":"Done","commit_id":"081b1d7883150932df7773cfc2708a384164a049"},{"author":{"_account_id":9622,"name":"Cindy Lu","email":"clu@us.ibm.com","username":"clu14"},"change_message_id":"411d0171ca03356a8089a1ab18e810edf4c19524","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    def allowed(self, request, namespace\u003dNone):"},{"line_number":79,"context_line":"        # Protected namespace can not be updated"},{"line_number":80,"context_line":"        if namespace and namespace.protected:"},{"line_number":81,"context_line":"                return False"},{"line_number":82,"context_line":"        # Return True to allow table-level bulk delete action to appear."},{"line_number":83,"context_line":"        return True"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-python","patch_set":47,"id":"baa201ad_acea5571","line":81,"updated":"2014-10-09 18:48:32.000000000","message":"nit: too much indent :)","commit_id":"911b53af0b833523b4a5fdb6e91baab1823ab186"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"51de8a8ef9a76479361ae5f15d70227fb5bd7635","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    def allowed(self, request, namespace\u003dNone):"},{"line_number":79,"context_line":"        # Protected namespace can not be updated"},{"line_number":80,"context_line":"        if namespace and namespace.protected:"},{"line_number":81,"context_line":"                return False"},{"line_number":82,"context_line":"        # Return True to allow table-level bulk delete action to appear."},{"line_number":83,"context_line":"        return True"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-python","patch_set":47,"id":"baa201ad_983ab932","line":81,"in_reply_to":"baa201ad_acea5571","updated":"2014-10-14 03:35:45.000000000","message":"Done","commit_id":"911b53af0b833523b4a5fdb6e91baab1823ab186"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"10cbfc9b223bc514953b9fffd84a49a8f24a985e","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        )"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    data_type_singular \u003d _(\"Namespace\")"},{"line_number":55,"context_line":"    data_type_plural \u003d _(\"Namespaces\")"},{"line_number":56,"context_line":"    policy_rules \u003d ((\"image\", \"delete_metadef_namespace\"),)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def allowed(self, request, namespace\u003dNone):"}],"source_content_type":"text/x-python","patch_set":58,"id":"3a961159_e517aa43","line":55,"updated":"2014-12-17 20:11:07.000000000","message":"line 54-55 not needed, it is already covered by line 38-50","commit_id":"dd86a19cdbdafb9b28fdcff71345024cae02ae45"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"32191e679d53ff47801e90653c4e72f949e7d99e","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        )"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    data_type_singular \u003d _(\"Namespace\")"},{"line_number":55,"context_line":"    data_type_plural \u003d _(\"Namespaces\")"},{"line_number":56,"context_line":"    policy_rules \u003d ((\"image\", \"delete_metadef_namespace\"),)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def allowed(self, request, namespace\u003dNone):"}],"source_content_type":"text/x-python","patch_set":58,"id":"3a961159_2b850359","line":55,"in_reply_to":"3a961159_e517aa43","updated":"2014-12-17 23:16:10.000000000","message":"Done","commit_id":"dd86a19cdbdafb9b28fdcff71345024cae02ae45"}],"openstack_dashboard/dashboards/admin/metadata_defs/tabs.py":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def get_context_data(self, request):"},{"line_number":30,"context_line":"        namespace_name \u003d self.tab_group.kwargs[\u0027namespace_id\u0027]"},{"line_number":31,"context_line":"        namespace \u003d glance.metadefs_namespace_get(request,"},{"line_number":32,"context_line":"                                                  namespace_name,"},{"line_number":33,"context_line":"                                                  wrap\u003dTrue)"},{"line_number":34,"context_line":"        return {\"namespace\": namespace}"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_ed23c502","line":31,"updated":"2014-09-12 03:22:11.000000000","message":"wrap the api call in try-except block","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def get_context_data(self, request):"},{"line_number":30,"context_line":"        namespace_name \u003d self.tab_group.kwargs[\u0027namespace_id\u0027]"},{"line_number":31,"context_line":"        namespace \u003d glance.metadefs_namespace_get(request,"},{"line_number":32,"context_line":"                                                  namespace_name,"},{"line_number":33,"context_line":"                                                  wrap\u003dTrue)"},{"line_number":34,"context_line":"        return {\"namespace\": namespace}"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_6a233058","line":31,"in_reply_to":"fa98f980_ed23c502","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def get_context_data(self, request):"},{"line_number":44,"context_line":"        namespace_id \u003d self.tab_group.kwargs[\u0027namespace_id\u0027]"},{"line_number":45,"context_line":"        namespace \u003d glance.metadefs_namespace_get(request,"},{"line_number":46,"context_line":"                                                  namespace_id,"},{"line_number":47,"context_line":"                                                  wrap\u003dTrue)"},{"line_number":48,"context_line":"        return {"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_0d1d69be","line":45,"updated":"2014-09-12 03:22:11.000000000","message":"ditto","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def get_context_data(self, request):"},{"line_number":44,"context_line":"        namespace_id \u003d self.tab_group.kwargs[\u0027namespace_id\u0027]"},{"line_number":45,"context_line":"        namespace \u003d glance.metadefs_namespace_get(request,"},{"line_number":46,"context_line":"                                                  namespace_id,"},{"line_number":47,"context_line":"                                                  wrap\u003dTrue)"},{"line_number":48,"context_line":"        return {"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_8a285434","line":45,"in_reply_to":"fa98f980_0d1d69be","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"}],"openstack_dashboard/dashboards/admin/metadata_defs/templates/metadata_defs/_create.html":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":20,"context_line":"        {% trans \"Specify a metadata definition namespace to import.\" %}"},{"line_number":21,"context_line":"    \u003c/p\u003e"},{"line_number":22,"context_line":"    \u003cp\u003e"},{"line_number":23,"context_line":"        {% trans \"Only definitions in raw JSON format are supported\" %}"},{"line_number":24,"context_line":"    \u003c/p\u003e"},{"line_number":25,"context_line":"\u003c/div\u003e"},{"line_number":26,"context_line":"{% endblock %}"}],"source_content_type":"text/html","patch_set":41,"id":"fa98f980_adb29de2","line":23,"updated":"2014-09-12 03:22:11.000000000","message":"nit, missing period","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":20,"context_line":"        {% trans \"Specify a metadata definition namespace to import.\" %}"},{"line_number":21,"context_line":"    \u003c/p\u003e"},{"line_number":22,"context_line":"    \u003cp\u003e"},{"line_number":23,"context_line":"        {% trans \"Only definitions in raw JSON format are supported\" %}"},{"line_number":24,"context_line":"    \u003c/p\u003e"},{"line_number":25,"context_line":"\u003c/div\u003e"},{"line_number":26,"context_line":"{% endblock %}"}],"source_content_type":"text/html","patch_set":41,"id":"fa98f980_2a05a879","line":23,"in_reply_to":"fa98f980_adb29de2","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"{% block modal-footer %}"},{"line_number":29,"context_line":"  \u003cinput class\u003d\"btn btn-primary pull-right\" type\u003d\"submit\" value\u003d\"{% trans \"Import Namespace\" %}\" /\u003e"},{"line_number":30,"context_line":"  \u003ca href\u003d\"{% url \u0027horizon:admin:metadata_defs:index\u0027 %}\" class\u003d\"btn secondary cancel close\"\u003e{% trans \"Cancel\" %}\u003c/a\u003e"},{"line_number":31,"context_line":"{% endblock %}"}],"source_content_type":"text/html","patch_set":41,"id":"fa98f980_6de355d9","line":30,"updated":"2014-09-12 03:22:11.000000000","message":"another bootstrap 3 related bug.\n\nClass should be: class\u003d\"btn btn-default secondary cancel close\"\n\n(added the btn-default), otherwise the button won\u0027t have a border","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"{% block modal-footer %}"},{"line_number":29,"context_line":"  \u003cinput class\u003d\"btn btn-primary pull-right\" type\u003d\"submit\" value\u003d\"{% trans \"Import Namespace\" %}\" /\u003e"},{"line_number":30,"context_line":"  \u003ca href\u003d\"{% url \u0027horizon:admin:metadata_defs:index\u0027 %}\" class\u003d\"btn secondary cancel close\"\u003e{% trans \"Cancel\" %}\u003c/a\u003e"},{"line_number":31,"context_line":"{% endblock %}"}],"source_content_type":"text/html","patch_set":41,"id":"fa98f980_4a0aec8a","line":30,"in_reply_to":"fa98f980_6de355d9","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":9622,"name":"Cindy Lu","email":"clu@us.ibm.com","username":"clu14"},"change_message_id":"411d0171ca03356a8089a1ab18e810edf4c19524","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"{% block modal-body %}"},{"line_number":12,"context_line":"\u003cdiv class\u003d\"left\"\u003e"},{"line_number":13,"context_line":"    \u003cfieldset\u003e"},{"line_number":14,"context_line":"    {% include \"horizon/common/_form_fields.html\" %}"},{"line_number":15,"context_line":"    \u003c/fieldset\u003e"},{"line_number":16,"context_line":"\u003c/div\u003e"}],"source_content_type":"text/html","patch_set":47,"id":"baa201ad_15a44049","line":13,"updated":"2014-10-09 18:48:32.000000000","message":"nit: 2 space indent instead of 4","commit_id":"911b53af0b833523b4a5fdb6e91baab1823ab186"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"51de8a8ef9a76479361ae5f15d70227fb5bd7635","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"{% block modal-body %}"},{"line_number":12,"context_line":"\u003cdiv class\u003d\"left\"\u003e"},{"line_number":13,"context_line":"    \u003cfieldset\u003e"},{"line_number":14,"context_line":"    {% include \"horizon/common/_form_fields.html\" %}"},{"line_number":15,"context_line":"    \u003c/fieldset\u003e"},{"line_number":16,"context_line":"\u003c/div\u003e"}],"source_content_type":"text/html","patch_set":47,"id":"baa201ad_380d4d91","line":13,"in_reply_to":"baa201ad_15a44049","updated":"2014-10-14 03:35:45.000000000","message":"Done","commit_id":"911b53af0b833523b4a5fdb6e91baab1823ab186"}],"openstack_dashboard/dashboards/admin/metadata_defs/templates/metadata_defs/_detail_contents.html":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{% load i18n %}"},{"line_number":2,"context_line":"{% load url from future %}"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"\u003cdiv class\u003d\"clearfix\"\u003e"},{"line_number":5,"context_line":"  \u003ch3 class\u003d\"pull-left\"\u003e{{ namespace_name|default:_(\"Undefined\") }}\u003c/h3\u003e"}],"source_content_type":"text/html","patch_set":41,"id":"fa98f980_2d706d3f","line":2,"updated":"2014-09-12 03:22:11.000000000","message":"unused import","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{% load i18n %}"},{"line_number":2,"context_line":"{% load url from future %}"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"\u003cdiv class\u003d\"clearfix\"\u003e"},{"line_number":5,"context_line":"  \u003ch3 class\u003d\"pull-left\"\u003e{{ namespace_name|default:_(\"Undefined\") }}\u003c/h3\u003e"}],"source_content_type":"text/html","patch_set":41,"id":"fa98f980_32935e5c","line":2,"in_reply_to":"fa98f980_2d706d3f","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"}],"openstack_dashboard/dashboards/admin/metadata_defs/templates/metadata_defs/_detail_overview.html":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    \u003cdt\u003e{% trans \"Protected\" %}\u003c/dt\u003e"},{"line_number":20,"context_line":"    \u003cdd\u003e{{ namespace.protected|yesno|capfirst }}\u003c/dd\u003e"},{"line_number":21,"context_line":"    \u003cdt\u003e{% trans \"Created\" %}\u003c/dt\u003e"},{"line_number":22,"context_line":"    {% if namespace.created_at|default:_(\"None\") %}"},{"line_number":23,"context_line":"      \u003cdd\u003e{{ namespace.created_at|parse_isotime }}\u003c/dd\u003e"},{"line_number":24,"context_line":"    {% else %}"},{"line_number":25,"context_line":"      \u003cdd\u003e{% trans \"Unknown\" %}\u003c/dd\u003e"}],"source_content_type":"text/html","patch_set":41,"id":"fa98f980_0dbba90f","line":22,"updated":"2014-09-12 03:22:11.000000000","message":"If the created_at value  is empty, would it always result to \"None\" string, the else would never be called.","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    \u003cdt\u003e{% trans \"Protected\" %}\u003c/dt\u003e"},{"line_number":20,"context_line":"    \u003cdd\u003e{{ namespace.protected|yesno|capfirst }}\u003c/dd\u003e"},{"line_number":21,"context_line":"    \u003cdt\u003e{% trans \"Created\" %}\u003c/dt\u003e"},{"line_number":22,"context_line":"    {% if namespace.created_at|default:_(\"None\") %}"},{"line_number":23,"context_line":"      \u003cdd\u003e{{ namespace.created_at|parse_isotime }}\u003c/dd\u003e"},{"line_number":24,"context_line":"    {% else %}"},{"line_number":25,"context_line":"      \u003cdd\u003e{% trans \"Unknown\" %}\u003c/dd\u003e"}],"source_content_type":"text/html","patch_set":41,"id":"fa98f980_529c626a","line":22,"in_reply_to":"fa98f980_0dbba90f","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":25,"context_line":"      \u003cdd\u003e{% trans \"Unknown\" %}\u003c/dd\u003e"},{"line_number":26,"context_line":"    {% endif %}"},{"line_number":27,"context_line":"    \u003cdt\u003e{% trans \"Updated\" %}\u003c/dt\u003e"},{"line_number":28,"context_line":"    {% if namespace.updated_at|default:_(\"None\") %}"},{"line_number":29,"context_line":"      \u003cdd\u003e{{ namespace.updated_at|parse_isotime }}\u003c/dd\u003e"},{"line_number":30,"context_line":"    {% else %}"},{"line_number":31,"context_line":"      \u003cdd\u003e{% trans \"Never updated\" %}\u003c/dd\u003e"}],"source_content_type":"text/html","patch_set":41,"id":"fa98f980_cd20c14b","line":28,"updated":"2014-09-12 03:22:11.000000000","message":"Same comment on the default value.","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":25,"context_line":"      \u003cdd\u003e{% trans \"Unknown\" %}\u003c/dd\u003e"},{"line_number":26,"context_line":"    {% endif %}"},{"line_number":27,"context_line":"    \u003cdt\u003e{% trans \"Updated\" %}\u003c/dt\u003e"},{"line_number":28,"context_line":"    {% if namespace.updated_at|default:_(\"None\") %}"},{"line_number":29,"context_line":"      \u003cdd\u003e{{ namespace.updated_at|parse_isotime }}\u003c/dd\u003e"},{"line_number":30,"context_line":"    {% else %}"},{"line_number":31,"context_line":"      \u003cdd\u003e{% trans \"Never updated\" %}\u003c/dd\u003e"}],"source_content_type":"text/html","patch_set":41,"id":"fa98f980_72996678","line":28,"in_reply_to":"fa98f980_cd20c14b","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    \u003cdd\u003e"},{"line_number":43,"context_line":"      \u003cul\u003e"},{"line_number":44,"context_line":"        \u003cli\u003e{% trans \"Prefix: \" %}"},{"line_number":45,"context_line":"          {% if resource_type.prefix %}"},{"line_number":46,"context_line":"            {{ resource_type.prefix }}"},{"line_number":47,"context_line":"          {% else %}"},{"line_number":48,"context_line":"            \u003cem\u003e{% trans \"N/A\" %}\u003c/em\u003e"}],"source_content_type":"text/html","patch_set":41,"id":"fa98f980_4dbbf1e4","line":45,"updated":"2014-09-12 03:22:11.000000000","message":"This might also work: resource_type.prefix|default:_(\"N/A\")","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    \u003cdd\u003e"},{"line_number":43,"context_line":"      \u003cul\u003e"},{"line_number":44,"context_line":"        \u003cli\u003e{% trans \"Prefix: \" %}"},{"line_number":45,"context_line":"          {% if resource_type.prefix %}"},{"line_number":46,"context_line":"            {{ resource_type.prefix }}"},{"line_number":47,"context_line":"          {% else %}"},{"line_number":48,"context_line":"            \u003cem\u003e{% trans \"N/A\" %}\u003c/em\u003e"}],"source_content_type":"text/html","patch_set":41,"id":"fa98f980_ec22dda1","line":45,"in_reply_to":"fa98f980_4dbbf1e4","updated":"2014-09-12 12:15:45.000000000","message":"Done using {% with default_item_value\u003d\"\u003cem\u003e\"|add:_(\"N/A\")|add:\"\u003c/em\u003e\" %}.","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":49,"context_line":"          {% endif %}"},{"line_number":50,"context_line":"        \u003c/li\u003e"},{"line_number":51,"context_line":"        \u003cli\u003e{% trans \"Properties Target: \" %}"},{"line_number":52,"context_line":"          {% if resource_type.properties_target %}"},{"line_number":53,"context_line":"            {{ resource_type.properties_target }}"},{"line_number":54,"context_line":"          {% else %}"},{"line_number":55,"context_line":"            \u003cem\u003e{% trans \"N/A\" %}\u003c/em\u003e"}],"source_content_type":"text/html","patch_set":41,"id":"fa98f980_6dc0b550","line":52,"updated":"2014-09-12 03:22:11.000000000","message":"ditto","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":49,"context_line":"          {% endif %}"},{"line_number":50,"context_line":"        \u003c/li\u003e"},{"line_number":51,"context_line":"        \u003cli\u003e{% trans \"Properties Target: \" %}"},{"line_number":52,"context_line":"          {% if resource_type.properties_target %}"},{"line_number":53,"context_line":"            {{ resource_type.properties_target }}"},{"line_number":54,"context_line":"          {% else %}"},{"line_number":55,"context_line":"            \u003cem\u003e{% trans \"N/A\" %}\u003c/em\u003e"}],"source_content_type":"text/html","patch_set":41,"id":"fa98f980_2c3865d2","line":52,"in_reply_to":"fa98f980_6dc0b550","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"f54d6044dd6f261ce07a0365991bfdde113fdcc7","unresolved":false,"context_lines":[{"line_number":29,"context_line":"  \u003ch4\u003e{% trans \"Associated Resource Types\" %}\u003c/h4\u003e"},{"line_number":30,"context_line":"  \u003chr class\u003d\"header_rule\"\u003e"},{"line_number":31,"context_line":"  \u003cdl\u003e"},{"line_number":32,"context_line":"  {% with default_item_value\u003d\"\u003cem\u003e\"|add:_(\"N/A\")|add:\"\u003c/em\u003e\" %}"},{"line_number":33,"context_line":"    {% for resource_type in namespace.resource_type_associations %}"},{"line_number":34,"context_line":"      \u003cdt\u003e{{ resource_type.name }}\u003c/dt\u003e"},{"line_number":35,"context_line":"      \u003cdd\u003e"}],"source_content_type":"text/html","patch_set":42,"id":"fa98f980_1649e730","line":32,"updated":"2014-09-12 15:11:44.000000000","message":"Changed from \"N/A\" to \"None\".  The \"N/A\" kind of looks like an actual prefix.","commit_id":"b08ef920933f214cf8a3da4654aa17c6681c7bb4"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"f54d6044dd6f261ce07a0365991bfdde113fdcc7","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        \u003c/ul\u003e"},{"line_number":44,"context_line":"      \u003c/dd\u003e"},{"line_number":45,"context_line":"      {% empty %}"},{"line_number":46,"context_line":"        \u003cli\u003e\u003cem\u003e{% trans \"No associations defined.\" %}\u003c/em\u003e\u003c/li\u003e"},{"line_number":47,"context_line":"    {% endfor %}"},{"line_number":48,"context_line":"  {% endwith %}"},{"line_number":49,"context_line":"  \u003c/dl\u003e"}],"source_content_type":"text/html","patch_set":42,"id":"fa98f980_16948789","line":46,"updated":"2014-09-12 15:11:44.000000000","message":"removed \u003cli\u003e causing oddly indented bullet.","commit_id":"b08ef920933f214cf8a3da4654aa17c6681c7bb4"},{"author":{"_account_id":9622,"name":"Cindy Lu","email":"clu@us.ibm.com","username":"clu14"},"change_message_id":"7db7e41acd507cf50e6fd9ed86ae146dc53f364d","unresolved":false,"context_lines":[{"line_number":5,"context_line":"\u003cdiv class\u003d\"info row-fluid detail\"\u003e"},{"line_number":6,"context_line":"  \u003ch4\u003e{% trans \"Info\" %}\u003c/h4\u003e"},{"line_number":7,"context_line":"  \u003chr class\u003d\"header_rule\"\u003e"},{"line_number":8,"context_line":"  \u003cdl\u003e"},{"line_number":9,"context_line":"    \u003cdt\u003e{% trans \"Display Name\" %}\u003c/dt\u003e"},{"line_number":10,"context_line":"    \u003cdd\u003e{{ namespace.display_name|default:_(\"None\") }}\u003c/dd\u003e"},{"line_number":11,"context_line":"    \u003cdt\u003e{% trans \"Namespace\" %}\u003c/dt\u003e"}],"source_content_type":"text/html","patch_set":46,"id":"baa201ad_820758c9","line":8,"updated":"2014-10-07 00:58:24.000000000","message":"possibly add class\u003d\"dl-horizontal\"\n\nper here: https://review.openstack.org/#/c/115693/","commit_id":"081b1d7883150932df7773cfc2708a384164a049"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"37bd02c062ab979f20ec4bddca8d78a5aff55dae","unresolved":false,"context_lines":[{"line_number":5,"context_line":"\u003cdiv class\u003d\"info row-fluid detail\"\u003e"},{"line_number":6,"context_line":"  \u003ch4\u003e{% trans \"Info\" %}\u003c/h4\u003e"},{"line_number":7,"context_line":"  \u003chr class\u003d\"header_rule\"\u003e"},{"line_number":8,"context_line":"  \u003cdl\u003e"},{"line_number":9,"context_line":"    \u003cdt\u003e{% trans \"Display Name\" %}\u003c/dt\u003e"},{"line_number":10,"context_line":"    \u003cdd\u003e{{ namespace.display_name|default:_(\"None\") }}\u003c/dd\u003e"},{"line_number":11,"context_line":"    \u003cdt\u003e{% trans \"Namespace\" %}\u003c/dt\u003e"}],"source_content_type":"text/html","patch_set":46,"id":"baa201ad_434732bc","line":8,"in_reply_to":"baa201ad_820758c9","updated":"2014-10-07 05:51:19.000000000","message":"Added and also adjusted based on the latest detail overview from images to match all classes used.\n\nhttps://review.openstack.org/#/c/115693/24/openstack_dashboard/dashboards/project/images/templates/images/images/_detail_overview.html","commit_id":"081b1d7883150932df7773cfc2708a384164a049"}],"openstack_dashboard/dashboards/admin/metadata_defs/templates/metadata_defs/_resource_types.html":[{"author":{"_account_id":5623,"name":"David Lyle","email":"dklyle0@gmail.com","username":"david-lyle"},"change_message_id":"f46485d1c91de7e73bad5ce4bbefa61aae453d48","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{% extends \u0027admin/metadata_defs/resource_types.html\u0027 %}"},{"line_number":2,"context_line":"{% load i18n %}"},{"line_number":3,"context_line":"{% block title %}"},{"line_number":4,"context_line":"  {% trans \"Namespace Resource Type Associations\" %}{% endblock %}"},{"line_number":5,"context_line":""}],"source_content_type":"text/html","patch_set":55,"id":"3a961159_b74a5453","line":2,"updated":"2014-12-17 00:53:10.000000000","message":"{% load url from future %} will maintain django 1.4 support, please add","commit_id":"339651cf72cbfa7847123310f3a8c199f2dd0f2d"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"8378ed838863f0677df9882f337939e389e0e9ee","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{% extends \u0027admin/metadata_defs/resource_types.html\u0027 %}"},{"line_number":2,"context_line":"{% load i18n %}"},{"line_number":3,"context_line":"{% block title %}"},{"line_number":4,"context_line":"  {% trans \"Namespace Resource Type Associations\" %}{% endblock %}"},{"line_number":5,"context_line":""}],"source_content_type":"text/html","patch_set":55,"id":"3a961159_96d0e2f8","line":2,"in_reply_to":"3a961159_b74a5453","updated":"2014-12-17 17:18:28.000000000","message":"Done","commit_id":"339651cf72cbfa7847123310f3a8c199f2dd0f2d"}],"openstack_dashboard/dashboards/admin/metadata_defs/templates/metadata_defs/resource_types.html":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":12,"context_line":"            \u003cdiv\u003e"},{"line_number":13,"context_line":"                \u003cdiv class\u003d\"header\"\u003e"},{"line_number":14,"context_line":"                    \u003cdiv class\u003d\"fake_table fake_table_header\"\u003e"},{"line_number":15,"context_line":"                        \u003cspan class\u003d\"members_title\"\u003eAvailable Types\u003c/span\u003e"},{"line_number":16,"context_line":"                        \u003cinput id\u003d\"resource_type_filter\" class\u003d\"filter\" type\u003d\"text\" placeholder\u003d\"Filter\" name\u003d\"resource_type_filter\" ng-model\u003d\"searchResource\" ng-change\u003d\"filter_changed()\"/\u003e"},{"line_number":17,"context_line":"                    \u003c/div\u003e"},{"line_number":18,"context_line":"                \u003c/div\u003e"}],"source_content_type":"text/html","patch_set":41,"id":"fa98f980_65ad2984","line":15,"updated":"2014-09-12 03:22:11.000000000","message":"Must be transalatable","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":12,"context_line":"            \u003cdiv\u003e"},{"line_number":13,"context_line":"                \u003cdiv class\u003d\"header\"\u003e"},{"line_number":14,"context_line":"                    \u003cdiv class\u003d\"fake_table fake_table_header\"\u003e"},{"line_number":15,"context_line":"                        \u003cspan class\u003d\"members_title\"\u003eAvailable Types\u003c/span\u003e"},{"line_number":16,"context_line":"                        \u003cinput id\u003d\"resource_type_filter\" class\u003d\"filter\" type\u003d\"text\" placeholder\u003d\"Filter\" name\u003d\"resource_type_filter\" ng-model\u003d\"searchResource\" ng-change\u003d\"filter_changed()\"/\u003e"},{"line_number":17,"context_line":"                    \u003c/div\u003e"},{"line_number":18,"context_line":"                \u003c/div\u003e"}],"source_content_type":"text/html","patch_set":41,"id":"fa98f980_8c05d17b","line":15,"in_reply_to":"fa98f980_65ad2984","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":66,"context_line":"{% block modal-footer %}"},{"line_number":67,"context_line":"    \u003cdiv\u003e"},{"line_number":68,"context_line":"        \u003cinput class\u003d\"btn btn-primary pull-right\" type\u003d\"submit\" ng:click\u003d\"saveResourceTypes()\" value\u003d\"{% trans \"Save\" %}\" /\u003e"},{"line_number":69,"context_line":"        \u003ca class\u003d\"btn secondary cancel close\"\u003e{% trans \"Cancel\" %}\u003c/a\u003e"},{"line_number":70,"context_line":"        \u003cinput type\u003d\"hidden\" name\u003d\"resource_types\" ng-value\u003d\"resource_types\" ng-model\u003d\"resource_types\"\u003e"},{"line_number":71,"context_line":"    \u003c/div\u003e"},{"line_number":72,"context_line":"{% endblock %}"}],"source_content_type":"text/html","patch_set":41,"id":"fa98f980_e5c0392d","line":69,"updated":"2014-09-12 03:22:11.000000000","message":"bootstrap3 issue change to class\u003d\"btn btn-default secondary cancel close\", otherwise the Cancel button won\u0027t have a border","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":66,"context_line":"{% block modal-footer %}"},{"line_number":67,"context_line":"    \u003cdiv\u003e"},{"line_number":68,"context_line":"        \u003cinput class\u003d\"btn btn-primary pull-right\" type\u003d\"submit\" ng:click\u003d\"saveResourceTypes()\" value\u003d\"{% trans \"Save\" %}\" /\u003e"},{"line_number":69,"context_line":"        \u003ca class\u003d\"btn secondary cancel close\"\u003e{% trans \"Cancel\" %}\u003c/a\u003e"},{"line_number":70,"context_line":"        \u003cinput type\u003d\"hidden\" name\u003d\"resource_types\" ng-value\u003d\"resource_types\" ng-model\u003d\"resource_types\"\u003e"},{"line_number":71,"context_line":"    \u003c/div\u003e"},{"line_number":72,"context_line":"{% endblock %}"}],"source_content_type":"text/html","patch_set":41,"id":"fa98f980_4cef69b1","line":69,"in_reply_to":"fa98f980_e5c0392d","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":9622,"name":"Cindy Lu","email":"clu@us.ibm.com","username":"clu14"},"change_message_id":"411d0171ca03356a8089a1ab18e810edf4c19524","unresolved":false,"context_lines":[{"line_number":13,"context_line":"                \u003cdiv class\u003d\"header\"\u003e"},{"line_number":14,"context_line":"                    \u003cdiv class\u003d\"fake_table fake_table_header\"\u003e"},{"line_number":15,"context_line":"                        \u003cspan class\u003d\"members_title\"\u003e{% trans \"Available Types\" %}\u003c/span\u003e"},{"line_number":16,"context_line":"                        \u003cinput id\u003d\"resource_type_filter\" class\u003d\"filter\" type\u003d\"text\" placeholder\u003d\"Filter\" name\u003d\"resource_type_filter\" ng-model\u003d\"searchResource\" ng-change\u003d\"filter_changed()\"/\u003e"},{"line_number":17,"context_line":"                    \u003c/div\u003e"},{"line_number":18,"context_line":"                \u003c/div\u003e"},{"line_number":19,"context_line":""}],"source_content_type":"text/html","patch_set":47,"id":"baa201ad_a687b7d6","line":16,"updated":"2014-10-09 18:48:32.000000000","message":"this is styled differently than other filters (Identity \u003e Projects \u003e Modify Users membership widget):\n\nhttps://github.com/openstack/horizon/blob/master/horizon/templates/horizon/common/_workflow_step_update_members.html#L21\n\nshould also be right aligned and have search icon","commit_id":"911b53af0b833523b4a5fdb6e91baab1823ab186"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"2cb1fa9c05d3d0d4a1811c16735694b4e1b8597c","unresolved":false,"context_lines":[{"line_number":13,"context_line":"                \u003cdiv class\u003d\"header\"\u003e"},{"line_number":14,"context_line":"                    \u003cdiv class\u003d\"fake_table fake_table_header\"\u003e"},{"line_number":15,"context_line":"                        \u003cspan class\u003d\"members_title\"\u003e{% trans \"Available Types\" %}\u003c/span\u003e"},{"line_number":16,"context_line":"                        \u003cinput id\u003d\"resource_type_filter\" class\u003d\"filter\" type\u003d\"text\" placeholder\u003d\"Filter\" name\u003d\"resource_type_filter\" ng-model\u003d\"searchResource\" ng-change\u003d\"filter_changed()\"/\u003e"},{"line_number":17,"context_line":"                    \u003c/div\u003e"},{"line_number":18,"context_line":"                \u003c/div\u003e"},{"line_number":19,"context_line":""}],"source_content_type":"text/html","patch_set":47,"id":"baa201ad_7232495f","line":16,"in_reply_to":"baa201ad_a687b7d6","updated":"2014-10-16 04:31:53.000000000","message":"Done","commit_id":"911b53af0b833523b4a5fdb6e91baab1823ab186"},{"author":{"_account_id":9622,"name":"Cindy Lu","email":"clu@us.ibm.com","username":"clu14"},"change_message_id":"411d0171ca03356a8089a1ab18e810edf4c19524","unresolved":false,"context_lines":[{"line_number":17,"context_line":"                    \u003c/div\u003e"},{"line_number":18,"context_line":"                \u003c/div\u003e"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"                \u003cdiv class\u003d\"fake_table fake_update_members_table\"\u003e"},{"line_number":22,"context_line":"                    \u003cdiv class\u003d\"available_members available_update_members\"\u003e"},{"line_number":23,"context_line":"                        \u003cul ng-repeat\u003d\"resource_type in resource_types  | filter:searchResource\""}],"source_content_type":"text/html","patch_set":47,"id":"baa201ad_0657a327","line":20,"updated":"2014-10-09 18:48:32.000000000","message":"want to clarify: prefix field is not required, right?","commit_id":"911b53af0b833523b4a5fdb6e91baab1823ab186"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"51de8a8ef9a76479361ae5f15d70227fb5bd7635","unresolved":false,"context_lines":[{"line_number":17,"context_line":"                    \u003c/div\u003e"},{"line_number":18,"context_line":"                \u003c/div\u003e"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"                \u003cdiv class\u003d\"fake_table fake_update_members_table\"\u003e"},{"line_number":22,"context_line":"                    \u003cdiv class\u003d\"available_members available_update_members\"\u003e"},{"line_number":23,"context_line":"                        \u003cul ng-repeat\u003d\"resource_type in resource_types  | filter:searchResource\""}],"source_content_type":"text/html","patch_set":47,"id":"baa201ad_78b0b58b","line":20,"in_reply_to":"baa201ad_0657a327","updated":"2014-10-14 03:35:45.000000000","message":"Correct.  Not required.","commit_id":"911b53af0b833523b4a5fdb6e91baab1823ab186"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"10cbfc9b223bc514953b9fffd84a49a8f24a985e","unresolved":false,"context_lines":[{"line_number":28,"context_line":"          \u003cdiv class\u003d\"available_members available_update_members\"\u003e"},{"line_number":29,"context_line":"            \u003cul ng-repeat\u003d\"resource_type in resource_types  | filter:searchResource\""},{"line_number":30,"context_line":"                class\u003d\"nav nav-pills btn-group {$$last ? \u0027 last_stripe\u0027: \u0027\u0027$}\""},{"line_number":31,"context_line":"                ng-class-odd\u003d\"\u0027dark_stripe\u0027\""},{"line_number":32,"context_line":"                ng-class-even\u003d\"\u0027light_stripe\u0027\""},{"line_number":33,"context_line":"                style\u003d\"margin-left: 0px;\"\u003e"},{"line_number":34,"context_line":"              \u003cli class\u003d\"select_resource\"\u003e"}],"source_content_type":"text/html","patch_set":58,"id":"3a961159_aa71f1df","line":31,"updated":"2014-12-17 20:11:07.000000000","message":"why does the value need to have the single quote?","commit_id":"dd86a19cdbdafb9b28fdcff71345024cae02ae45"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"32191e679d53ff47801e90653c4e72f949e7d99e","unresolved":false,"context_lines":[{"line_number":28,"context_line":"          \u003cdiv class\u003d\"available_members available_update_members\"\u003e"},{"line_number":29,"context_line":"            \u003cul ng-repeat\u003d\"resource_type in resource_types  | filter:searchResource\""},{"line_number":30,"context_line":"                class\u003d\"nav nav-pills btn-group {$$last ? \u0027 last_stripe\u0027: \u0027\u0027$}\""},{"line_number":31,"context_line":"                ng-class-odd\u003d\"\u0027dark_stripe\u0027\""},{"line_number":32,"context_line":"                ng-class-even\u003d\"\u0027light_stripe\u0027\""},{"line_number":33,"context_line":"                style\u003d\"margin-left: 0px;\"\u003e"},{"line_number":34,"context_line":"              \u003cli class\u003d\"select_resource\"\u003e"}],"source_content_type":"text/html","patch_set":58,"id":"3a961159_30bf2e62","line":31,"in_reply_to":"3a961159_aa71f1df","updated":"2014-12-17 23:16:10.000000000","message":"I believe it is because angular evaluates the contents of the attribute as an expression.  If you don\u0027t single quote it, angular doesn\u0027t know it is a string. Just to be sure, I tried just single quote and just double quote, but it doesn\u0027t work.  Even pycharm highlights it correctly only when the double - single quote way shown here.","commit_id":"dd86a19cdbdafb9b28fdcff71345024cae02ae45"}],"openstack_dashboard/dashboards/admin/metadata_defs/tests.py":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 Hewlett-Packard Development Company, L.P."},{"line_number":2,"context_line":"# Copyright 2012 United States Government as represented by the"},{"line_number":3,"context_line":"# Administrator of the National Aeronautics and Space Administration."},{"line_number":4,"context_line":"# All Rights Reserved."},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"# Copyright 2012 Nebula, Inc."},{"line_number":7,"context_line":"# Copyright 2012 OpenStack Foundation"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_0d8d697c","line":4,"updated":"2014-09-12 03:22:11.000000000","message":"Header seem messed up here","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 Hewlett-Packard Development Company, L.P."},{"line_number":2,"context_line":"# Copyright 2012 United States Government as represented by the"},{"line_number":3,"context_line":"# Administrator of the National Aeronautics and Space Administration."},{"line_number":4,"context_line":"# All Rights Reserved."},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"# Copyright 2012 Nebula, Inc."},{"line_number":7,"context_line":"# Copyright 2012 OpenStack Foundation"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_af052712","line":4,"in_reply_to":"fa98f980_0d8d697c","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        self.mox.ReplayAll()"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        res \u003d self.client.get(reverse(constants.METADATA_INDEX_REVERSE))"},{"line_number":74,"context_line":"        self.assertTemplateUsed(res, constants.METADATA_INDEX_TEMPLATE)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    @test.create_stubs({api.glance: (\u0027metadefs_namespace_list\u0027,)})"},{"line_number":77,"context_line":"    def test_delete_availability(self):"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_2dd5cde4","line":74,"updated":"2014-09-12 03:22:11.000000000","message":"Check the error msg count\n\nself.assertMessageCount(error\u003d1)","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        self.mox.ReplayAll()"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        res \u003d self.client.get(reverse(constants.METADATA_INDEX_REVERSE))"},{"line_number":74,"context_line":"        self.assertTemplateUsed(res, constants.METADATA_INDEX_TEMPLATE)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    @test.create_stubs({api.glance: (\u0027metadefs_namespace_list\u0027,)})"},{"line_number":77,"context_line":"    def test_delete_availability(self):"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_326b5e1f","line":74,"in_reply_to":"fa98f980_2dd5cde4","updated":"2014-09-12 12:15:45.000000000","message":"It\u0027s impossible here now, please check how Image admin widget handles this. The problem is that exception thrown by glanceclient is considered unrecoverable by Horizon and rethrown in exceptions.handle. This is causing any page using the glanceclient (Images, Metadefs) to fail when glance-api is down.\n\nI do consider it as a bug, but out of the scope of this patch. I\u0027ll investigate it more and post it on launchpad, then I can work on a fix. Is it acceptable?","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"e8797def446aa861317b254b15210bfc2701958e","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        self.mox.ReplayAll()"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        res \u003d self.client.get(reverse(constants.METADATA_INDEX_REVERSE))"},{"line_number":74,"context_line":"        self.assertTemplateUsed(res, constants.METADATA_INDEX_TEMPLATE)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    @test.create_stubs({api.glance: (\u0027metadefs_namespace_list\u0027,)})"},{"line_number":77,"context_line":"    def test_delete_availability(self):"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_36698b8c","line":74,"in_reply_to":"fa98f980_326b5e1f","updated":"2014-09-12 15:10:54.000000000","message":"Yes, this is the same problem I had originally with this code.  Spent quite a bit of time trying to figure out why it wouldn\u0027t work. I agree a separate defect should be filed.","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            self.assertTrue(\u0027delete\u0027 in"},{"line_number":95,"context_line":"                            [a.name for a in row_actions])"},{"line_number":96,"context_line":"            self.assertTrue(\u0027manage_resource_types\u0027 in"},{"line_number":97,"context_line":"                            [a.name for a in row_actions])"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    @test.create_stubs({api.glance: (\u0027metadefs_namespace_get\u0027,)})"},{"line_number":100,"context_line":"    def test_metadata_defs_get(self):"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_0def29b2","line":97,"updated":"2014-09-12 03:22:11.000000000","message":"check the success msg count","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            self.assertTrue(\u0027delete\u0027 in"},{"line_number":95,"context_line":"                            [a.name for a in row_actions])"},{"line_number":96,"context_line":"            self.assertTrue(\u0027manage_resource_types\u0027 in"},{"line_number":97,"context_line":"                            [a.name for a in row_actions])"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    @test.create_stubs({api.glance: (\u0027metadefs_namespace_get\u0027,)})"},{"line_number":100,"context_line":"    def test_metadata_defs_get(self):"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_12d2daff","line":97,"in_reply_to":"fa98f980_0def29b2","updated":"2014-09-12 12:15:45.000000000","message":"I don\u0027t understand why I would need to assert for messages here. This test only checks if delete action is available correctly, it doesn\u0027t actually call delete.","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":263,"context_line":"        res \u003d self.client.post(reverse(constants.METADATA_CREATE_REVERSE),"},{"line_number":264,"context_line":"                               form_data)"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"        self.assertFormError(res,"},{"line_number":267,"context_line":"                             \"form\","},{"line_number":268,"context_line":"                             None,"},{"line_number":269,"context_line":"                             [\u0027There was a problem loading the namespace: No JSON object could be decoded.\u0027])  # noqa"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_c5ced559","line":266,"updated":"2014-09-12 03:22:11.000000000","message":"You could move \"res\" to the next line so that arguments will have more space before you need to wrap the line.","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":263,"context_line":"        res \u003d self.client.post(reverse(constants.METADATA_CREATE_REVERSE),"},{"line_number":264,"context_line":"                               form_data)"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"        self.assertFormError(res,"},{"line_number":267,"context_line":"                             \"form\","},{"line_number":268,"context_line":"                             None,"},{"line_number":269,"context_line":"                             [\u0027There was a problem loading the namespace: No JSON object could be decoded.\u0027])  # noqa"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_cfa26bfb","line":266,"in_reply_to":"fa98f980_c5ced559","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":266,"context_line":"        self.assertFormError(res,"},{"line_number":267,"context_line":"                             \"form\","},{"line_number":268,"context_line":"                             None,"},{"line_number":269,"context_line":"                             [\u0027There was a problem loading the namespace: No JSON object could be decoded.\u0027])  # noqa"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    def test_admin_metadata_defs_create_namespace_empty_json_post_raw(self):"},{"line_number":272,"context_line":"        form_data \u003d {"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_85004d67","line":269,"updated":"2014-09-12 03:22:11.000000000","message":"Would not recommend to hack this with #noqa,  Please wrap the line instead.","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":266,"context_line":"        self.assertFormError(res,"},{"line_number":267,"context_line":"                             \"form\","},{"line_number":268,"context_line":"                             None,"},{"line_number":269,"context_line":"                             [\u0027There was a problem loading the namespace: No JSON object could be decoded.\u0027])  # noqa"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    def test_admin_metadata_defs_create_namespace_empty_json_post_raw(self):"},{"line_number":272,"context_line":"        form_data \u003d {"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_6f5c1f1a","line":269,"in_reply_to":"fa98f980_85004d67","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":277,"context_line":"        res \u003d self.client.post(reverse(constants.METADATA_CREATE_REVERSE),"},{"line_number":278,"context_line":"                               form_data)"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"        self.assertFormError(res,"},{"line_number":281,"context_line":"                             \"form\","},{"line_number":282,"context_line":"                             None,"},{"line_number":283,"context_line":"                             [\u0027No input was provided for the namespace content.\u0027])  # noqa"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_05d53de4","line":280,"updated":"2014-09-12 03:22:11.000000000","message":"same comments as above","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":277,"context_line":"        res \u003d self.client.post(reverse(constants.METADATA_CREATE_REVERSE),"},{"line_number":278,"context_line":"                               form_data)"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"        self.assertFormError(res,"},{"line_number":281,"context_line":"                             \"form\","},{"line_number":282,"context_line":"                             None,"},{"line_number":283,"context_line":"                             [\u0027No input was provided for the namespace content.\u0027])  # noqa"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_8f9ce3c1","line":280,"in_reply_to":"fa98f980_05d53de4","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        res \u003d self.client.post(reverse(constants.METADATA_CREATE_REVERSE),"},{"line_number":292,"context_line":"                               form_data)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"        self.assertFormError(res,"},{"line_number":295,"context_line":"                             \"form\","},{"line_number":296,"context_line":"                             None,"},{"line_number":297,"context_line":"                             [\u0027No input was provided for the namespace content.\u0027])  # noqa"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_450ae58a","line":294,"updated":"2014-09-12 03:22:11.000000000","message":"and here too","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        res \u003d self.client.post(reverse(constants.METADATA_CREATE_REVERSE),"},{"line_number":292,"context_line":"                               form_data)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"        self.assertFormError(res,"},{"line_number":295,"context_line":"                             \"form\","},{"line_number":296,"context_line":"                             None,"},{"line_number":297,"context_line":"                             [\u0027No input was provided for the namespace content.\u0027])  # noqa"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_efa72f09","line":294,"in_reply_to":"fa98f980_450ae58a","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":5623,"name":"David Lyle","email":"dklyle0@gmail.com","username":"david-lyle"},"change_message_id":"f46485d1c91de7e73bad5ce4bbefa61aae453d48","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            IsA(http.HttpRequest),"},{"line_number":89,"context_line":"            sort_dir\u003d\u0027asc\u0027,"},{"line_number":90,"context_line":"            marker\u003dNone,"},{"line_number":91,"context_line":"            paginate\u003dTrue).AndReturn([namespace_list, False, False])"},{"line_number":92,"context_line":"        self.mox.ReplayAll()"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        res \u003d self.client.get(reverse(constants.METADATA_INDEX_URL))"}],"source_content_type":"text/x-python","patch_set":55,"id":"3a961159_77f8ecc4","line":91,"updated":"2014-12-17 00:53:10.000000000","message":"this method actually returns a tuple, not a list. So this is not consistent with the api definition. the return values are handled appropriately either way, but if the calling code changes to expect a tuple, this test is inaccurate.","commit_id":"339651cf72cbfa7847123310f3a8c199f2dd0f2d"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"8378ed838863f0677df9882f337939e389e0e9ee","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            IsA(http.HttpRequest),"},{"line_number":89,"context_line":"            sort_dir\u003d\u0027asc\u0027,"},{"line_number":90,"context_line":"            marker\u003dNone,"},{"line_number":91,"context_line":"            paginate\u003dTrue).AndReturn([namespace_list, False, False])"},{"line_number":92,"context_line":"        self.mox.ReplayAll()"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        res \u003d self.client.get(reverse(constants.METADATA_INDEX_URL))"}],"source_content_type":"text/x-python","patch_set":55,"id":"3a961159_966c6238","line":91,"in_reply_to":"3a961159_77f8ecc4","updated":"2014-12-17 17:18:28.000000000","message":"Done!\n\nImpressive catch! I found it in a couple other spots, so fixed them as well.","commit_id":"339651cf72cbfa7847123310f3a8c199f2dd0f2d"}],"openstack_dashboard/dashboards/admin/metadata_defs/views.py":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    success_url \u003d reverse_lazy(constants.METADATA_INDEX_REVERSE)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def get_initial(self):"},{"line_number":122,"context_line":"        resource_types \u003d glance.metadefs_namespace_resource_types("},{"line_number":123,"context_line":"            self.request, self.kwargs[\"id\"])"},{"line_number":124,"context_line":"        return {\u0027id\u0027: self.kwargs[\"id\"],"},{"line_number":125,"context_line":"                \u0027resource_types\u0027: resource_types}"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_859bed64","line":122,"updated":"2014-09-12 03:22:11.000000000","message":"wrap api call in try-except block","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    success_url \u003d reverse_lazy(constants.METADATA_INDEX_REVERSE)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def get_initial(self):"},{"line_number":122,"context_line":"        resource_types \u003d glance.metadefs_namespace_resource_types("},{"line_number":123,"context_line":"            self.request, self.kwargs[\"id\"])"},{"line_number":124,"context_line":"        return {\u0027id\u0027: self.kwargs[\"id\"],"},{"line_number":125,"context_line":"                \u0027resource_types\u0027: resource_types}"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_cc0fd937","line":122,"in_reply_to":"fa98f980_859bed64","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        # Set the basic types that aren\u0027t already associated"},{"line_number":134,"context_line":"        result \u003d [unselected_type for unselected_type in"},{"line_number":135,"context_line":"                  glance.metadefs_resource_types_list(self.request)"},{"line_number":136,"context_line":"                  if unselected_type[\u0027name\u0027] not in selected_type_names]"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        # Add the resource types previously associated, includes prefix, etc"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_e5a9197d","line":135,"updated":"2014-09-12 03:22:11.000000000","message":"wrap api call in try-except block","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        # Set the basic types that aren\u0027t already associated"},{"line_number":134,"context_line":"        result \u003d [unselected_type for unselected_type in"},{"line_number":135,"context_line":"                  glance.metadefs_resource_types_list(self.request)"},{"line_number":136,"context_line":"                  if unselected_type[\u0027name\u0027] not in selected_type_names]"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        # Add the resource types previously associated, includes prefix, etc"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_ec149d4e","line":135,"in_reply_to":"fa98f980_e5a9197d","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"19f50dea0e272f8f9327aeebd0882c555d421ca8","unresolved":false,"context_lines":[{"line_number":142,"context_line":"            result.insert(0, selected_type)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        context[\u0027id\u0027] \u003d self.kwargs[\u0027id\u0027]"},{"line_number":145,"context_line":"        context[\"resource_types\"] \u003d json.dumps(result)"},{"line_number":146,"context_line":"        return context"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_25b7a1d9","line":145,"updated":"2014-09-12 03:22:11.000000000","message":"this could throw an exception too that must be handled","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f5f90db58a2068f63d43d0a5f15bdb82c58d38c8","unresolved":false,"context_lines":[{"line_number":142,"context_line":"            result.insert(0, selected_type)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        context[\u0027id\u0027] \u003d self.kwargs[\u0027id\u0027]"},{"line_number":145,"context_line":"        context[\"resource_types\"] \u003d json.dumps(result)"},{"line_number":146,"context_line":"        return context"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa98f980_2c0a2526","line":145,"in_reply_to":"fa98f980_25b7a1d9","updated":"2014-09-12 12:15:45.000000000","message":"Done","commit_id":"1b5fa6cb99e44df4651ccc145b317f3bffb20262"},{"author":{"_account_id":9622,"name":"Cindy Lu","email":"clu@us.ibm.com","username":"clu14"},"change_message_id":"411d0171ca03356a8089a1ab18e810edf4c19524","unresolved":false,"context_lines":[{"line_number":74,"context_line":"            self._more \u003d False"},{"line_number":75,"context_line":"            msg \u003d _(\u0027Error getting metadata definitions.\u0027)"},{"line_number":76,"context_line":"            exceptions.handle(self.request, msg)"},{"line_number":77,"context_line":"        return namespaces"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"class CreateView(forms.ModalFormView):"}],"source_content_type":"text/x-python","patch_set":47,"id":"baa201ad_21e3b134","line":77,"updated":"2014-10-09 18:48:32.000000000","message":"pagination does not work for me.  the marker shows up but doesn\u0027t link... :(","commit_id":"911b53af0b833523b4a5fdb6e91baab1823ab186"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"2cb1fa9c05d3d0d4a1811c16735694b4e1b8597c","unresolved":false,"context_lines":[{"line_number":74,"context_line":"            self._more \u003d False"},{"line_number":75,"context_line":"            msg \u003d _(\u0027Error getting metadata definitions.\u0027)"},{"line_number":76,"context_line":"            exceptions.handle(self.request, msg)"},{"line_number":77,"context_line":"        return namespaces"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"class CreateView(forms.ModalFormView):"}],"source_content_type":"text/x-python","patch_set":47,"id":"baa201ad_e654c323","line":77,"in_reply_to":"baa201ad_21e3b134","updated":"2014-10-16 04:31:53.000000000","message":"Thanks for trying this out!\n\nI dug into this and it turns out that the python-glanceclient didn\u0027t have support for passing the parameters through to support pagination, even though the REST API did.  I had tested this with a local temporary patch a month ago and had asked a colleague to make the fix in glanceclient.  That got missed, so I opened a bug on the glanceclient and just submitted up a patch for this support to be added.\n\nhttps://review.openstack.org/#/c/128791/\n\nSo, this is actually a bug in the glance client preventing pagination. Once that bug is in, then the pagination will work as expected.","commit_id":"911b53af0b833523b4a5fdb6e91baab1823ab186"}],"openstack_dashboard/settings.py":[{"author":{"_account_id":6650,"name":"Eric Peterson","email":"ejpetey@gmail.com","username":"ericpeterson-l"},"change_message_id":"bf8f23991d90c6e31d6da627160dfa44e4f46df7","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    \u0027compressor.filters.css_default.CssAbsoluteFilter\u0027,"},{"line_number":149,"context_line":")"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"COMPRESS_ENABLED \u003d False"},{"line_number":152,"context_line":"COMPRESS_OUTPUT_DIR \u003d \u0027dashboard\u0027"},{"line_number":153,"context_line":"COMPRESS_CSS_HASHING_METHOD \u003d \u0027hash\u0027"},{"line_number":154,"context_line":"COMPRESS_PARSER \u003d \u0027compressor.parser.HtmlParser\u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"baada198_407bb479","line":151,"updated":"2014-08-08 16:20:28.000000000","message":"change this back please, it will cause issues","commit_id":"125d80e042a7d93ab53b55a58e505d0bb8bddc67"}],"openstack_dashboard/static/dashboard/scss/horizon.scss":[{"author":{"_account_id":9622,"name":"Cindy Lu","email":"clu@us.ibm.com","username":"clu14"},"change_message_id":"7db7e41acd507cf50e6fd9ed86ae146dc53f364d","unresolved":false,"context_lines":[{"line_number":1702,"context_line":"    margin-left: 10px;"},{"line_number":1703,"context_line":"    margin-top: 15px;"},{"line_number":1704,"context_line":"    margin-bottom: 15px;"},{"line_number":1705,"context_line":"    margin-right: 7px;"},{"line_number":1706,"context_line":"  }"},{"line_number":1707,"context_line":""},{"line_number":1708,"context_line":"  /* Member lists */"}],"source_content_type":"text/x-scss","patch_set":46,"id":"baa201ad_621514e4","line":1705,"updated":"2014-10-07 00:58:24.000000000","message":"combine into one line?\n\nmargin: 15px 7px 15px 10px","commit_id":"081b1d7883150932df7773cfc2708a384164a049"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"37bd02c062ab979f20ec4bddca8d78a5aff55dae","unresolved":false,"context_lines":[{"line_number":1702,"context_line":"    margin-left: 10px;"},{"line_number":1703,"context_line":"    margin-top: 15px;"},{"line_number":1704,"context_line":"    margin-bottom: 15px;"},{"line_number":1705,"context_line":"    margin-right: 7px;"},{"line_number":1706,"context_line":"  }"},{"line_number":1707,"context_line":""},{"line_number":1708,"context_line":"  /* Member lists */"}],"source_content_type":"text/x-scss","patch_set":46,"id":"baa201ad_8314baa0","line":1705,"in_reply_to":"baa201ad_621514e4","updated":"2014-10-07 05:51:19.000000000","message":"Done","commit_id":"081b1d7883150932df7773cfc2708a384164a049"}]}
