)]}'
{"tempest/services/object_storage/container_client.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"8eb2a2f9d5af63923621889179e65c48369810b0","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class ContainerClient(rest_client.RestClient):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def create_or_update_container("},{"line_number":27,"context_line":"            self, container_name,"},{"line_number":28,"context_line":"            **headers):"},{"line_number":29,"context_line":"        \"\"\"Creates a container"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f2f7f8d_ce0ec331","line":26,"range":{"start_line":26,"start_character":8,"end_line":26,"end_character":34},"updated":"2017-09-19 00:59:16.000000000","message":"This method should be update_container because of put as the consistency.","commit_id":"2220d6226c8fdcc53a2a9a6bb1be78375260a34b"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"760988f745f7bf37181df0fdbfb271846bc1d454","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class ContainerClient(rest_client.RestClient):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def create_or_update_container("},{"line_number":27,"context_line":"            self, container_name,"},{"line_number":28,"context_line":"            **headers):"},{"line_number":29,"context_line":"        \"\"\"Creates a container"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff5d4b2f_acd1395a","line":26,"range":{"start_line":26,"start_character":8,"end_line":26,"end_character":34},"in_reply_to":"1f2f7f8d_ce0ec331","updated":"2017-09-19 16:18:10.000000000","message":"At this stage I would prefer to do what is strictly needed to make a stable interface, while creating as little disruption to plugins as possible - which means in this case not changing the method name. \nAdding optional parameters and docstrings is ok.","commit_id":"2220d6226c8fdcc53a2a9a6bb1be78375260a34b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e7459982292e85897a566a38d947de3562a96bbe","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class ContainerClient(rest_client.RestClient):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def create_or_update_container("},{"line_number":27,"context_line":"            self, container_name,"},{"line_number":28,"context_line":"            **headers):"},{"line_number":29,"context_line":"        \"\"\"Creates a container"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f515b1d_b83dd7bc","line":26,"range":{"start_line":26,"start_character":8,"end_line":26,"end_character":34},"in_reply_to":"7f515b1d_5b2140b4","updated":"2017-09-24 05:24:37.000000000","message":"yea, that is much suitable approach. I will fix ceilometer once we release the new names. \n\nWe cannot fix that now as new names are not yet released from Tempest side.","commit_id":"2220d6226c8fdcc53a2a9a6bb1be78375260a34b"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"67cdc85a340013dd8316bc59f7e668994d779ee6","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class ContainerClient(rest_client.RestClient):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def create_or_update_container("},{"line_number":27,"context_line":"            self, container_name,"},{"line_number":28,"context_line":"            **headers):"},{"line_number":29,"context_line":"        \"\"\"Creates a container"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f515b1d_5b2140b4","line":26,"range":{"start_line":26,"start_character":8,"end_line":26,"end_character":34},"in_reply_to":"7f515b1d_fb622c16","updated":"2017-09-23 19:04:33.000000000","message":"OK - since you did most of the effort already, you might try to fix the ceilometer plugin as well - but also maintaining a deprecated alias could work..","commit_id":"2220d6226c8fdcc53a2a9a6bb1be78375260a34b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"6a30870f04a2f0e37fdb1babb07a60b304cea257","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class ContainerClient(rest_client.RestClient):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def create_or_update_container("},{"line_number":27,"context_line":"            self, container_name,"},{"line_number":28,"context_line":"            **headers):"},{"line_number":29,"context_line":"        \"\"\"Creates a container"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f515b1d_fb622c16","line":26,"range":{"start_line":26,"start_character":8,"end_line":26,"end_character":34},"in_reply_to":"ff5d4b2f_acd1395a","updated":"2017-09-23 19:01:22.000000000","message":"As per what API does, we should have method name accordingly. \n\nOn Plugin side, it is being used in scenario manager copy where this method is not used. Fixed those in - https://review.openstack.org/#/q/topic:shrink-scenario-manager+(status:open+OR+status:merged)\n\nBut for ceilometer plugin we need to keep the old name. I would like to keep that with deprecation and once we release this new name we can fix the ceilometer plugin.","commit_id":"2220d6226c8fdcc53a2a9a6bb1be78375260a34b"},{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"a3ce899efb182c1c6e50a62b751f5dcae6b91121","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class ContainerClient(rest_client.RestClient):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def update_container("},{"line_number":28,"context_line":"            self, container_name,"},{"line_number":29,"context_line":"            **headers):"},{"line_number":30,"context_line":"        \"\"\"Update or Creates a container"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        with optional metadata passed in as a dictionary."}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_989309fb","line":29,"range":{"start_line":27,"start_character":0,"end_line":29,"end_character":23},"updated":"2017-09-26 09:00:35.000000000","message":"we can make this on line","commit_id":"cad9f295faa1085fea7fd634c3a7754c140c3caf"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"cdf3a5e309b7be5077ff64b76508a4d2c47914e9","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class ContainerClient(rest_client.RestClient):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def update_container("},{"line_number":28,"context_line":"            self, container_name,"},{"line_number":29,"context_line":"            **headers):"},{"line_number":30,"context_line":"        \"\"\"Update or Creates a container"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        with optional metadata passed in as a dictionary."}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_c9bbe36f","line":29,"range":{"start_line":27,"start_character":0,"end_line":29,"end_character":23},"in_reply_to":"7f515b1d_989309fb","updated":"2017-09-26 17:21:00.000000000","message":"yeah, nice catch. Done","commit_id":"cad9f295faa1085fea7fd634c3a7754c140c3caf"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"9f4e204f1027d74bde0f5dca0eb3d59acf5f6a3d","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class ContainerClient(rest_client.RestClient):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def update_container(self, container_name, **headers):"},{"line_number":28,"context_line":"        \"\"\"Update or Creates a container"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"        with optional metadata passed in as a dictionary."}],"source_content_type":"text/x-python","patch_set":11,"id":"7f515b1d_36ee3db4","line":27,"range":{"start_line":27,"start_character":8,"end_line":27,"end_character":24},"updated":"2017-09-27 10:19:37.000000000","message":"To be honest having a method that creates a container called \"update_container\" is very confusing for me. I think the best option would be to use a combined name like you did in other patches e.g. create_or_update. If I read a test and it says \"update_container\" I will start looking for where in the code the container is created...","commit_id":"f333a2649fe69924194f06200f4658a6c33b9f2e"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"0930629e7bd164591c1b9a8fcf569c7efd184799","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class ContainerClient(rest_client.RestClient):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def update_container(self, container_name, **headers):"},{"line_number":28,"context_line":"        \"\"\"Update or Creates a container"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"        with optional metadata passed in as a dictionary."}],"source_content_type":"text/x-python","patch_set":11,"id":"7f515b1d_72ba536e","line":27,"range":{"start_line":27,"start_character":8,"end_line":27,"end_character":24},"in_reply_to":"7f515b1d_36ee3db4","updated":"2017-09-28 17:36:31.000000000","message":"Andrea, please see my previous comment. PUT is generally used for creating and updating a resource in REST API design. And we have defined PUT as update method intentionally on the qa-spec.\n\nhttp://specs.openstack.org/openstack/qa-specs/specs/tempest/consistent-service-method-names.html","commit_id":"f333a2649fe69924194f06200f4658a6c33b9f2e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f1026d512ea63761e8edd2bb14d9b5bdc23881ca","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class ContainerClient(rest_client.RestClient):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def update_container(self, container_name, **headers):"},{"line_number":28,"context_line":"        \"\"\"Update or Creates a container"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"        with optional metadata passed in as a dictionary."}],"source_content_type":"text/x-python","patch_set":11,"id":"7f515b1d_3a32825f","line":27,"range":{"start_line":27,"start_character":8,"end_line":27,"end_character":24},"in_reply_to":"7f515b1d_36ee3db4","updated":"2017-09-28 07:45:44.000000000","message":"yea, i like to have \u0027create_or_update_container\u0027 as initially proposed. Let\u0027s discuss it on IRC to get consensus.","commit_id":"f333a2649fe69924194f06200f4658a6c33b9f2e"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"003f20caf88c63faa086870733c760dc08ee925c","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class ContainerClient(rest_client.RestClient):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def update_container(self, container_name, **headers):"},{"line_number":28,"context_line":"        \"\"\"Update or Creates a container"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"        with optional metadata passed in as a dictionary."}],"source_content_type":"text/x-python","patch_set":11,"id":"7f515b1d_c5613fab","line":27,"range":{"start_line":27,"start_character":8,"end_line":27,"end_character":24},"in_reply_to":"7f515b1d_72ba536e","updated":"2017-09-28 17:52:57.000000000","message":"I think the method name should describe what the method is for. If we only wanted to express the HTTP method used and the resource, then we should have called the method something like http_put_container.\n\nThe mapping PUT -\u003e update works in most cases, but the swift API decided that PUT can be used for create as well, so I really think this should either stay as it is today, or be called create_update_container.","commit_id":"f333a2649fe69924194f06200f4658a6c33b9f2e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2f6f8f06c0c11b2148b50e117f9150fdec175ffc","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class ContainerClient(rest_client.RestClient):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def update_container(self, container_name, **headers):"},{"line_number":28,"context_line":"        \"\"\"Update or Creates a container"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"        with optional metadata passed in as a dictionary."}],"source_content_type":"text/x-python","patch_set":11,"id":"7f515b1d_fe0cc994","line":27,"range":{"start_line":27,"start_character":8,"end_line":27,"end_character":24},"in_reply_to":"7f515b1d_c5613fab","updated":"2017-09-28 23:44:02.000000000","message":"yea, 1 thing is to note that this API first purpose is to create the container as per swift doc also. If container exist then they update that for user. \n\nIn api-ref it is named as create only- https://developer.openstack.org/api-ref/object-store/#create-container\n\nSo i think having create_or_update_container or create_container(as original) seems more better for me.","commit_id":"f333a2649fe69924194f06200f4658a6c33b9f2e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c14fb028e0342e1b62b8b5bb87848cc19350cbc2","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class ContainerClient(rest_client.RestClient):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def update_container(self, container_name, **headers):"},{"line_number":28,"context_line":"        \"\"\"Creates or Updates a container"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"        with optional metadata passed in as a dictionary."}],"source_content_type":"text/x-python","patch_set":14,"id":"7f515b1d_78e07f97","line":27,"range":{"start_line":27,"start_character":8,"end_line":27,"end_character":24},"updated":"2017-10-04 23:44:48.000000000","message":"another point here can be whether it give 404 if container does not exist? that will be interpreted by users from update_ method.","commit_id":"0078149bcec7864a5a62078b37de5a827ec0eb23"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"51a9aa5ec944f1987c7cf1bf32c1df48cdb2379a","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class ContainerClient(rest_client.RestClient):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def update_container(self, container_name, **headers):"},{"line_number":28,"context_line":"        \"\"\"Creates or Updates a container"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"        with optional metadata passed in as a dictionary."}],"source_content_type":"text/x-python","patch_set":14,"id":"7f515b1d_5af8fac2","line":27,"range":{"start_line":27,"start_character":8,"end_line":27,"end_character":24},"in_reply_to":"7f515b1d_78e07f97","updated":"2017-10-05 17:31:06.000000000","message":"Please don\u0027t return 404 on tempest.lib itself side.\nThat is really confusable for users.","commit_id":"0078149bcec7864a5a62078b37de5a827ec0eb23"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"2a2595b25bd713ca85bf6cae7609c9b3d5e1749f","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class ContainerClient(rest_client.RestClient):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def update_container(self, container_name, **headers):"},{"line_number":28,"context_line":"        \"\"\"Creates or Updates a container"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"        with optional metadata passed in as a dictionary."}],"source_content_type":"text/x-python","patch_set":14,"id":"7f515b1d_55a7c150","line":27,"range":{"start_line":27,"start_character":8,"end_line":27,"end_character":24},"in_reply_to":"7f515b1d_78e07f97","updated":"2017-10-05 07:04:06.000000000","message":"it shouldn\u0027t return 404, it will create a container.","commit_id":"0078149bcec7864a5a62078b37de5a827ec0eb23"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"8de5a192ffca924eb96f6e9efed280020e3c0c3a","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        self.expected_success([201, 202], resp.status)"},{"line_number":39,"context_line":"        return resp, body"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    create_container \u003d update_container"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def delete_container(self, container_name):"},{"line_number":44,"context_line":"        \"\"\"Deletes the container (if it\u0027s empty).\"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"7f515b1d_789abf6e","line":41,"range":{"start_line":41,"start_character":4,"end_line":41,"end_character":39},"updated":"2017-10-04 23:22:46.000000000","message":"This is fine, but I think we need a bit of docs to explain this.","commit_id":"0078149bcec7864a5a62078b37de5a827ec0eb23"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"51a9aa5ec944f1987c7cf1bf32c1df48cdb2379a","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        self.expected_success([201, 202], resp.status)"},{"line_number":39,"context_line":"        return resp, body"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    create_container \u003d update_container"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def delete_container(self, container_name):"},{"line_number":44,"context_line":"        \"\"\"Deletes the container (if it\u0027s empty).\"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"7f515b1d_1abf22fc","line":41,"range":{"start_line":41,"start_character":4,"end_line":41,"end_character":39},"in_reply_to":"7f515b1d_789abf6e","updated":"2017-10-05 17:31:06.000000000","message":"because of \"NOTE: andreaf wants\", just kidding :)","commit_id":"0078149bcec7864a5a62078b37de5a827ec0eb23"}]}
