)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"e2b709c3b3c0cdf9630e6c797f16b724881e2005","unresolved":false,"context_lines":[{"line_number":10,"context_line":"- CRUD on metadef_tags;"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I09bdf43edee6fff615d223f1a6df7c15a1e40565"},{"line_number":13,"context_line":"Implements: blueprint metadefs-tags"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"3a961159_f72ff2f3","line":13,"updated":"2015-01-07 14:53:19.000000000","message":"Is this the right blueprint name? https://blueprints.launchpad.net/openstack/?searchtext\u003dmetadefs-tags seems to indicate there isn\u0027t a blueprint with that name. Maybe it\u0027s changed?","commit_id":"e2e4b5629c9ca66c160c7b564726d76277595b29"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"5e0db66cb6b88d4afd79b010f50064d1c7dafe84","unresolved":false,"context_lines":[{"line_number":10,"context_line":"- CRUD on metadef_tags;"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I09bdf43edee6fff615d223f1a6df7c15a1e40565"},{"line_number":13,"context_line":"Implements: https://blueprints.launchpad.net/glance/+spec/metadefs-tags"},{"line_number":14,"context_line":"DocImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"3acd31a7_f835f445","line":13,"updated":"2015-05-01 22:23:52.000000000","message":"Please see the discussion on IRC. That blueprint was already marked as implemented. Please create a new blueprint dependent on the old one and update this to say\n\n    Implements: blueprint blueprint-name","commit_id":"0bcea843b12be80cc46ffdb8722836d732bec75e"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"1bad18cab3b1fccdf53841b08487c51a89eda80a","unresolved":false,"context_lines":[{"line_number":10,"context_line":"- CRUD on metadef_tags;"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I09bdf43edee6fff615d223f1a6df7c15a1e40565"},{"line_number":13,"context_line":"Implements: https://blueprints.launchpad.net/glance/+spec/metadefs-tags"},{"line_number":14,"context_line":"DocImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"3acd31a7_2dc8a5a7","line":13,"in_reply_to":"3acd31a7_f835f445","updated":"2015-05-04 21:22:44.000000000","message":"Done","commit_id":"0bcea843b12be80cc46ffdb8722836d732bec75e"}],"glanceclient/tests/unit/v2/test_metadefs_tags.py":[{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"22e76ead9fa5bd4cc56a27a6a2ea5ee895d99497","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012 OpenStack Foundation."},{"line_number":2,"context_line":"# All Rights Reserved."},{"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":22,"id":"7a016987_99bee8d2","line":1,"updated":"2015-05-17 23:18:56.000000000","message":"Nit, this should be 2014 or 2015 (I get that you likely copied this from elsewhere though).","commit_id":"b225b1a447a49ff7a86f175fc02fb8553b93cbcd"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"5f31d641c9b5a7210bc6bb787713e97e8c63d6c1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012 OpenStack Foundation."},{"line_number":2,"context_line":"# All Rights Reserved."},{"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":22,"id":"ba3cc151_339b4268","line":1,"in_reply_to":"7a016987_99bee8d2","updated":"2015-07-08 00:26:39.000000000","message":"I don\u0027t want to blow away the 3 +2s on this one, so, will address this after workflow.","commit_id":"b225b1a447a49ff7a86f175fc02fb8553b93cbcd"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"e8bbcd5751744a3fc62c51792eb72729f37f8a96","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012 OpenStack Foundation."},{"line_number":2,"context_line":"# All Rights Reserved."},{"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":22,"id":"9a41bdd9_4030da9e","line":1,"in_reply_to":"7a016987_99bee8d2","updated":"2015-07-16 21:04:19.000000000","message":"I went ahead and changed this to 2015 since I needed to make an API change.","commit_id":"b225b1a447a49ff7a86f175fc02fb8553b93cbcd"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"22e76ead9fa5bd4cc56a27a6a2ea5ee895d99497","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        tag \u003d self.controller.create(NAMESPACE1, TAGNEW1)"},{"line_number":150,"context_line":"        self.assertEqual(TAGNEW1, tag.name)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def test_create_tags(self):"},{"line_number":153,"context_line":"        properties \u003d {"},{"line_number":154,"context_line":"            \u0027tags\u0027: [TAGNEW2, TAGNEW3]"},{"line_number":155,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":22,"id":"7a016987_79b56cec","line":152,"updated":"2015-05-17 23:18:56.000000000","message":"It might be nice to call this \"test_create_multiple_tags\" but it really isn\u0027t a problem.","commit_id":"b225b1a447a49ff7a86f175fc02fb8553b93cbcd"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"e8bbcd5751744a3fc62c51792eb72729f37f8a96","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        tag \u003d self.controller.create(NAMESPACE1, TAGNEW1)"},{"line_number":150,"context_line":"        self.assertEqual(TAGNEW1, tag.name)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def test_create_tags(self):"},{"line_number":153,"context_line":"        properties \u003d {"},{"line_number":154,"context_line":"            \u0027tags\u0027: [TAGNEW2, TAGNEW3]"},{"line_number":155,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":22,"id":"9a41bdd9_8016e2ef","line":152,"in_reply_to":"7a016987_79b56cec","updated":"2015-07-16 21:04:19.000000000","message":"Made the change with the latest patch set (23).","commit_id":"b225b1a447a49ff7a86f175fc02fb8553b93cbcd"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"5f31d641c9b5a7210bc6bb787713e97e8c63d6c1","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        tag \u003d self.controller.create(NAMESPACE1, TAGNEW1)"},{"line_number":150,"context_line":"        self.assertEqual(TAGNEW1, tag.name)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def test_create_tags(self):"},{"line_number":153,"context_line":"        properties \u003d {"},{"line_number":154,"context_line":"            \u0027tags\u0027: [TAGNEW2, TAGNEW3]"},{"line_number":155,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":22,"id":"ba3cc151_b3a752a6","line":152,"in_reply_to":"7a016987_79b56cec","updated":"2015-07-08 00:26:39.000000000","message":"Will address after workflow is approved so that I don\u0027t lose the 3 +2s.","commit_id":"b225b1a447a49ff7a86f175fc02fb8553b93cbcd"}],"glanceclient/tests/unit/v2/test_shell_v2.py":[{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"5e0db66cb6b88d4afd79b010f50064d1c7dafe84","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"3acd31a7_7559ed59","updated":"2015-05-01 22:23:52.000000000","message":"So I fully understand that we have written the other tests and have made assertions about how we call print_list or print_dict from utils, but I think that\u0027s the less important thing to be testing here frankly. Further, that ties us to to something, that in my opinion, is an implementation detail. How we print the information shouldn\u0027t really matter as much as how we get the information.","commit_id":"0bcea843b12be80cc46ffdb8722836d732bec75e"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"1bad18cab3b1fccdf53841b08487c51a89eda80a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"3acd31a7_4d6521b3","in_reply_to":"3acd31a7_7559ed59","updated":"2015-05-04 21:22:44.000000000","message":"Not sure what you had in mind.","commit_id":"0bcea843b12be80cc46ffdb8722836d732bec75e"}],"glanceclient/v2/metadefs.py":[{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"3178aa4870a75bb8de723dd98d512da4d1fbb718","unresolved":false,"context_lines":[{"line_number":410,"context_line":""},{"line_number":411,"context_line":"        url \u003d \u0027/v2/metadefs/namespaces/{0}/tags\u0027.format(namespace)"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"        resp, body \u003d self.http_client.post(url, data\u003dtag)"},{"line_number":414,"context_line":"        body.pop(\u0027self\u0027, None)"},{"line_number":415,"context_line":"        return self.model(**body)"},{"line_number":416,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"da86d52c_8f712b0e","line":413,"updated":"2015-02-05 16:46:07.000000000","message":"Why is single tag create post and multi tag a put?","commit_id":"2040cb90be11471660ee4fd719f202a067d32086"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"5065e648ef7c6fa835bcd5674008325a1502c41d","unresolved":false,"context_lines":[{"line_number":410,"context_line":""},{"line_number":411,"context_line":"        url \u003d \u0027/v2/metadefs/namespaces/{0}/tags\u0027.format(namespace)"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"        resp, body \u003d self.http_client.post(url, data\u003dtag)"},{"line_number":414,"context_line":"        body.pop(\u0027self\u0027, None)"},{"line_number":415,"context_line":"        return self.model(**body)"},{"line_number":416,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"da86d52c_acf4275b","line":413,"in_reply_to":"da86d52c_8f712b0e","updated":"2015-02-06 01:28:46.000000000","message":"I think i misread the original blueprint. Both should be post, but, for different URLs. The create_tags should be this url (/v2/metadefs/namespaces/{0}/tags). The create should be the update url (/v2/metadefs/namespaces/{0}/tags/{1}). Update should not exist or exist as patch?. I will file bug for this and make the adjustments here...if allowed to move things around.","commit_id":"2040cb90be11471660ee4fd719f202a067d32086"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"3178aa4870a75bb8de723dd98d512da4d1fbb718","unresolved":false,"context_lines":[{"line_number":419,"context_line":""},{"line_number":420,"context_line":"        :param namespace: Name of a namespace to which the Tags belong."},{"line_number":421,"context_line":"        :param kwargs: list of tags."},{"line_number":422,"context_line":"        \"\"\""},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"        tag_names \u003d kwargs.pop(\u0027tags\u0027, [])"},{"line_number":425,"context_line":"        md_tag_list \u003d []"}],"source_content_type":"text/x-python","patch_set":13,"id":"da86d52c_f8118f5d","line":422,"updated":"2015-02-05 16:46:07.000000000","message":"Does this overwrite or add tags?  If it is adding, shouldn\u0027t it be a patch request?","commit_id":"2040cb90be11471660ee4fd719f202a067d32086"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"5065e648ef7c6fa835bcd5674008325a1502c41d","unresolved":false,"context_lines":[{"line_number":419,"context_line":""},{"line_number":420,"context_line":"        :param namespace: Name of a namespace to which the Tags belong."},{"line_number":421,"context_line":"        :param kwargs: list of tags."},{"line_number":422,"context_line":"        \"\"\""},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"        tag_names \u003d kwargs.pop(\u0027tags\u0027, [])"},{"line_number":425,"context_line":"        md_tag_list \u003d []"}],"source_content_type":"text/x-python","patch_set":13,"id":"da86d52c_4ca9eb22","line":422,"in_reply_to":"da86d52c_f8118f5d","updated":"2015-02-06 01:28:46.000000000","message":"It overwrites tags (i.e., removes the old set and adds in new).","commit_id":"2040cb90be11471660ee4fd719f202a067d32086"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"3178aa4870a75bb8de723dd98d512da4d1fbb718","unresolved":false,"context_lines":[{"line_number":487,"context_line":"                                                            tag_name)"},{"line_number":488,"context_line":"        self.http_client.delete(url)"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"    def delete_all(self, namespace):"},{"line_number":491,"context_line":"        \"\"\"Delete all tags in a namespace.\"\"\""},{"line_number":492,"context_line":"        url \u003d \u0027/v2/metadefs/namespaces/{0}/tags\u0027.format(namespace)"},{"line_number":493,"context_line":"        self.http_client.delete(url)"}],"source_content_type":"text/x-python","patch_set":13,"id":"da86d52c_d20bccd3","line":490,"updated":"2015-02-05 16:46:07.000000000","message":"I think that a delete \u003clist of tags\u003e would be useful as well.","commit_id":"2040cb90be11471660ee4fd719f202a067d32086"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"5065e648ef7c6fa835bcd5674008325a1502c41d","unresolved":false,"context_lines":[{"line_number":487,"context_line":"                                                            tag_name)"},{"line_number":488,"context_line":"        self.http_client.delete(url)"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"    def delete_all(self, namespace):"},{"line_number":491,"context_line":"        \"\"\"Delete all tags in a namespace.\"\"\""},{"line_number":492,"context_line":"        url \u003d \u0027/v2/metadefs/namespaces/{0}/tags\u0027.format(namespace)"},{"line_number":493,"context_line":"        self.http_client.delete(url)"}],"source_content_type":"text/x-python","patch_set":13,"id":"da86d52c_2c5cb74a","line":490,"in_reply_to":"da86d52c_d20bccd3","updated":"2015-02-06 01:28:46.000000000","message":"I get your point. Not sure what url to use for this kind of delete? Also, should this be a new bug since it wasn\u0027t documented in the original blueprint or a new blueprint?","commit_id":"2040cb90be11471660ee4fd719f202a067d32086"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"1ff2ebaaaf544a2a54f0aa5f29782e65eaf9c346","unresolved":false,"context_lines":[{"line_number":398,"context_line":"        return warlock.model_factory(schema.raw(), schemas.SchemaBasedModel)"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"    def create(self, namespace, **kwargs):"},{"line_number":401,"context_line":"        \"\"\"Create an tag."},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"        :param namespace: Name of a namespace the Tag belongs."},{"line_number":404,"context_line":"        :param kwargs: Unpacked tag."}],"source_content_type":"text/x-python","patch_set":14,"id":"9a80dd14_dbeb6eae","line":401,"updated":"2015-03-05 13:06:21.000000000","message":"*a tag","commit_id":"24db68d9c22102821bc1d0368d37f4cc20c54117"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"6176768290e93431e00bf282cc09bf03b09ccf11","unresolved":false,"context_lines":[{"line_number":398,"context_line":"        return warlock.model_factory(schema.raw(), schemas.SchemaBasedModel)"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"    def create(self, namespace, **kwargs):"},{"line_number":401,"context_line":"        \"\"\"Create an tag."},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"        :param namespace: Name of a namespace the Tag belongs."},{"line_number":404,"context_line":"        :param kwargs: Unpacked tag."}],"source_content_type":"text/x-python","patch_set":14,"id":"9a80dd14_e316a4a6","line":401,"in_reply_to":"9a80dd14_dbeb6eae","updated":"2015-03-06 02:54:48.000000000","message":"Done","commit_id":"24db68d9c22102821bc1d0368d37f4cc20c54117"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"1ff2ebaaaf544a2a54f0aa5f29782e65eaf9c346","unresolved":false,"context_lines":[{"line_number":423,"context_line":""},{"line_number":424,"context_line":"        tag_names \u003d kwargs.pop(\u0027tags\u0027, [])"},{"line_number":425,"context_line":"        md_tag_list \u003d []"},{"line_number":426,"context_line":"        try:"},{"line_number":427,"context_line":"            for tag_name in tag_names:"},{"line_number":428,"context_line":"                md_tag_list.append(self.model(name\u003dtag_name))"},{"line_number":429,"context_line":"        except (warlock.InvalidOperation, ValueError) as e:"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a80dd14_3b4f2abf","line":426,"updated":"2015-03-05 13:06:21.000000000","message":"Shouldn\u0027t the try-except block be moved inside the for-loop? The loop declaration can\u0027t raise the exception, isn\u0027t it?","commit_id":"24db68d9c22102821bc1d0368d37f4cc20c54117"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"6176768290e93431e00bf282cc09bf03b09ccf11","unresolved":false,"context_lines":[{"line_number":423,"context_line":""},{"line_number":424,"context_line":"        tag_names \u003d kwargs.pop(\u0027tags\u0027, [])"},{"line_number":425,"context_line":"        md_tag_list \u003d []"},{"line_number":426,"context_line":"        try:"},{"line_number":427,"context_line":"            for tag_name in tag_names:"},{"line_number":428,"context_line":"                md_tag_list.append(self.model(name\u003dtag_name))"},{"line_number":429,"context_line":"        except (warlock.InvalidOperation, ValueError) as e:"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a80dd14_834a48c3","line":426,"in_reply_to":"9a80dd14_3b4f2abf","updated":"2015-03-06 02:54:48.000000000","message":"Done","commit_id":"24db68d9c22102821bc1d0368d37f4cc20c54117"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"1ff2ebaaaf544a2a54f0aa5f29782e65eaf9c346","unresolved":false,"context_lines":[{"line_number":438,"context_line":"            yield self.model(tag)"},{"line_number":439,"context_line":""},{"line_number":440,"context_line":"    def update(self, namespace, tag_name, **kwargs):"},{"line_number":441,"context_line":"        \"\"\"Update an tag."},{"line_number":442,"context_line":""},{"line_number":443,"context_line":"        :param namespace: Name of a namespace the Tag belongs."},{"line_number":444,"context_line":"        :param prop_name: Name of the Tag (old one)."}],"source_content_type":"text/x-python","patch_set":14,"id":"9a80dd14_1bfee638","line":441,"updated":"2015-03-05 13:06:21.000000000","message":"*a tag","commit_id":"24db68d9c22102821bc1d0368d37f4cc20c54117"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"6176768290e93431e00bf282cc09bf03b09ccf11","unresolved":false,"context_lines":[{"line_number":438,"context_line":"            yield self.model(tag)"},{"line_number":439,"context_line":""},{"line_number":440,"context_line":"    def update(self, namespace, tag_name, **kwargs):"},{"line_number":441,"context_line":"        \"\"\"Update an tag."},{"line_number":442,"context_line":""},{"line_number":443,"context_line":"        :param namespace: Name of a namespace the Tag belongs."},{"line_number":444,"context_line":"        :param prop_name: Name of the Tag (old one)."}],"source_content_type":"text/x-python","patch_set":14,"id":"9a80dd14_a3458cb4","line":441,"in_reply_to":"9a80dd14_1bfee638","updated":"2015-03-06 02:54:48.000000000","message":"Done","commit_id":"24db68d9c22102821bc1d0368d37f4cc20c54117"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"1ff2ebaaaf544a2a54f0aa5f29782e65eaf9c346","unresolved":false,"context_lines":[{"line_number":471,"context_line":"        return self.model(**body)"},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"    def list(self, namespace, **kwargs):"},{"line_number":474,"context_line":"        \"\"\"Retrieve a listing of metadata tags"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"        :returns generator over list of tags"},{"line_number":477,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a80dd14_6e000202","line":474,"updated":"2015-03-05 13:06:21.000000000","message":"Missing dot at the end.","commit_id":"24db68d9c22102821bc1d0368d37f4cc20c54117"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"6176768290e93431e00bf282cc09bf03b09ccf11","unresolved":false,"context_lines":[{"line_number":471,"context_line":"        return self.model(**body)"},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"    def list(self, namespace, **kwargs):"},{"line_number":474,"context_line":"        \"\"\"Retrieve a listing of metadata tags"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"        :returns generator over list of tags"},{"line_number":477,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a80dd14_c31360b6","line":474,"in_reply_to":"9a80dd14_6e000202","updated":"2015-03-06 02:54:48.000000000","message":"Done","commit_id":"24db68d9c22102821bc1d0368d37f4cc20c54117"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"5e0db66cb6b88d4afd79b010f50064d1c7dafe84","unresolved":false,"context_lines":[{"line_number":404,"context_line":"        :param tag_name: The name of the new tag to create."},{"line_number":405,"context_line":"        \"\"\""},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"        url \u003d (\u0027/v2/metadefs/namespaces/{0}/tags/{1}\u0027."},{"line_number":408,"context_line":"               format(namespace, tag_name))"},{"line_number":409,"context_line":""},{"line_number":410,"context_line":"        resp, body \u003d self.http_client.post(url)"}],"source_content_type":"text/x-python","patch_set":19,"id":"3acd31a7_f8b054df","line":407,"updated":"2015-05-01 22:23:52.000000000","message":"Can you follow the style on L380?","commit_id":"0bcea843b12be80cc46ffdb8722836d732bec75e"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"1bad18cab3b1fccdf53841b08487c51a89eda80a","unresolved":false,"context_lines":[{"line_number":404,"context_line":"        :param tag_name: The name of the new tag to create."},{"line_number":405,"context_line":"        \"\"\""},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"        url \u003d (\u0027/v2/metadefs/namespaces/{0}/tags/{1}\u0027."},{"line_number":408,"context_line":"               format(namespace, tag_name))"},{"line_number":409,"context_line":""},{"line_number":410,"context_line":"        resp, body \u003d self.http_client.post(url)"}],"source_content_type":"text/x-python","patch_set":19,"id":"3acd31a7_2d078519","line":407,"in_reply_to":"3acd31a7_f8b054df","updated":"2015-05-04 21:22:44.000000000","message":"Done","commit_id":"0bcea843b12be80cc46ffdb8722836d732bec75e"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"5e0db66cb6b88d4afd79b010f50064d1c7dafe84","unresolved":false,"context_lines":[{"line_number":424,"context_line":"        for tag_name in tag_names:"},{"line_number":425,"context_line":"            try:"},{"line_number":426,"context_line":"                md_tag_list.append(self.model(name\u003dtag_name))"},{"line_number":427,"context_line":"            except (warlock.InvalidOperation, ValueError) as e:"},{"line_number":428,"context_line":"                raise TypeError(utils.exception_to_str(e))"},{"line_number":429,"context_line":"        tags \u003d {\u0027tags\u0027: md_tag_list}"},{"line_number":430,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"3acd31a7_1808b090","line":427,"updated":"2015-05-01 22:23:52.000000000","message":"What can raise a ValueError here? Could you comment that so we know where that could be coming from?","commit_id":"0bcea843b12be80cc46ffdb8722836d732bec75e"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"1bad18cab3b1fccdf53841b08487c51a89eda80a","unresolved":false,"context_lines":[{"line_number":424,"context_line":"        for tag_name in tag_names:"},{"line_number":425,"context_line":"            try:"},{"line_number":426,"context_line":"                md_tag_list.append(self.model(name\u003dtag_name))"},{"line_number":427,"context_line":"            except (warlock.InvalidOperation, ValueError) as e:"},{"line_number":428,"context_line":"                raise TypeError(utils.exception_to_str(e))"},{"line_number":429,"context_line":"        tags \u003d {\u0027tags\u0027: md_tag_list}"},{"line_number":430,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"3acd31a7_4d2d2194","line":427,"in_reply_to":"3acd31a7_1808b090","updated":"2015-05-04 21:22:44.000000000","message":"Removed ValueError - invalid since name\u003dtag_name is explicitly set.","commit_id":"0bcea843b12be80cc46ffdb8722836d732bec75e"}],"glanceclient/v2/shell.py":[{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"1ff2ebaaaf544a2a54f0aa5f29782e65eaf9c346","unresolved":false,"context_lines":[{"line_number":768,"context_line":"    \"\"\"Create new metadata definitions tag inside a namespace.\"\"\""},{"line_number":769,"context_line":"    delim \u003d \u0027,\u0027"},{"line_number":770,"context_line":"    if args.delim:"},{"line_number":771,"context_line":"        delim \u003d args.delim"},{"line_number":772,"context_line":""},{"line_number":773,"context_line":"    tags \u003d []"},{"line_number":774,"context_line":"    names_list \u003d args.names.split(delim)"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a80dd14_6ea2c2af","line":771,"updated":"2015-03-05 13:06:21.000000000","message":"nit: This one could be replaced with one line delim \u003d args.delim or \u0027,\u0027","commit_id":"24db68d9c22102821bc1d0368d37f4cc20c54117"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"6176768290e93431e00bf282cc09bf03b09ccf11","unresolved":false,"context_lines":[{"line_number":768,"context_line":"    \"\"\"Create new metadata definitions tag inside a namespace.\"\"\""},{"line_number":769,"context_line":"    delim \u003d \u0027,\u0027"},{"line_number":770,"context_line":"    if args.delim:"},{"line_number":771,"context_line":"        delim \u003d args.delim"},{"line_number":772,"context_line":""},{"line_number":773,"context_line":"    tags \u003d []"},{"line_number":774,"context_line":"    names_list \u003d args.names.split(delim)"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a80dd14_23119cac","line":771,"in_reply_to":"9a80dd14_6ea2c2af","updated":"2015-03-06 02:54:48.000000000","message":"Done","commit_id":"24db68d9c22102821bc1d0368d37f4cc20c54117"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"1ff2ebaaaf544a2a54f0aa5f29782e65eaf9c346","unresolved":false,"context_lines":[{"line_number":774,"context_line":"    names_list \u003d args.names.split(delim)"},{"line_number":775,"context_line":"    for name in names_list:"},{"line_number":776,"context_line":"        name \u003d name.strip()"},{"line_number":777,"context_line":"        if not name:"},{"line_number":778,"context_line":"            continue"},{"line_number":779,"context_line":"        else:"},{"line_number":780,"context_line":"            tags.append(name)"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a80dd14_ae83da02","line":777,"updated":"2015-03-05 13:06:21.000000000","message":"Why not just:\n\nif name:\n    tags.append(name)","commit_id":"24db68d9c22102821bc1d0368d37f4cc20c54117"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"6176768290e93431e00bf282cc09bf03b09ccf11","unresolved":false,"context_lines":[{"line_number":774,"context_line":"    names_list \u003d args.names.split(delim)"},{"line_number":775,"context_line":"    for name in names_list:"},{"line_number":776,"context_line":"        name \u003d name.strip()"},{"line_number":777,"context_line":"        if not name:"},{"line_number":778,"context_line":"            continue"},{"line_number":779,"context_line":"        else:"},{"line_number":780,"context_line":"            tags.append(name)"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a80dd14_43277012","line":777,"in_reply_to":"9a80dd14_ae83da02","updated":"2015-03-06 02:54:48.000000000","message":"Done","commit_id":"24db68d9c22102821bc1d0368d37f4cc20c54117"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"1ff2ebaaaf544a2a54f0aa5f29782e65eaf9c346","unresolved":false,"context_lines":[{"line_number":795,"context_line":"           help\u003d\u0027Name of the namespace to which the tag belongs.\u0027)"},{"line_number":796,"context_line":"@utils.arg(\u0027tag\u0027, metavar\u003d\u0027\u003cTAG\u003e\u0027, help\u003d\u0027Name of the old tag.\u0027)"},{"line_number":797,"context_line":"@utils.arg(\u0027--name\u0027, metavar\u003d\u0027\u003cNAME\u003e\u0027, default\u003dNone,"},{"line_number":798,"context_line":"           help\u003d\u0027New name of the new tag.\u0027)"},{"line_number":799,"context_line":"def do_md_tag_update(gc, args):"},{"line_number":800,"context_line":"    \"\"\"Update a metadata definitions tag inside a namespace.\"\"\""},{"line_number":801,"context_line":"    fields \u003d {}"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a80dd14_4ec09e2a","line":798,"updated":"2015-03-05 13:06:21.000000000","message":"Does it create a new tag? I guess it just update the name, so it should be \"New name of the tag\".","commit_id":"24db68d9c22102821bc1d0368d37f4cc20c54117"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"6176768290e93431e00bf282cc09bf03b09ccf11","unresolved":false,"context_lines":[{"line_number":795,"context_line":"           help\u003d\u0027Name of the namespace to which the tag belongs.\u0027)"},{"line_number":796,"context_line":"@utils.arg(\u0027tag\u0027, metavar\u003d\u0027\u003cTAG\u003e\u0027, help\u003d\u0027Name of the old tag.\u0027)"},{"line_number":797,"context_line":"@utils.arg(\u0027--name\u0027, metavar\u003d\u0027\u003cNAME\u003e\u0027, default\u003dNone,"},{"line_number":798,"context_line":"           help\u003d\u0027New name of the new tag.\u0027)"},{"line_number":799,"context_line":"def do_md_tag_update(gc, args):"},{"line_number":800,"context_line":"    \"\"\"Update a metadata definitions tag inside a namespace.\"\"\""},{"line_number":801,"context_line":"    fields \u003d {}"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a80dd14_c361a03a","line":798,"in_reply_to":"9a80dd14_4ec09e2a","updated":"2015-03-06 02:54:48.000000000","message":"The update can be used to rename an existing tag (as long as the new name doesn\u0027t already exist.","commit_id":"24db68d9c22102821bc1d0368d37f4cc20c54117"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"bb89447c31257590b6b1eced17b108ee9e06265f","unresolved":false,"context_lines":[{"line_number":763,"context_line":"@utils.arg(\u0027--delim\u0027, metavar\u003d\u0027\u003cDELIM\u003e\u0027, required\u003dFalse,"},{"line_number":764,"context_line":"           help\u003d\u0027The delimiter used to separate the names\u0027"},{"line_number":765,"context_line":"                \u0027 (if none is provided then the default is a comma).\u0027)"},{"line_number":766,"context_line":"def do_md_tag_create_tags(gc, args):"},{"line_number":767,"context_line":"    \"\"\"Create new metadata definitions tag inside a namespace.\"\"\""},{"line_number":768,"context_line":"    delim \u003d args.delim or \u0027,\u0027"},{"line_number":769,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_b63f5a24","line":766,"updated":"2015-03-13 10:57:41.000000000","message":"nit: How about changing the function name to something like do_md_tag_create_multiple? What do you think about it?","commit_id":"9cd56072c2a97fb192d9d076b6b56401c07eb4e7"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"5fb5f5838f06db4b25b99e70e9ac5868f78c6a66","unresolved":false,"context_lines":[{"line_number":763,"context_line":"@utils.arg(\u0027--delim\u0027, metavar\u003d\u0027\u003cDELIM\u003e\u0027, required\u003dFalse,"},{"line_number":764,"context_line":"           help\u003d\u0027The delimiter used to separate the names\u0027"},{"line_number":765,"context_line":"                \u0027 (if none is provided then the default is a comma).\u0027)"},{"line_number":766,"context_line":"def do_md_tag_create_tags(gc, args):"},{"line_number":767,"context_line":"    \"\"\"Create new metadata definitions tag inside a namespace.\"\"\""},{"line_number":768,"context_line":"    delim \u003d args.delim or \u0027,\u0027"},{"line_number":769,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_4b43b06b","line":766,"in_reply_to":"9a80dd14_b63f5a24","updated":"2015-03-16 12:47:32.000000000","message":"Done","commit_id":"9cd56072c2a97fb192d9d076b6b56401c07eb4e7"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"bb89447c31257590b6b1eced17b108ee9e06265f","unresolved":false,"context_lines":[{"line_number":764,"context_line":"           help\u003d\u0027The delimiter used to separate the names\u0027"},{"line_number":765,"context_line":"                \u0027 (if none is provided then the default is a comma).\u0027)"},{"line_number":766,"context_line":"def do_md_tag_create_tags(gc, args):"},{"line_number":767,"context_line":"    \"\"\"Create new metadata definitions tag inside a namespace.\"\"\""},{"line_number":768,"context_line":"    delim \u003d args.delim or \u0027,\u0027"},{"line_number":769,"context_line":""},{"line_number":770,"context_line":"    tags \u003d []"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_d6792e30","line":767,"updated":"2015-03-13 10:57:41.000000000","message":"As it creates multiple tags it should be /s/tag/tags","commit_id":"9cd56072c2a97fb192d9d076b6b56401c07eb4e7"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"5fb5f5838f06db4b25b99e70e9ac5868f78c6a66","unresolved":false,"context_lines":[{"line_number":764,"context_line":"           help\u003d\u0027The delimiter used to separate the names\u0027"},{"line_number":765,"context_line":"                \u0027 (if none is provided then the default is a comma).\u0027)"},{"line_number":766,"context_line":"def do_md_tag_create_tags(gc, args):"},{"line_number":767,"context_line":"    \"\"\"Create new metadata definitions tag inside a namespace.\"\"\""},{"line_number":768,"context_line":"    delim \u003d args.delim or \u0027,\u0027"},{"line_number":769,"context_line":""},{"line_number":770,"context_line":"    tags \u003d []"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_eb7aa4b8","line":767,"in_reply_to":"9a80dd14_d6792e30","updated":"2015-03-16 12:47:32.000000000","message":"Done","commit_id":"9cd56072c2a97fb192d9d076b6b56401c07eb4e7"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"bb89447c31257590b6b1eced17b108ee9e06265f","unresolved":false,"context_lines":[{"line_number":773,"context_line":"        name \u003d name.strip()"},{"line_number":774,"context_line":"        if name:"},{"line_number":775,"context_line":"            tags.append(name)"},{"line_number":776,"context_line":""},{"line_number":777,"context_line":"    fields \u003d {\u0027tags\u0027: tags}"},{"line_number":778,"context_line":"    new_tags \u003d gc.metadefs_tag.create_tags(args.namespace, **fields)"},{"line_number":779,"context_line":"    columns \u003d [\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_96d336d4","line":776,"updated":"2015-03-13 10:57:41.000000000","message":"Should we validate that tags is not empty to not send such query to Glance API? Right now when I invoke\n\nglance --os-image-api-version 2 md-tag-create-tags namespace601 --names ,\n\nIt prints me an empty table with no tags in it.","commit_id":"9cd56072c2a97fb192d9d076b6b56401c07eb4e7"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"5fb5f5838f06db4b25b99e70e9ac5868f78c6a66","unresolved":false,"context_lines":[{"line_number":773,"context_line":"        name \u003d name.strip()"},{"line_number":774,"context_line":"        if name:"},{"line_number":775,"context_line":"            tags.append(name)"},{"line_number":776,"context_line":""},{"line_number":777,"context_line":"    fields \u003d {\u0027tags\u0027: tags}"},{"line_number":778,"context_line":"    new_tags \u003d gc.metadefs_tag.create_tags(args.namespace, **fields)"},{"line_number":779,"context_line":"    columns \u003d [\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_9894f837","line":776,"in_reply_to":"9a80dd14_96d336d4","updated":"2015-03-16 12:47:32.000000000","message":"Done","commit_id":"9cd56072c2a97fb192d9d076b6b56401c07eb4e7"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"bb89447c31257590b6b1eced17b108ee9e06265f","unresolved":false,"context_lines":[{"line_number":794,"context_line":"def do_md_tag_update(gc, args):"},{"line_number":795,"context_line":"    \"\"\"Rename a metadata definitions tag inside a namespace.\"\"\""},{"line_number":796,"context_line":"    fields \u003d {}"},{"line_number":797,"context_line":"    fields[\u0027name\u0027] \u003d args.name"},{"line_number":798,"context_line":""},{"line_number":799,"context_line":"    new_tag \u003d gc.metadefs_tag.update(args.namespace, args.tag,"},{"line_number":800,"context_line":"                                     **fields)"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_16002601","line":797,"updated":"2015-03-13 10:57:41.000000000","message":"nit: It could be simply rewritten to fields \u003d {\u0027name\u0027: args.name}","commit_id":"9cd56072c2a97fb192d9d076b6b56401c07eb4e7"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"5fb5f5838f06db4b25b99e70e9ac5868f78c6a66","unresolved":false,"context_lines":[{"line_number":794,"context_line":"def do_md_tag_update(gc, args):"},{"line_number":795,"context_line":"    \"\"\"Rename a metadata definitions tag inside a namespace.\"\"\""},{"line_number":796,"context_line":"    fields \u003d {}"},{"line_number":797,"context_line":"    fields[\u0027name\u0027] \u003d args.name"},{"line_number":798,"context_line":""},{"line_number":799,"context_line":"    new_tag \u003d gc.metadefs_tag.update(args.namespace, args.tag,"},{"line_number":800,"context_line":"                                     **fields)"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_2b503c31","line":797,"in_reply_to":"9a80dd14_16002601","updated":"2015-03-16 12:47:32.000000000","message":"Done.","commit_id":"9cd56072c2a97fb192d9d076b6b56401c07eb4e7"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"d0864bd27167dcc7a9a1225cbe02bc4881bd626c","unresolved":false,"context_lines":[{"line_number":774,"context_line":"        if name:"},{"line_number":775,"context_line":"            tags.append(name)"},{"line_number":776,"context_line":""},{"line_number":777,"context_line":"    if len(tags) is 0:"},{"line_number":778,"context_line":"        utils.exit(\u0027Please supply at least one tag name. For example: \u0027"},{"line_number":779,"context_line":"                   \u0027--names Tag1\u0027)"},{"line_number":780,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9a80dd14_f3cd125e","line":777,"updated":"2015-03-16 13:31:06.000000000","message":"Why not just `if not tags` which will catch the empty list as well?","commit_id":"033a4dda057083cb9c297aa34b687d02ea55d5fb"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"14d9a6a075dafe1a621199de9bc0ab12147cf344","unresolved":false,"context_lines":[{"line_number":774,"context_line":"        if name:"},{"line_number":775,"context_line":"            tags.append(name)"},{"line_number":776,"context_line":""},{"line_number":777,"context_line":"    if len(tags) is 0:"},{"line_number":778,"context_line":"        utils.exit(\u0027Please supply at least one tag name. For example: \u0027"},{"line_number":779,"context_line":"                   \u0027--names Tag1\u0027)"},{"line_number":780,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9a80dd14_7cb2cf06","line":777,"in_reply_to":"9a80dd14_f3cd125e","updated":"2015-03-16 14:18:56.000000000","message":"Done","commit_id":"033a4dda057083cb9c297aa34b687d02ea55d5fb"}],"tests/v2/test_metadefs_tags.py":[{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"1ff2ebaaaf544a2a54f0aa5f29782e65eaf9c346","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    return tag"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def _get_tag_fixture_for_show(tag_name, **kwargs):"},{"line_number":38,"context_line":"    tag \u003d {"},{"line_number":39,"context_line":"        \"name\": tag_name,"},{"line_number":40,"context_line":"        \"created_at\": \"2014-08-14T09:07:06Z\","}],"source_content_type":"text/x-python","patch_set":14,"id":"9a80dd14_4e45feb1","line":37,"updated":"2015-03-05 13:06:21.000000000","message":"This function is not used anywhere.","commit_id":"24db68d9c22102821bc1d0368d37f4cc20c54117"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"6176768290e93431e00bf282cc09bf03b09ccf11","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    return tag"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def _get_tag_fixture_for_show(tag_name, **kwargs):"},{"line_number":38,"context_line":"    tag \u003d {"},{"line_number":39,"context_line":"        \"name\": tag_name,"},{"line_number":40,"context_line":"        \"created_at\": \"2014-08-14T09:07:06Z\","}],"source_content_type":"text/x-python","patch_set":14,"id":"9a80dd14_4355b04e","line":37,"in_reply_to":"9a80dd14_4e45feb1","updated":"2015-03-06 02:54:48.000000000","message":"Done - removed it.","commit_id":"24db68d9c22102821bc1d0368d37f4cc20c54117"}],"tests/v2/test_shell_v2.py":[{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"1ff2ebaaaf544a2a54f0aa5f29782e65eaf9c346","unresolved":false,"context_lines":[{"line_number":988,"context_line":""},{"line_number":989,"context_line":"    def test_do_md_tag_create(self):"},{"line_number":990,"context_line":"        args \u003d self._make_args({\u0027namespace\u0027: \u0027MyNamespace\u0027,"},{"line_number":991,"context_line":"                                \u0027name\u0027: \"MyTag\"})"},{"line_number":992,"context_line":"        with mock.patch.object(self.gc.metadefs_tag,"},{"line_number":993,"context_line":"                               \u0027create\u0027) as mocked_create:"},{"line_number":994,"context_line":"            expect_tag \u003d {}"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a80dd14_ae5bda85","line":991,"updated":"2015-03-05 13:06:21.000000000","message":"nit: all other places are using single quote for strings.","commit_id":"24db68d9c22102821bc1d0368d37f4cc20c54117"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"6176768290e93431e00bf282cc09bf03b09ccf11","unresolved":false,"context_lines":[{"line_number":988,"context_line":""},{"line_number":989,"context_line":"    def test_do_md_tag_create(self):"},{"line_number":990,"context_line":"        args \u003d self._make_args({\u0027namespace\u0027: \u0027MyNamespace\u0027,"},{"line_number":991,"context_line":"                                \u0027name\u0027: \"MyTag\"})"},{"line_number":992,"context_line":"        with mock.patch.object(self.gc.metadefs_tag,"},{"line_number":993,"context_line":"                               \u0027create\u0027) as mocked_create:"},{"line_number":994,"context_line":"            expect_tag \u003d {}"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a80dd14_c32c4005","line":991,"in_reply_to":"9a80dd14_ae5bda85","updated":"2015-03-06 02:54:48.000000000","message":"Done","commit_id":"24db68d9c22102821bc1d0368d37f4cc20c54117"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"bb89447c31257590b6b1eced17b108ee9e06265f","unresolved":false,"context_lines":[{"line_number":375,"context_line":"            msg \u003d \"No image with an ID of \u0027%s\u0027 exists.\" % image_id"},{"line_number":376,"context_line":"            self.assert_exits_with_msg(func\u003dtest_shell.do_image_delete,"},{"line_number":377,"context_line":"                                       func_args\u003dargs,"},{"line_number":378,"context_line":"                                       err_msg\u003dmsg)"},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"    def test_do_member_list(self):"},{"line_number":381,"context_line":"        args \u003d self._make_args({\u0027image_id\u0027: \u0027IMG-01\u0027})"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_99a1a748","side":"PARENT","line":378,"updated":"2015-03-13 10:57:41.000000000","message":"Can I know why have you deleted this test?","commit_id":"59eec058bca34645c81697537e6dfc3fa2a359b1"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"5fb5f5838f06db4b25b99e70e9ac5868f78c6a66","unresolved":false,"context_lines":[{"line_number":375,"context_line":"            msg \u003d \"No image with an ID of \u0027%s\u0027 exists.\" % image_id"},{"line_number":376,"context_line":"            self.assert_exits_with_msg(func\u003dtest_shell.do_image_delete,"},{"line_number":377,"context_line":"                                       func_args\u003dargs,"},{"line_number":378,"context_line":"                                       err_msg\u003dmsg)"},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"    def test_do_member_list(self):"},{"line_number":381,"context_line":"        args \u003d self._make_args({\u0027image_id\u0027: \u0027IMG-01\u0027})"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_18a0088f","side":"PARENT","line":378,"in_reply_to":"9a80dd14_99a1a748","updated":"2015-03-16 12:47:32.000000000","message":"Thanks for catching this.","commit_id":"59eec058bca34645c81697537e6dfc3fa2a359b1"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"d0864bd27167dcc7a9a1225cbe02bc4881bd626c","unresolved":false,"context_lines":[{"line_number":384,"context_line":""},{"line_number":385,"context_line":"            mocked_list.assert_called_once_with(\u0027IMG-01\u0027)"},{"line_number":386,"context_line":"            columns \u003d [\u0027Image ID\u0027, \u0027Member ID\u0027, \u0027Status\u0027]"},{"line_number":387,"context_line":"            utils.print_list.assert_called_once_with({}, columns)"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"    def test_do_image_delete_deleted(self):"},{"line_number":390,"context_line":"        image_id \u003d \u0027deleted-img\u0027"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a80dd14_73c122e3","line":387,"updated":"2015-03-16 13:31:06.000000000","message":"Have no idea what happened here and why it\u0027s included in diff, but my assumption is that this test should be placed under the test_do_image_delete_deleted instead, so it won\u0027t be highlighted in the review.","commit_id":"033a4dda057083cb9c297aa34b687d02ea55d5fb"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"14d9a6a075dafe1a621199de9bc0ab12147cf344","unresolved":false,"context_lines":[{"line_number":384,"context_line":""},{"line_number":385,"context_line":"            mocked_list.assert_called_once_with(\u0027IMG-01\u0027)"},{"line_number":386,"context_line":"            columns \u003d [\u0027Image ID\u0027, \u0027Member ID\u0027, \u0027Status\u0027]"},{"line_number":387,"context_line":"            utils.print_list.assert_called_once_with({}, columns)"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"    def test_do_image_delete_deleted(self):"},{"line_number":390,"context_line":"        image_id \u003d \u0027deleted-img\u0027"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a80dd14_1cc1d34d","line":387,"in_reply_to":"9a80dd14_73c122e3","updated":"2015-03-16 14:18:56.000000000","message":"Done - not sure how this happened to begin with.","commit_id":"033a4dda057083cb9c297aa34b687d02ea55d5fb"}]}
