)]}'
{"tempest/api/image/v2/test_images_metadefs_namespace_tags.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"5e7e1510e0b6b7a7654d4516119a990372609049","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    def _create_namespace_tags(self, namespace):"},{"line_number":23,"context_line":"        # Create a namespace"},{"line_number":24,"context_line":"        tags \u003d ["},{"line_number":25,"context_line":"            {"},{"line_number":26,"context_line":"                \"name\": \"sample-tag1\""},{"line_number":27,"context_line":"            },"},{"line_number":28,"context_line":"            {"},{"line_number":29,"context_line":"                \"name\": \"sample-tag2\""},{"line_number":30,"context_line":"            },"},{"line_number":31,"context_line":"            {"},{"line_number":32,"context_line":"                \"name\": \"sample-tag3\""},{"line_number":33,"context_line":"            }"},{"line_number":34,"context_line":"        ]"},{"line_number":35,"context_line":"        namespace_tags \u003d self.namespace_tags_client.create_namespace_tags("},{"line_number":36,"context_line":"            namespace[\u0027namespace\u0027], tags\u003dtags)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_001807d2","line":33,"range":{"start_line":24,"start_character":0,"end_line":33,"end_character":12},"updated":"2017-01-08 05:50:54.000000000","message":"let\u0027s create it as self. and use the same while comparison in test cases.","commit_id":"9ae148e7541867366a28d40df5011a80e7f695ae"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"5e7e1510e0b6b7a7654d4516119a990372609049","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        return namespace_tags"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @test.idempotent_id(\u0027a2a3765e-3a6d-4f6d-a3a7-3cc3476aa876\u0027)"},{"line_number":43,"context_line":"    def test_create_list_delete_namespace_tag_definitions(self):"},{"line_number":44,"context_line":"        # Create a namespace"},{"line_number":45,"context_line":"        namespace \u003d self.create_namespace()"},{"line_number":46,"context_line":"        self._create_namespace_tags(namespace)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_8024f70c","line":43,"range":{"start_line":43,"start_character":8,"end_line":43,"end_character":57},"updated":"2017-01-08 05:50:54.000000000","message":"how about -\u003e test_create_list_delete_namespace_tags","commit_id":"9ae148e7541867366a28d40df5011a80e7f695ae"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"5e7e1510e0b6b7a7654d4516119a990372609049","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        # Create a namespace"},{"line_number":45,"context_line":"        namespace \u003d self.create_namespace()"},{"line_number":46,"context_line":"        self._create_namespace_tags(namespace)"},{"line_number":47,"context_line":"        tag_list \u003d [\"sample-tag1\", \"sample-tag2\", \"sample-tag3\"]"},{"line_number":48,"context_line":"        # List namespace tags"},{"line_number":49,"context_line":"        body \u003d self.namespace_tags_client.list_namespace_tags("},{"line_number":50,"context_line":"            namespace[\u0027namespace\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_400e8f8c","line":47,"range":{"start_line":47,"start_character":8,"end_line":47,"end_character":64},"updated":"2017-01-08 05:50:54.000000000","message":"let\u0027s not duplicate the tag names, it should be used from single place. You can define it as self and use here.","commit_id":"9ae148e7541867366a28d40df5011a80e7f695ae"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"5e7e1510e0b6b7a7654d4516119a990372609049","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    def test_create_update_delete_tag_definition(self):"},{"line_number":64,"context_line":"        # Create a namespace"},{"line_number":65,"context_line":"        namespace \u003d self.create_namespace()"},{"line_number":66,"context_line":"        self._create_namespace_tags(namespace)"},{"line_number":67,"context_line":"        # Create a tag"},{"line_number":68,"context_line":"        tag_name \u003d data_utils.rand_name(\u0027tag_name\u0027)"},{"line_number":69,"context_line":"        self.namespace_tags_client.create_namespace_tag_definition("}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_c01a7fc5","line":66,"range":{"start_line":66,"start_character":0,"end_line":66,"end_character":46},"updated":"2017-01-08 05:50:54.000000000","message":"why we need this.","commit_id":"9ae148e7541867366a28d40df5011a80e7f695ae"},{"author":{"_account_id":22692,"name":"guo yunxian","email":"yunxian.guo@easystack.cn","username":"guoyunxian"},"change_message_id":"b855a2ddb02de9190c3ac233a39702be53129dcb","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    def test_create_update_delete_tag_definition(self):"},{"line_number":65,"context_line":"        # Create a namespace"},{"line_number":66,"context_line":"        namespace \u003d self.create_namespace()"},{"line_number":67,"context_line":"        self._create_namespace_tags(namespace)"},{"line_number":68,"context_line":"        # Create a tag"},{"line_number":69,"context_line":"        tag_name \u003d data_utils.rand_name(\u0027tag_name\u0027)"},{"line_number":70,"context_line":"        self.namespace_tags_client.create_namespace_tag_definition("}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5201f7_63fb9347","line":67,"range":{"start_line":67,"start_character":13,"end_line":67,"end_character":35},"updated":"2017-01-09 05:35:11.000000000","message":"This is because create tag definition means adds a tag to the list of namespace tag definitions, so I create a list of tag definitions first.","commit_id":"9807d9281888f3c1e79c718cbc77b69da5bda619"}],"tempest/lib/services/image/v2/namespace_tags_client.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"5e7e1510e0b6b7a7654d4516119a990372609049","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        body \u003d json.loads(body)"},{"line_number":36,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def get_namespace_tag_definition(self, namespace, tag_name):"},{"line_number":39,"context_line":"        \"\"\"Gets a definition for a tag."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        For a full list of available parameters, please refer to the official"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_20fd0b6e","line":38,"range":{"start_line":38,"start_character":8,"end_line":38,"end_character":36},"updated":"2017-01-08 05:50:54.000000000","message":"rename it to show_namespace_tag_definition","commit_id":"9ae148e7541867366a28d40df5011a80e7f695ae"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"5e7e1510e0b6b7a7654d4516119a990372609049","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        \"\"\""},{"line_number":113,"context_line":"        url \u003d \u0027metadefs/namespaces/%s/tags\u0027 % namespace"},{"line_number":114,"context_line":"        resp, _ \u003d self.delete(url)"},{"line_number":115,"context_line":"        self.expected_success(200, resp.status)"},{"line_number":116,"context_line":"        return rest_client.ResponseBody(resp)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_803dd72c","line":115,"range":{"start_line":115,"start_character":29,"end_line":115,"end_character":34},"updated":"2017-01-08 05:50:54.000000000","message":"it is not 204? test is passing then its bug in doc? - http://developer.openstack.org/api-ref/image/v2/metadefs-index.html?expanded\u003ddelete-all-tag-definitions-detail","commit_id":"9ae148e7541867366a28d40df5011a80e7f695ae"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e32ed6ea41721ee6ec9e23fb63db2829cc01199e","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        body \u003d json.loads(body)"},{"line_number":91,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def list_namespace_tags(self, namespace):"},{"line_number":94,"context_line":"        \"\"\"Lists the tag definitions within a namespace."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        For a full list of available parameters, please refer to the official"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a3c09a3_bac66614","line":93,"range":{"start_line":93,"start_character":43,"end_line":93,"end_character":45},"updated":"2017-01-13 05:54:44.000000000","message":"there are filter available in list so better is to accept **param in this\n\n- http://developer.openstack.org/api-ref/image/v2/metadefs-index?expanded\u003dlist-tags-detail","commit_id":"7274f16bf2a16f55eb7ba017697601b77eb00b71"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e32ed6ea41721ee6ec9e23fb63db2829cc01199e","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        \"\"\""},{"line_number":113,"context_line":"        url \u003d \u0027metadefs/namespaces/%s/tags\u0027 % namespace"},{"line_number":114,"context_line":"        resp, _ \u003d self.delete(url)"},{"line_number":115,"context_line":"        self.expected_success(200, resp.status)"},{"line_number":116,"context_line":"        return rest_client.ResponseBody(resp)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a3c09a3_ba5f4674","line":115,"range":{"start_line":115,"start_character":8,"end_line":115,"end_character":46},"updated":"2017-01-13 05:54:44.000000000","message":"yea, this is bug in glance or api-ref.  glance did not implemented response serializer for delete_tags\n\nI have logged bug on that. https://bugs.launchpad.net/glance/+bug/1656183","commit_id":"7274f16bf2a16f55eb7ba017697601b77eb00b71"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"fabe7afd55c599254f41a873d3fd79f28e88784f","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from oslo_serialization import jsonutils as json"},{"line_number":17,"context_line":"from six.moves.urllib import parse as urllib"},{"line_number":18,"context_line":"from tempest.lib.common import rest_client"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class NamespaceTagsClient(rest_client.RestClient):"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_01f946c7","line":18,"range":{"start_line":17,"start_character":0,"end_line":18,"end_character":42},"updated":"2017-01-17 08:13:29.000000000","message":"those should be separated import.","commit_id":"2cc4dde897c43fb217bbc91c9e31dc62277117c0"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"6ddf4f8a9c7dd2c3b7508df681b0bf285503d6ca","unresolved":false,"context_lines":[{"line_number":22,"context_line":"class NamespaceTagsClient(rest_client.RestClient):"},{"line_number":23,"context_line":"    api_version \u003d \"v2\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def create_namespace_tag_definition(self, namespace, tag_name):"},{"line_number":26,"context_line":"        \"\"\"Adds a tag to the list of namespace tag definitions."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"        For a full list of available parameters, please refer to the official"}],"source_content_type":"text/x-python","patch_set":10,"id":"7a3c09a3_7d636042","line":25,"range":{"start_line":25,"start_character":8,"end_line":25,"end_character":39},"updated":"2017-01-17 23:00:43.000000000","message":"The difference between w/ _definition and w/o _definition is just a single resource or multiple resources.\nThis kind of difference represents w/ or w/o \"s\" on the other resources.\n\nSo how about naming this method as create_namespace_tag ?","commit_id":"09e677935fae05bf978dd37241b82415503e6b58"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"6ddf4f8a9c7dd2c3b7508df681b0bf285503d6ca","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        body \u003d json.loads(body)"},{"line_number":37,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def show_namespace_tag_definition(self, namespace, tag_name):"},{"line_number":40,"context_line":"        \"\"\"Gets a definition for a tag."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        For a full list of available parameters, please refer to the official"}],"source_content_type":"text/x-python","patch_set":10,"id":"7a3c09a3_3d4e38c1","line":39,"updated":"2017-01-17 23:00:43.000000000","message":"ditto: just show_namespace_tag","commit_id":"09e677935fae05bf978dd37241b82415503e6b58"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"6ddf4f8a9c7dd2c3b7508df681b0bf285503d6ca","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        body \u003d json.loads(body)"},{"line_number":51,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def update_namespace_tag_definition(self, namespace, tag_name, **kwargs):"},{"line_number":54,"context_line":"        \"\"\"Renames a tag definition."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        For a full list of available parameters, please refer to the official"}],"source_content_type":"text/x-python","patch_set":10,"id":"7a3c09a3_ddd374d3","line":53,"range":{"start_line":53,"start_character":8,"end_line":53,"end_character":39},"updated":"2017-01-17 23:00:43.000000000","message":"ditto: just update_namespace_tag","commit_id":"09e677935fae05bf978dd37241b82415503e6b58"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"6ddf4f8a9c7dd2c3b7508df681b0bf285503d6ca","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        body \u003d json.loads(body)"},{"line_number":66,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def delete_namespace_tag_definition(self, namespace, tag_name):"},{"line_number":69,"context_line":"        \"\"\"Deletes a tag definition within a namespace."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        For a full list of available parameters, please refer to the official"}],"source_content_type":"text/x-python","patch_set":10,"id":"7a3c09a3_1dda5ce8","line":68,"range":{"start_line":68,"start_character":8,"end_line":68,"end_character":39},"updated":"2017-01-17 23:00:43.000000000","message":"ditto: delete_namespace_tag","commit_id":"09e677935fae05bf978dd37241b82415503e6b58"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"6ddf4f8a9c7dd2c3b7508df681b0bf285503d6ca","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        body \u003d json.loads(body)"},{"line_number":107,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def delete_all_tag_definitions(self, namespace):"},{"line_number":110,"context_line":"        \"\"\"Deletes all tag definitions within a namespace."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        For a full list of available parameters, please refer to the official"}],"source_content_type":"text/x-python","patch_set":10,"id":"7a3c09a3_bde788aa","line":109,"range":{"start_line":109,"start_character":8,"end_line":109,"end_character":34},"updated":"2017-01-17 23:00:43.000000000","message":"delete_namespaces_tags","commit_id":"09e677935fae05bf978dd37241b82415503e6b58"}]}
