)]}'
{"releasenotes/notes/14.0.0-add-image-clients-af94564fb34ddca6.yaml":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"45746e2b7f0155b0b13edbaebf4a10ecba359805","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    there are some apis are not included, add them."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"      * namespace_properties_client(v2)"},{"line_number":9,"context_line":"      * namespace_objects_client(v2)"}],"source_content_type":"text/x-yaml","patch_set":15,"id":"da4df55a_7edaaf4d","line":9,"range":{"start_line":9,"start_character":6,"end_line":9,"end_character":36},"updated":"2016-12-27 07:59:00.000000000","message":"v14.0.0 is already released, so it is necessary to add a new reno file instead of appending the existing file.","commit_id":"7da2339f165ebe89bfe5ff84408b1df7c93e193c"}],"tempest/api/image/base.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"1cef6315361fcd1a24d7d72a027d3c699e795e72","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        object_name \u003d data_utils.rand_name(cls.__class__.__name__ + \u0027-object\u0027)"},{"line_number":162,"context_line":"        namespace_object \u003d cls.namespace_objects_client.\\"},{"line_number":163,"context_line":"            create_namespace_object(namespace[\u0027namespace\u0027], name\u003dobject_name)"},{"line_number":164,"context_line":"        cls.addCleanup(cls.namespace_objects_client.delete_namespace_object,"},{"line_number":165,"context_line":"                       namespace[\u0027namespace\u0027], object_name)"},{"line_number":166,"context_line":"        return namespace_object"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3a71b18c_61749367","line":165,"range":{"start_line":164,"start_character":0,"end_line":165,"end_character":59},"updated":"2016-12-06 03:01:08.000000000","message":"In test_create_update_delete_meta_namespace_objects() , this created resource is deleted clearly. So this cleanup would be failed because of non-existence.\n\nAnyways, it is nice to implement this method in the test_images_metadefs_namespace_objects.py because this test is used in the module only.","commit_id":"f8745b23f1d39144c42b79359fd6d2fd03baa62c"},{"author":{"_account_id":22692,"name":"guo yunxian","email":"yunxian.guo@easystack.cn","username":"guoyunxian"},"change_message_id":"e16ac5b3a11ad724048cbc841820e49fa5ed2d1d","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        object_name \u003d data_utils.rand_name(cls.__class__.__name__ + \u0027-object\u0027)"},{"line_number":162,"context_line":"        namespace_object \u003d cls.namespace_objects_client.\\"},{"line_number":163,"context_line":"            create_namespace_object(namespace[\u0027namespace\u0027], name\u003dobject_name)"},{"line_number":164,"context_line":"        cls.addCleanup(cls.namespace_objects_client.delete_namespace_object,"},{"line_number":165,"context_line":"                       namespace[\u0027namespace\u0027], object_name)"},{"line_number":166,"context_line":"        return namespace_object"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3a71b18c_810b6f29","line":165,"range":{"start_line":164,"start_character":0,"end_line":165,"end_character":59},"in_reply_to":"3a71b18c_61749367","updated":"2016-12-06 03:30:36.000000000","message":"In test_create_update_delete_meta_namespace_objects(), it does not use _create_namespace_object() to create resourse, but implement this method in the \ntest_images_metadefs_namespace_objects.py it\u0027s a good suggestion. Thanks!","commit_id":"f8745b23f1d39144c42b79359fd6d2fd03baa62c"}],"tempest/api/image/v2/test_images_metadefs_namespace_objects.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"58f5823c9318b951664fd770295c7dd139641a5b","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    \"\"\"Test the Metadata definition namespace objects basic functionality\"\"\""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    @test.idempotent_id(\u0027b1a3775e-3b5c-4f6a-a3b4-1ba3574ae718\u0027)"},{"line_number":22,"context_line":"    def test_basic_meta_def_namespace_objects(self):"},{"line_number":23,"context_line":"        # Create a namespace"},{"line_number":24,"context_line":"        namespace \u003d self.create_namespace()"},{"line_number":25,"context_line":"        # Create a namespace object"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_3ecd0887","line":22,"range":{"start_line":22,"start_character":8,"end_line":22,"end_character":45},"updated":"2016-11-29 18:10:17.000000000","message":"Can you separate each API call into multiple separated tests as possible?\nCurrent test is difficult to debug when facing the test failure because a single test contains multiple operations.\nPlease see test_images_member.py as the sample.","commit_id":"a28e7e423b273ada2fd560302775f5dbae87d037"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"d84ce082b860c5e282dd93d58112b2e353d9ec17","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        # Create a namespace object"},{"line_number":34,"context_line":"        object_name \u003d data_utils.rand_name(\u0027object\u0027)"},{"line_number":35,"context_line":"        body \u003d self.namespace_objects_client.create_namespace_object("},{"line_number":36,"context_line":"            namespace[\u0027namespace\u0027], name\u003dobject_name)"},{"line_number":37,"context_line":"        self.assertEqual(object_name, body[\u0027name\u0027])"},{"line_number":38,"context_line":"        # Update a namespace object"},{"line_number":39,"context_line":"        up_object_name \u003d data_utils.rand_name(\u0027update-object\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a71b18c_45992ac3","line":36,"updated":"2016-12-07 05:06:35.000000000","message":"I think you should add addCleanup() here. Otherwise, the object remains if update_namespace_object() fails.","commit_id":"222906aa4f4ce712dece7f78ba20cc57287cf30b"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"652815ae0f386b27455fd189b00456d431efd1fa","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        namespace \u003d self.create_namespace()"},{"line_number":34,"context_line":"        # Create a namespace object"},{"line_number":35,"context_line":"        object_name \u003d data_utils.rand_name(\u0027object\u0027)"},{"line_number":36,"context_line":"        body \u003d self.namespace_objects_client.create_namespace_object("},{"line_number":37,"context_line":"            namespace[\u0027namespace\u0027], name\u003dobject_name)"},{"line_number":38,"context_line":"        self.addCleanup(test_utils.call_and_ignore_notfound_exc,"},{"line_number":39,"context_line":"                        self.namespace_objects_client.delete_namespace_object,"},{"line_number":40,"context_line":"                        namespace[\u0027namespace\u0027], object_name)"}],"source_content_type":"text/x-python","patch_set":13,"id":"da4df55a_6541a50b","line":37,"range":{"start_line":36,"start_character":8,"end_line":37,"end_character":53},"updated":"2016-12-22 16:11:25.000000000","message":"Why do you not use your own _create_namespace_object method here?","commit_id":"b9e71b04ce51424fba2a7f62dcfa91619d31b4ad"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"652815ae0f386b27455fd189b00456d431efd1fa","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        object_name \u003d data_utils.rand_name(\u0027object\u0027)"},{"line_number":36,"context_line":"        body \u003d self.namespace_objects_client.create_namespace_object("},{"line_number":37,"context_line":"            namespace[\u0027namespace\u0027], name\u003dobject_name)"},{"line_number":38,"context_line":"        self.addCleanup(test_utils.call_and_ignore_notfound_exc,"},{"line_number":39,"context_line":"                        self.namespace_objects_client.delete_namespace_object,"},{"line_number":40,"context_line":"                        namespace[\u0027namespace\u0027], object_name)"},{"line_number":41,"context_line":"        self.assertEqual(object_name, body[\u0027name\u0027])"},{"line_number":42,"context_line":"        # Update a namespace object"},{"line_number":43,"context_line":"        up_object_name \u003d data_utils.rand_name(\u0027update-object\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"da4df55a_e55595c6","line":40,"range":{"start_line":38,"start_character":8,"end_line":40,"end_character":60},"updated":"2016-12-22 16:11:25.000000000","message":"If you use your _create_namespace_object method, this becomes redundant.","commit_id":"b9e71b04ce51424fba2a7f62dcfa91619d31b4ad"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"45746e2b7f0155b0b13edbaebf4a10ecba359805","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        # Create a namespace"},{"line_number":34,"context_line":"        namespace \u003d self.create_namespace()"},{"line_number":35,"context_line":"        # Create a namespace object"},{"line_number":36,"context_line":"        body \u003d self._create_namespace_object(namespace)"},{"line_number":37,"context_line":"        # Update a namespace object"},{"line_number":38,"context_line":"        up_object_name \u003d data_utils.rand_name(\u0027update-object\u0027)"},{"line_number":39,"context_line":"        body \u003d self.namespace_objects_client.update_namespace_object("}],"source_content_type":"text/x-python","patch_set":15,"id":"da4df55a_3eff47ab","line":36,"range":{"start_line":36,"start_character":8,"end_line":36,"end_character":15},"updated":"2016-12-27 07:59:00.000000000","message":"nit: this body is not used in the test. It is fine to remove it.","commit_id":"7da2339f165ebe89bfe5ff84408b1df7c93e193c"},{"author":{"_account_id":22692,"name":"guo yunxian","email":"yunxian.guo@easystack.cn","username":"guoyunxian"},"change_message_id":"727cbbbe7100ebaa6335ef472ca6e1dd81a1badf","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        # Create a namespace"},{"line_number":34,"context_line":"        namespace \u003d self.create_namespace()"},{"line_number":35,"context_line":"        # Create a namespace object"},{"line_number":36,"context_line":"        body \u003d self._create_namespace_object(namespace)"},{"line_number":37,"context_line":"        # Update a namespace object"},{"line_number":38,"context_line":"        up_object_name \u003d data_utils.rand_name(\u0027update-object\u0027)"},{"line_number":39,"context_line":"        body \u003d self.namespace_objects_client.update_namespace_object("}],"source_content_type":"text/x-python","patch_set":15,"id":"da4df55a_a4332661","line":36,"range":{"start_line":36,"start_character":8,"end_line":36,"end_character":15},"in_reply_to":"da4df55a_3eff47ab","updated":"2016-12-27 09:22:08.000000000","message":"This is used in line 40","commit_id":"7da2339f165ebe89bfe5ff84408b1df7c93e193c"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"7dd9a1340762137d381d7aec70273a9f939ac2e3","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        # Create a namespace"},{"line_number":34,"context_line":"        namespace \u003d self.create_namespace()"},{"line_number":35,"context_line":"        # Create a namespace object"},{"line_number":36,"context_line":"        body \u003d self._create_namespace_object(namespace)"},{"line_number":37,"context_line":"        # Update a namespace object"},{"line_number":38,"context_line":"        up_object_name \u003d data_utils.rand_name(\u0027update-object\u0027)"},{"line_number":39,"context_line":"        body \u003d self.namespace_objects_client.update_namespace_object("}],"source_content_type":"text/x-python","patch_set":15,"id":"da4df55a_c4866ada","line":36,"range":{"start_line":36,"start_character":8,"end_line":36,"end_character":15},"in_reply_to":"da4df55a_a4332661","updated":"2016-12-27 09:23:20.000000000","message":"Ah, thanks for your explanation.\n\nSo it is fine to change the reno only.","commit_id":"7da2339f165ebe89bfe5ff84408b1df7c93e193c"}],"tempest/lib/services/image/v2/namespace_objects_client.py":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"d84ce082b860c5e282dd93d58112b2e353d9ec17","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def delete_namespace_object(self, namespace, object_name):"},{"line_number":79,"context_line":"        \"\"\"Create a namespace object"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        For a full list of available parameters, please refer to the official"},{"line_number":82,"context_line":"        API reference:"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a71b18c_257eee69","line":79,"updated":"2016-12-07 05:06:35.000000000","message":"delete?","commit_id":"222906aa4f4ce712dece7f78ba20cc57287cf30b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d773fccae7c8387e43290a87541bd8dc77feb402","unresolved":false,"context_lines":[{"line_number":21,"context_line":"class NamespaceObjectsClient(rest_client.RestClient):"},{"line_number":22,"context_line":"    api_version \u003d \"v2\""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def list_namespace_objects(self, namespace):"},{"line_number":25,"context_line":"        \"\"\"Lists all namespace objects."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"        For a full list of available parameters, please refer to the official"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a6eadb0_7f5a0d52","line":24,"range":{"start_line":24,"start_character":46,"end_line":24,"end_character":47},"updated":"2016-12-19 08:30:09.000000000","message":"I will be nice to have **params here to allow tests case to send filter query request","commit_id":"1ba7b83cf2cf15c4325b978c245b9417e4c1d752"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"84aef60e60122f73add8a84ce57e977c94a25637","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 NamespaceObjectsClient(rest_client.RestClient):"}],"source_content_type":"text/x-python","patch_set":14,"id":"da4df55a_eb19967a","line":18,"range":{"start_line":17,"start_character":0,"end_line":18,"end_character":42},"updated":"2016-12-26 07:56:02.000000000","message":"these should be imported with separate line in between.","commit_id":"3035b888c8159aba242185c04decb4f51b125666"}]}
