)]}'
{"tempest/services/object_storage/account_client.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"88c5f535beafd80314f650da428aaeb3933634d4","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class AccountClient(rest_client.RestClient):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def create_account(self, data\u003dNone,"},{"line_number":27,"context_line":"                       params\u003dNone,"},{"line_number":28,"context_line":"                       metadata\u003dNone,"},{"line_number":29,"context_line":"                       remove_metadata\u003dNone,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6eadb0_63826902","side":"PARENT","line":26,"updated":"2016-12-13 10:12:43.000000000","message":"So this method was only used to the \"bulk\" operations ? That\u0027s why it\u0027s safe to remove it here ?","commit_id":"63746daa93694dc6a11666d7b0539fe9c3422981"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b95e0cf66018ac1a3473b690bf3ef4b18a3fe23e","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class AccountClient(rest_client.RestClient):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def create_account(self, data\u003dNone,"},{"line_number":27,"context_line":"                       params\u003dNone,"},{"line_number":28,"context_line":"                       metadata\u003dNone,"},{"line_number":29,"context_line":"                       remove_metadata\u003dNone,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6eadb0_b3bca66d","side":"PARENT","line":26,"in_reply_to":"1a6eadb0_63826902","updated":"2016-12-14 01:53:44.000000000","message":"Yea, actually those methods were added for bulk operation only- upload archive.","commit_id":"63746daa93694dc6a11666d7b0539fe9c3422981"}],"tempest/services/object_storage/bulk_middleware_client.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"88c5f535beafd80314f650da428aaeb3933634d4","unresolved":false,"context_lines":[{"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 BulkMiddlewareClient(rest_client.RestClient):"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def upload_archive(self, data\u003dNone, params\u003dNone, headers\u003dNone):"},{"line_number":24,"context_line":"        \"\"\"Expand tar files into a Swift cluster."}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6eadb0_83b945ec","line":21,"updated":"2016-12-13 10:12:43.000000000","message":"I don\u0027t think we should introduce a BulkMiddlewareClient. there\u0027s nothing in this class that\u0027s specific to the Bulk Middleware. It\u0027s just generic code (put/delete) with special params/headers.\n\nI agree it was wrong to use the account_client to do this, but maybe then we should move those methods to some base class.","commit_id":"7399d6584c81865d83af8b588a7bf6bd0ee53cb2"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"49f6ad34faea7d7aa53a0d9dc85624dcb363d09b","unresolved":false,"context_lines":[{"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 BulkMiddlewareClient(rest_client.RestClient):"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def upload_archive(self, data\u003dNone, params\u003dNone, headers\u003dNone):"},{"line_number":24,"context_line":"        \"\"\"Expand tar files into a Swift cluster."}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6eadb0_1f92af57","line":21,"in_reply_to":"1a6eadb0_537352e7","updated":"2016-12-14 09:21:26.000000000","message":"There\u0027s nothing in the defintion of the upload_archive method that is specific  to BulkMiddleware, all  the upload_archive does is a put() operation.","commit_id":"7399d6584c81865d83af8b588a7bf6bd0ee53cb2"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b95e0cf66018ac1a3473b690bf3ef4b18a3fe23e","unresolved":false,"context_lines":[{"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 BulkMiddlewareClient(rest_client.RestClient):"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def upload_archive(self, data\u003dNone, params\u003dNone, headers\u003dNone):"},{"line_number":24,"context_line":"        \"\"\"Expand tar files into a Swift cluster."}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6eadb0_537352e7","line":21,"in_reply_to":"1a6eadb0_83b945ec","updated":"2016-12-14 01:53:44.000000000","message":"This is all bulk middleware operation. Swift allow these operation bulk delete and upload archive through bulk middleware only.\n\n- http://docs.openstack.org/developer/swift/middleware.html#module-swift.common.middleware.bulk","commit_id":"7399d6584c81865d83af8b588a7bf6bd0ee53cb2"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"f18b2b66e2e5328f91351acfab1193cff380c1c8","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":3,"id":"1a6eadb0_9a3840a2","line":1,"updated":"2016-12-15 14:49:35.000000000","message":"We don\"t need a new client for this.\n\nSo far, each client is in charge of a specific \u0027route\u0027 (i.e a portion of a URL. For instance cinder volume client manages /volume and cinder snapshot client manages /snapshot.\n\nHere this client doesn\u0027t handle any route right ?","commit_id":"f3d296912669e6ece1bb7feaa9012cee5c8dbdd8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"502fc920f94bee471611637afe174ca75d8a3e5b","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":3,"id":"3a1ff146_84e3d432","line":1,"in_reply_to":"1a6eadb0_9a3840a2","updated":"2017-03-16 05:00:27.000000000","message":"added bulk middleware specific url in this client.","commit_id":"f3d296912669e6ece1bb7feaa9012cee5c8dbdd8"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"503688c61ffee9edecb8ce421de98189f9782e4a","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        self.expected_success(200, resp.status)"},{"line_number":35,"context_line":"        return resp, body"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def bulk_delete(self, data\u003dNone, headers\u003dNone):"},{"line_number":38,"context_line":"        \"\"\"Delete multiple objects or containers from their account."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        For More information please check:"},{"line_number":41,"context_line":"        http://docs.openstack.org/developer/swift/middleware.html#module-swift.common.middleware.bulk"},{"line_number":42,"context_line":"        \"\"\""},{"line_number":43,"context_line":"        url \u003d \u0027?bulk-delete\u0027"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        if headers is None:"},{"line_number":46,"context_line":"            headers \u003d {}"},{"line_number":47,"context_line":"        resp, body \u003d self.delete(url, headers\u003dheaders, body\u003ddata)"},{"line_number":48,"context_line":"        self.expected_success(200, resp.status)"},{"line_number":49,"context_line":"        return resp, body"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def bulk_delete_with_post(self, data\u003dNone, headers\u003dNone):"},{"line_number":52,"context_line":"        \"\"\"Delete multiple objects or containers with POST request."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        For More information please check:"},{"line_number":55,"context_line":"        http://docs.openstack.org/developer/swift/middleware.html#module-swift.common.middleware.bulk"},{"line_number":56,"context_line":"        \"\"\""},{"line_number":57,"context_line":"        url \u003d \u0027?bulk-delete\u0027"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        if headers is None:"},{"line_number":60,"context_line":"            headers \u003d {}"},{"line_number":61,"context_line":"        resp, body \u003d self.post(url, headers\u003dheaders, body\u003ddata)"},{"line_number":62,"context_line":"        self.expected_success([200, 204], resp.status)"},{"line_number":63,"context_line":"        return resp, body"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a1ced50_afe2a79d","line":62,"range":{"start_line":37,"start_character":0,"end_line":62,"end_character":30},"updated":"2017-03-17 06:21:12.000000000","message":"These methods are against service client naming rule and that seems mess so much..\n\neg: https://specs.openstack.org/openstack/qa-specs/specs/tempest/consistent-service-method-names.html#delete-resources-id","commit_id":"b1e6c7a6b5d30612023204eed71672ff1246ade3"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"33351bc8dc6c93720fbc898589ccf8f6565ea736","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        self.expected_success(200, resp.status)"},{"line_number":35,"context_line":"        return resp, body"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def bulk_delete(self, data\u003dNone, headers\u003dNone):"},{"line_number":38,"context_line":"        \"\"\"Delete multiple objects or containers from their account."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        For More information please check:"},{"line_number":41,"context_line":"        http://docs.openstack.org/developer/swift/middleware.html#module-swift.common.middleware.bulk"},{"line_number":42,"context_line":"        \"\"\""},{"line_number":43,"context_line":"        url \u003d \u0027?bulk-delete\u0027"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        if headers is None:"},{"line_number":46,"context_line":"            headers \u003d {}"},{"line_number":47,"context_line":"        resp, body \u003d self.delete(url, headers\u003dheaders, body\u003ddata)"},{"line_number":48,"context_line":"        self.expected_success(200, resp.status)"},{"line_number":49,"context_line":"        return resp, body"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def bulk_delete_with_post(self, data\u003dNone, headers\u003dNone):"},{"line_number":52,"context_line":"        \"\"\"Delete multiple objects or containers with POST request."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        For More information please check:"},{"line_number":55,"context_line":"        http://docs.openstack.org/developer/swift/middleware.html#module-swift.common.middleware.bulk"},{"line_number":56,"context_line":"        \"\"\""},{"line_number":57,"context_line":"        url \u003d \u0027?bulk-delete\u0027"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        if headers is None:"},{"line_number":60,"context_line":"            headers \u003d {}"},{"line_number":61,"context_line":"        resp, body \u003d self.post(url, headers\u003dheaders, body\u003ddata)"},{"line_number":62,"context_line":"        self.expected_success([200, 204], resp.status)"},{"line_number":63,"context_line":"        return resp, body"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a1ced50_43cb6b1e","line":62,"range":{"start_line":37,"start_character":0,"end_line":62,"end_character":30},"in_reply_to":"1a1ced50_afe2a79d","updated":"2017-03-21 03:26:11.000000000","message":"yea, how about delete_bulk_data","commit_id":"b1e6c7a6b5d30612023204eed71672ff1246ade3"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"309966d9606c210379983ff498985d56c84040a0","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        uploaded archived file. For More information please check:"},{"line_number":27,"context_line":"        http://docs.openstack.org/developer/swift/middleware.html#module-swift.common.middleware.bulk"},{"line_number":28,"context_line":"        \"\"\""},{"line_number":29,"context_line":"        url \u003d \u0027?extract-archive\u003d%s\u0027 % archive_file_format"},{"line_number":30,"context_line":"        if headers is None:"},{"line_number":31,"context_line":"            headers \u003d {}"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1a1ced50_1960d200","line":29,"range":{"start_line":29,"start_character":14,"end_line":29,"end_character":35},"updated":"2017-03-22 00:03:27.000000000","message":"https://docs.openstack.org/developer/swift/middleware.html#module-swift.common.middleware.bulk says we can specify UPLOAD_PATH but the client doesn\u0027t support it.\nIsn\u0027t it necessary to support it?\n\nI felt \u0027?\u0027 on the head seemed odd and I was not sure why we cannot specify the path.","commit_id":"da342b34929a9bbc5c9feff00b3c79cb3edf81a2"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3580a36b9403a9ee27aff4f2e66cd11009ec0662","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        uploaded archived file. For More information please check:"},{"line_number":27,"context_line":"        http://docs.openstack.org/developer/swift/middleware.html#module-swift.common.middleware.bulk"},{"line_number":28,"context_line":"        \"\"\""},{"line_number":29,"context_line":"        url \u003d \u0027?extract-archive\u003d%s\u0027 % archive_file_format"},{"line_number":30,"context_line":"        if headers is None:"},{"line_number":31,"context_line":"            headers \u003d {}"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1a1ced50_52c85ca8","line":29,"range":{"start_line":29,"start_character":14,"end_line":29,"end_character":35},"in_reply_to":"1a1ced50_1960d200","updated":"2017-03-22 05:18:29.000000000","message":"nice catch, i overlooked that. I think we should accept the upload path too.","commit_id":"da342b34929a9bbc5c9feff00b3c79cb3edf81a2"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"6563b61f043f48cea565714e98116bf8cd8f403b","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        uploaded archived file. For More information please check:"},{"line_number":27,"context_line":"        http://docs.openstack.org/developer/swift/middleware.html#module-swift.common.middleware.bulk"},{"line_number":28,"context_line":"        \"\"\""},{"line_number":29,"context_line":"        url \u003d \u0027?extract-archive\u003d%s\u0027 % archive_file_format"},{"line_number":30,"context_line":"        if headers is None:"},{"line_number":31,"context_line":"            headers \u003d {}"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1a1ced50_36857459","line":29,"range":{"start_line":29,"start_character":14,"end_line":29,"end_character":35},"in_reply_to":"1a1ced50_52c85ca8","updated":"2017-03-22 17:54:33.000000000","message":"OK, we need to fix it before releasing this method as stable interface.","commit_id":"da342b34929a9bbc5c9feff00b3c79cb3edf81a2"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"c1ab638d57d1ef3d0b6d101ec8f1586eb897736f","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        For More information please check:"},{"line_number":40,"context_line":"        http://docs.openstack.org/developer/swift/middleware.html#module-swift.common.middleware.bulk"},{"line_number":41,"context_line":"        \"\"\""},{"line_number":42,"context_line":"        url \u003d \u0027?bulk-delete\u0027"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        if headers is None:"},{"line_number":45,"context_line":"            headers \u003d {}"}],"source_content_type":"text/x-python","patch_set":8,"id":"ffe62b97_152a098f","line":42,"range":{"start_line":42,"start_character":8,"end_line":42,"end_character":28},"updated":"2017-03-27 19:02:01.000000000","message":"Can\u0027t we specify a path which objects are deleted on this method?\n\nAccording to the above api doc, we could specify the URL in the request body. But I am not sure we can do that.","commit_id":"3608544b6f6390efc5b7392f0bf887d2b94d308e"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"cb29606da18684ecd1e2526ab1cc0465fc194187","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        For More information please check:"},{"line_number":40,"context_line":"        http://docs.openstack.org/developer/swift/middleware.html#module-swift.common.middleware.bulk"},{"line_number":41,"context_line":"        \"\"\""},{"line_number":42,"context_line":"        url \u003d \u0027?bulk-delete\u0027"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        if headers is None:"},{"line_number":45,"context_line":"            headers \u003d {}"}],"source_content_type":"text/x-python","patch_set":8,"id":"7ffa3b31_ab7a1c21","line":42,"range":{"start_line":42,"start_character":8,"end_line":42,"end_character":28},"in_reply_to":"bff0334d_1811ee04","updated":"2017-04-17 17:37:23.000000000","message":"I see, then the above \u0027data\u0027 works fine for this case.","commit_id":"3608544b6f6390efc5b7392f0bf887d2b94d308e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"17dd0cd7e59c99d50d90f1a9ca7a7fff341ec830","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        For More information please check:"},{"line_number":40,"context_line":"        http://docs.openstack.org/developer/swift/middleware.html#module-swift.common.middleware.bulk"},{"line_number":41,"context_line":"        \"\"\""},{"line_number":42,"context_line":"        url \u003d \u0027?bulk-delete\u0027"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        if headers is None:"},{"line_number":45,"context_line":"            headers \u003d {}"}],"source_content_type":"text/x-python","patch_set":8,"id":"bff0334d_1811ee04","line":42,"range":{"start_line":42,"start_character":8,"end_line":42,"end_character":28},"in_reply_to":"ffe62b97_152a098f","updated":"2017-04-11 01:44:52.000000000","message":"that is on request body(data). To delete what all containers or objects we need to specify that in the request body with separating each name with a newline.\n\nAnd swift then extract those from request body and make list of objects to be deleted. \n\nhttp://git.openstack.org/cgit/openstack/swift/tree/swift/common/middleware/bulk.py#n343","commit_id":"3608544b6f6390efc5b7392f0bf887d2b94d308e"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"c1ab638d57d1ef3d0b6d101ec8f1586eb897736f","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        For More information please check:"},{"line_number":54,"context_line":"        http://docs.openstack.org/developer/swift/middleware.html#module-swift.common.middleware.bulk"},{"line_number":55,"context_line":"        \"\"\""},{"line_number":56,"context_line":"        url \u003d \u0027?bulk-delete\u0027"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        if headers is None:"},{"line_number":59,"context_line":"            headers \u003d {}"}],"source_content_type":"text/x-python","patch_set":8,"id":"ffe62b97_f51a057b","line":56,"range":{"start_line":56,"start_character":8,"end_line":56,"end_character":28},"updated":"2017-03-27 19:02:01.000000000","message":"ditto","commit_id":"3608544b6f6390efc5b7392f0bf887d2b94d308e"}]}
