)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"c99a94d733294a1406a684d0ea95d8786444d68e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"b95681ca_6230d24f","updated":"2022-09-06 10:50:45.000000000","message":"Thank you, Rafael! Added some comments (e.g. typos and missing check_mode checks) and some questions below.\n\nVoted -1 simply to mark this patch as \"requires more work\".","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"a002a3c62b492939e5cb1fa515e93b9e39e4c7d6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"513970ad_ec3c04cb","updated":"2022-08-25 12:58:33.000000000","message":"recheck testing sdk fix","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"bbf9e5d3d1c9d20e3c7d43734e81cb63c8f79c3d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"9a52538e_370b9704","updated":"2022-10-06 10:18:10.000000000","message":"Latest patchset reworks RETURN docstring and replaced aliases with real attribute names.","commit_id":"07f91f820ee376943d2c0d6e1288789ae8160220"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"f53d429d114fc21404cdf6f84a4e322f5a0bbcd5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"0ea85ad3_94df6324","updated":"2022-10-06 10:24:55.000000000","message":"Thanks for the updates, Rafael!\n\nCheck mode and diff functionality still need some work for updates.\n\nVoted -1 simply to mark this patch as \"requires more work\".","commit_id":"07f91f820ee376943d2c0d6e1288789ae8160220"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"486cdd81101c0a5d2cd23ebdf08a037e233d9311","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"2ca398ae_54302799","updated":"2022-10-20 08:58:15.000000000","message":"Voted \u0027-1\u0027 because we need a discussion about that project parameter first..","commit_id":"a2adb5ee7b34044e7ab1aafb8a4652647196208b"}],"ci/roles/volume/tasks/main.yml":[{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"c99a94d733294a1406a684d0ea95d8786444d68e","unresolved":true,"context_lines":[{"line_number":4,"context_line":"     cloud: \"{{ cloud }}\""},{"line_number":5,"context_line":"     state: present"},{"line_number":6,"context_line":"     size: 1"},{"line_number":7,"context_line":"     display_name: ansible_volume"},{"line_number":8,"context_line":"     display_description: Test volume"},{"line_number":9,"context_line":"  register: vol"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"c4b9d607_584fb795","line":7,"updated":"2022-09-06 10:50:45.000000000","message":"want to change those attributes to proper names \u0027name\u0027, \u0027description\u0027 etc?","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"fd9e05606ddcedf8395caaf1134330d7d6850402","unresolved":true,"context_lines":[{"line_number":4,"context_line":"     cloud: \"{{ cloud }}\""},{"line_number":5,"context_line":"     state: present"},{"line_number":6,"context_line":"     size: 1"},{"line_number":7,"context_line":"     display_name: ansible_volume"},{"line_number":8,"context_line":"     display_description: Test volume"},{"line_number":9,"context_line":"  register: vol"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"a22f846c_4910b09a","line":7,"in_reply_to":"4fb3692e_4e890c67","updated":"2022-10-06 09:58:37.000000000","message":"Not really done, is it?\n\nReason for using non-alias attribute names is that we might want to drop some aliases in future revisions, hence better use the proper names here for users that take ci tests as examples on how stuff works.","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"c1f3ab55be8a88428b29f5a67768b2ad5b1304c8","unresolved":false,"context_lines":[{"line_number":4,"context_line":"     cloud: \"{{ cloud }}\""},{"line_number":5,"context_line":"     state: present"},{"line_number":6,"context_line":"     size: 1"},{"line_number":7,"context_line":"     display_name: ansible_volume"},{"line_number":8,"context_line":"     display_description: Test volume"},{"line_number":9,"context_line":"  register: vol"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"b6e4fcf3_cd980b2d","line":7,"in_reply_to":"a22f846c_4910b09a","updated":"2022-10-06 10:18:43.000000000","message":"Done","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"9e892bedd6f064348700df91ce97f42a40052b96","unresolved":false,"context_lines":[{"line_number":4,"context_line":"     cloud: \"{{ cloud }}\""},{"line_number":5,"context_line":"     state: present"},{"line_number":6,"context_line":"     size: 1"},{"line_number":7,"context_line":"     display_name: ansible_volume"},{"line_number":8,"context_line":"     display_description: Test volume"},{"line_number":9,"context_line":"  register: vol"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"4fb3692e_4e890c67","line":7,"in_reply_to":"c4b9d607_584fb795","updated":"2022-10-06 02:12:08.000000000","message":"Done","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"36b0331e9cfc1bd7cbce8927590c09498e8bbb90","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Create volume"},{"line_number":3,"context_line":"  openstack.cloud.volume:"},{"line_number":4,"context_line":"     cloud: \"{{ cloud }}\""}],"source_content_type":"text/x-yaml","patch_set":13,"id":"a7fc2c35_73bd8175","line":1,"updated":"2022-10-06 10:28:10.000000000","message":"Please add \u0027wait: true\u0027 to volume creation, updates and deletion: (a) We want to assert completed actions (not an intermediate state) and (b) we want to increase code coverage of the volume module.","commit_id":"07f91f820ee376943d2c0d6e1288789ae8160220"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"dc47dcf739ad9a86ea44b7f69d6c6c68592c82de","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Create volume"},{"line_number":3,"context_line":"  openstack.cloud.volume:"},{"line_number":4,"context_line":"     cloud: \"{{ cloud }}\""}],"source_content_type":"text/x-yaml","patch_set":13,"id":"b04de94f_dd157360","line":1,"in_reply_to":"a7fc2c35_73bd8175","updated":"2022-10-11 01:49:49.000000000","message":"Wait defaults to true. I can add it explicitly if that would be better.","commit_id":"07f91f820ee376943d2c0d6e1288789ae8160220"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"8e530fa284d8019512e92bdd9cb08ab1ac2acb54","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Create volume"},{"line_number":3,"context_line":"  openstack.cloud.volume:"},{"line_number":4,"context_line":"     cloud: \"{{ cloud }}\""}],"source_content_type":"text/x-yaml","patch_set":13,"id":"91a2c79f_7f8b1210","line":1,"in_reply_to":"b04de94f_dd157360","updated":"2022-10-20 08:06:13.000000000","message":"why did i though wait would default to false? \n\nnevermind, your code is correct.","commit_id":"07f91f820ee376943d2c0d6e1288789ae8160220"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"486cdd81101c0a5d2cd23ebdf08a037e233d9311","unresolved":true,"context_lines":[{"line_number":98,"context_line":"    - ansible_volume2"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"- name: Create a test image file"},{"line_number":101,"context_line":"  shell: mktemp"},{"line_number":102,"context_line":"  register: tmp_file"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"- name: Fill test image file to 1MB"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"d7553793_c96dd965","line":101,"updated":"2022-10-20 08:58:15.000000000","message":"Would be nice to replace mktemp with tempfile module, truncate with filesize module and then use Ansible\u0027s always statement to delete the temporary file even in case of an exception/error/task failure.\n\nBut we would need to install additional collections in ci before we could use those modules. So i wont block on this one, we can do it in a follow up patch.","commit_id":"a2adb5ee7b34044e7ab1aafb8a4652647196208b"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"6cba5365022d66f48c61bf152603dc6a089ce971","unresolved":true,"context_lines":[{"line_number":98,"context_line":"    - ansible_volume2"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"- name: Create a test image file"},{"line_number":101,"context_line":"  shell: mktemp"},{"line_number":102,"context_line":"  register: tmp_file"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"- name: Fill test image file to 1MB"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"ad2cc7ac_02d2ac9f","line":101,"in_reply_to":"0da86282_299f2cec","updated":"2022-10-20 09:36:55.000000000","message":"Here is an example on how we could implement this block/tempfile/filesize/always logic: https://github.com/JM1/ansible-role-jm1-virtual-pkg/blob/master/tasks/setup-Debian.yml\n\n(We would have to update the example code though, e.g. use fqcn etc.)","commit_id":"a2adb5ee7b34044e7ab1aafb8a4652647196208b"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"bb631250f1ba5d3e35bad056b2e39a03c981d53d","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    - ansible_volume2"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"- name: Create a test image file"},{"line_number":101,"context_line":"  shell: mktemp"},{"line_number":102,"context_line":"  register: tmp_file"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"- name: Fill test image file to 1MB"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"63134251_9be9114e","line":101,"in_reply_to":"0e5b4a52_a6f4562a","updated":"2022-10-26 18:21:07.000000000","message":"Here it is: https://review.opendev.org/c/openstack/ansible-collections-openstack/+/862741","commit_id":"a2adb5ee7b34044e7ab1aafb8a4652647196208b"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"694a13d2d68b061af54358c0fcd7a14d8461a019","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    - ansible_volume2"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"- name: Create a test image file"},{"line_number":101,"context_line":"  shell: mktemp"},{"line_number":102,"context_line":"  register: tmp_file"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"- name: Fill test image file to 1MB"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"0e5b4a52_a6f4562a","line":101,"in_reply_to":"ad2cc7ac_02d2ac9f","updated":"2022-10-26 05:51:51.000000000","message":"let\u0027s do this in a followup","commit_id":"a2adb5ee7b34044e7ab1aafb8a4652647196208b"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"7642458a841349b9e76baec3c00db1ca79dd561a","unresolved":true,"context_lines":[{"line_number":98,"context_line":"    - ansible_volume2"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"- name: Create a test image file"},{"line_number":101,"context_line":"  shell: mktemp"},{"line_number":102,"context_line":"  register: tmp_file"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"- name: Fill test image file to 1MB"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"0da86282_299f2cec","line":101,"in_reply_to":"d7553793_c96dd965","updated":"2022-10-20 09:35:24.000000000","message":"We could rebase this patch on top of [1] and then we would have all necessary modules available.\n\n[1] https://review.opendev.org/c/openstack/ansible-collections-openstack/+/861955","commit_id":"a2adb5ee7b34044e7ab1aafb8a4652647196208b"}],"plugins/modules/volume.py":[{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"c99a94d733294a1406a684d0ea95d8786444d68e","unresolved":true,"context_lines":[{"line_number":11,"context_line":"author: OpenStack Ansible SIG"},{"line_number":12,"context_line":"description:"},{"line_number":13,"context_line":"   - Create or Remove cinder block storage volumes"},{"line_number":14,"context_line":"options:"},{"line_number":15,"context_line":"   availability_zone:"},{"line_number":16,"context_line":"     description:"},{"line_number":17,"context_line":"       - The availability zone."}],"source_content_type":"text/x-python","patch_set":6,"id":"9f031d2e_89cb688a","line":14,"updated":"2022-09-06 10:50:45.000000000","message":"sorting those would make it easier to review","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"9cddbfa4feadde222c7aa5def93eebdaf4fdc54d","unresolved":false,"context_lines":[{"line_number":11,"context_line":"author: OpenStack Ansible SIG"},{"line_number":12,"context_line":"description:"},{"line_number":13,"context_line":"   - Create or Remove cinder block storage volumes"},{"line_number":14,"context_line":"options:"},{"line_number":15,"context_line":"   availability_zone:"},{"line_number":16,"context_line":"     description:"},{"line_number":17,"context_line":"       - The availability zone."}],"source_content_type":"text/x-python","patch_set":6,"id":"3b6e2577_e044cd9e","line":14,"in_reply_to":"9f031d2e_89cb688a","updated":"2022-09-06 16:03:17.000000000","message":"Done","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"c99a94d733294a1406a684d0ea95d8786444d68e","unresolved":true,"context_lines":[{"line_number":21,"context_line":"        - Size of volume in GB. This parameter is required when the"},{"line_number":22,"context_line":"          I(state) parameter is \u0027present\u0027."},{"line_number":23,"context_line":"     type: int"},{"line_number":24,"context_line":"   display_name:"},{"line_number":25,"context_line":"     description:"},{"line_number":26,"context_line":"        - Name of volume"},{"line_number":27,"context_line":"     required: true"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ae50794_043d844d","line":24,"updated":"2022-09-06 10:50:45.000000000","message":"In other modules we put the old/deprecated/non-sdk-ish attribute names into aliases and use their proper sdk names as option names. Why not for discplay_name, display_description and bootable?","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"9e892bedd6f064348700df91ce97f42a40052b96","unresolved":false,"context_lines":[{"line_number":21,"context_line":"        - Size of volume in GB. This parameter is required when the"},{"line_number":22,"context_line":"          I(state) parameter is \u0027present\u0027."},{"line_number":23,"context_line":"     type: int"},{"line_number":24,"context_line":"   display_name:"},{"line_number":25,"context_line":"     description:"},{"line_number":26,"context_line":"        - Name of volume"},{"line_number":27,"context_line":"     required: true"}],"source_content_type":"text/x-python","patch_set":6,"id":"74d805d2_1e2f39fa","line":24,"in_reply_to":"7ae50794_043d844d","updated":"2022-10-06 02:12:08.000000000","message":"Done","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"c99a94d733294a1406a684d0ea95d8786444d68e","unresolved":true,"context_lines":[{"line_number":40,"context_line":"     description:"},{"line_number":41,"context_line":"       - Image name or id for boot from volume"},{"line_number":42,"context_line":"     type: str"},{"line_number":43,"context_line":"   snapshot_id:"},{"line_number":44,"context_line":"     description:"},{"line_number":45,"context_line":"       - Volume snapshot id to create from"},{"line_number":46,"context_line":"     type: str"}],"source_content_type":"text/x-python","patch_set":6,"id":"944adf01_264ee87e","line":43,"updated":"2022-09-06 10:50:45.000000000","message":"rfe: we accept a volume by name or id, so should snapshot","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"9cddbfa4feadde222c7aa5def93eebdaf4fdc54d","unresolved":false,"context_lines":[{"line_number":40,"context_line":"     description:"},{"line_number":41,"context_line":"       - Image name or id for boot from volume"},{"line_number":42,"context_line":"     type: str"},{"line_number":43,"context_line":"   snapshot_id:"},{"line_number":44,"context_line":"     description:"},{"line_number":45,"context_line":"       - Volume snapshot id to create from"},{"line_number":46,"context_line":"     type: str"}],"source_content_type":"text/x-python","patch_set":6,"id":"b0cc1ff5_32395cce","line":43,"in_reply_to":"944adf01_264ee87e","updated":"2022-09-06 16:03:17.000000000","message":"Done","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"c99a94d733294a1406a684d0ea95d8786444d68e","unresolved":true,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"EXAMPLES \u003d \u0027\u0027\u0027"},{"line_number":84,"context_line":"# Creates a new volume"},{"line_number":85,"context_line":"- name: create a volume"},{"line_number":86,"context_line":"  hosts: localhost"},{"line_number":87,"context_line":"  tasks:"},{"line_number":88,"context_line":"  - name: create 40g test volume"}],"source_content_type":"text/x-python","patch_set":6,"id":"247df16c_bf338f83","line":85,"updated":"2022-09-06 10:50:45.000000000","message":"nit: our examples and Ansible\u0027s examples (e.g. [1]) dont define a playbooks. instead they simply define a list of tasks.\n\n[1] https://docs.ansible.com/ansible/latest/collections/ansible/builtin/slurp_module.html","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"9cddbfa4feadde222c7aa5def93eebdaf4fdc54d","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"EXAMPLES \u003d \u0027\u0027\u0027"},{"line_number":84,"context_line":"# Creates a new volume"},{"line_number":85,"context_line":"- name: create a volume"},{"line_number":86,"context_line":"  hosts: localhost"},{"line_number":87,"context_line":"  tasks:"},{"line_number":88,"context_line":"  - name: create 40g test volume"}],"source_content_type":"text/x-python","patch_set":6,"id":"c9dfa56c_cef4f357","line":85,"in_reply_to":"247df16c_bf338f83","updated":"2022-09-06 16:03:17.000000000","message":"Done","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"c99a94d733294a1406a684d0ea95d8786444d68e","unresolved":true,"context_lines":[{"line_number":91,"context_line":"      cloud: mordred"},{"line_number":92,"context_line":"      availability_zone: az2"},{"line_number":93,"context_line":"      size: 40"},{"line_number":94,"context_line":"      display_name: test_volume"},{"line_number":95,"context_line":"      scheduler_hints:"},{"line_number":96,"context_line":"        same_host: 243e8d3c-8f47-4a61-93d6-7215c344b0c0"},{"line_number":97,"context_line":"\u0027\u0027\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"2efe5be3_cbef5c38","line":94,"updated":"2022-09-06 10:50:45.000000000","message":"want to change to proper module attribute name \u0027name\u0027?","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"9cddbfa4feadde222c7aa5def93eebdaf4fdc54d","unresolved":false,"context_lines":[{"line_number":91,"context_line":"      cloud: mordred"},{"line_number":92,"context_line":"      availability_zone: az2"},{"line_number":93,"context_line":"      size: 40"},{"line_number":94,"context_line":"      display_name: test_volume"},{"line_number":95,"context_line":"      scheduler_hints:"},{"line_number":96,"context_line":"        same_host: 243e8d3c-8f47-4a61-93d6-7215c344b0c0"},{"line_number":97,"context_line":"\u0027\u0027\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"2354e3c0_fc4afa48","line":94,"in_reply_to":"2efe5be3_cbef5c38","updated":"2022-09-06 16:03:17.000000000","message":"Done","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"c99a94d733294a1406a684d0ea95d8786444d68e","unresolved":true,"context_lines":[{"line_number":96,"context_line":"        same_host: 243e8d3c-8f47-4a61-93d6-7215c344b0c0"},{"line_number":97,"context_line":"\u0027\u0027\u0027"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"RETURNS \u003d \u0027\u0027\u0027"},{"line_number":100,"context_line":"id:"},{"line_number":101,"context_line":"  description: Cinder\u0027s unique ID for this volume"},{"line_number":102,"context_line":"  returned: always"}],"source_content_type":"text/x-python","patch_set":6,"id":"a63d0e0d_b452d9f5","line":99,"updated":"2022-09-06 10:50:45.000000000","message":"RETURNS \u003d\u003e RETURN (without S)","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"9e892bedd6f064348700df91ce97f42a40052b96","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        same_host: 243e8d3c-8f47-4a61-93d6-7215c344b0c0"},{"line_number":97,"context_line":"\u0027\u0027\u0027"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"RETURNS \u003d \u0027\u0027\u0027"},{"line_number":100,"context_line":"id:"},{"line_number":101,"context_line":"  description: Cinder\u0027s unique ID for this volume"},{"line_number":102,"context_line":"  returned: always"}],"source_content_type":"text/x-python","patch_set":6,"id":"524a3e88_6b81e774","line":99,"in_reply_to":"a63d0e0d_b452d9f5","updated":"2022-10-06 02:12:08.000000000","message":"Done","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"c99a94d733294a1406a684d0ea95d8786444d68e","unresolved":true,"context_lines":[{"line_number":97,"context_line":"\u0027\u0027\u0027"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"RETURNS \u003d \u0027\u0027\u0027"},{"line_number":100,"context_line":"id:"},{"line_number":101,"context_line":"  description: Cinder\u0027s unique ID for this volume"},{"line_number":102,"context_line":"  returned: always"},{"line_number":103,"context_line":"  type: str"}],"source_content_type":"text/x-python","patch_set":6,"id":"5319030f_6e25f697","line":100,"updated":"2022-09-06 10:50:45.000000000","message":"not returned and redundant because of volume.id, so please drop from RETURNS","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"9e892bedd6f064348700df91ce97f42a40052b96","unresolved":false,"context_lines":[{"line_number":97,"context_line":"\u0027\u0027\u0027"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"RETURNS \u003d \u0027\u0027\u0027"},{"line_number":100,"context_line":"id:"},{"line_number":101,"context_line":"  description: Cinder\u0027s unique ID for this volume"},{"line_number":102,"context_line":"  returned: always"},{"line_number":103,"context_line":"  type: str"}],"source_content_type":"text/x-python","patch_set":6,"id":"de68e85a_b6273500","line":100,"in_reply_to":"5319030f_6e25f697","updated":"2022-10-06 02:12:08.000000000","message":"Done","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"c99a94d733294a1406a684d0ea95d8786444d68e","unresolved":true,"context_lines":[{"line_number":107,"context_line":"  description: Cinder\u0027s representation of the volume object"},{"line_number":108,"context_line":"  returned: always"},{"line_number":109,"context_line":"  type: dict"},{"line_number":110,"context_line":"  contains:"},{"line_number":111,"context_line":"    attachments:"},{"line_number":112,"context_line":"      description: \u0027Instance attachment information.  If this volume is attached to a"},{"line_number":113,"context_line":"        server instance, the attachments list includes the UUID of the attached server,"}],"source_content_type":"text/x-python","patch_set":6,"id":"39d31d16_e41a81d2","line":110,"updated":"2022-09-06 10:50:45.000000000","message":"* extended_replication_status\n* replication_driver_data\n* scheduler_hints\n\nmissing?","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"c99a94d733294a1406a684d0ea95d8786444d68e","unresolved":true,"context_lines":[{"line_number":107,"context_line":"  description: Cinder\u0027s representation of the volume object"},{"line_number":108,"context_line":"  returned: always"},{"line_number":109,"context_line":"  type: dict"},{"line_number":110,"context_line":"  contains:"},{"line_number":111,"context_line":"    attachments:"},{"line_number":112,"context_line":"      description: \u0027Instance attachment information.  If this volume is attached to a"},{"line_number":113,"context_line":"        server instance, the attachments list includes the UUID of the attached server,"}],"source_content_type":"text/x-python","patch_set":6,"id":"b309775d_e4ea049f","line":110,"updated":"2022-09-06 10:50:45.000000000","message":"Sorting this would make it easier to review","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"9e892bedd6f064348700df91ce97f42a40052b96","unresolved":false,"context_lines":[{"line_number":107,"context_line":"  description: Cinder\u0027s representation of the volume object"},{"line_number":108,"context_line":"  returned: always"},{"line_number":109,"context_line":"  type: dict"},{"line_number":110,"context_line":"  contains:"},{"line_number":111,"context_line":"    attachments:"},{"line_number":112,"context_line":"      description: \u0027Instance attachment information.  If this volume is attached to a"},{"line_number":113,"context_line":"        server instance, the attachments list includes the UUID of the attached server,"}],"source_content_type":"text/x-python","patch_set":6,"id":"ab47f5bc_68772190","line":110,"in_reply_to":"39d31d16_e41a81d2","updated":"2022-10-06 02:12:08.000000000","message":"Done","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"9e892bedd6f064348700df91ce97f42a40052b96","unresolved":false,"context_lines":[{"line_number":107,"context_line":"  description: Cinder\u0027s representation of the volume object"},{"line_number":108,"context_line":"  returned: always"},{"line_number":109,"context_line":"  type: dict"},{"line_number":110,"context_line":"  contains:"},{"line_number":111,"context_line":"    attachments:"},{"line_number":112,"context_line":"      description: \u0027Instance attachment information.  If this volume is attached to a"},{"line_number":113,"context_line":"        server instance, the attachments list includes the UUID of the attached server,"}],"source_content_type":"text/x-python","patch_set":6,"id":"31c31a0c_51e24308","line":110,"in_reply_to":"b309775d_e4ea049f","updated":"2022-10-06 02:12:08.000000000","message":"Done","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"c99a94d733294a1406a684d0ea95d8786444d68e","unresolved":true,"context_lines":[{"line_number":117,"context_line":"    availability_zone:"},{"line_number":118,"context_line":"      description: The name of the availability zone."},{"line_number":119,"context_line":"      type: str"},{"line_number":120,"context_line":"    is_bootable:"},{"line_number":121,"context_line":"      description: Enables or disables the bootable attribute. You can boot an instance"},{"line_number":122,"context_line":"        from a bootable volume."},{"line_number":123,"context_line":"      type: str"}],"source_content_type":"text/x-python","patch_set":6,"id":"2a26858c_b0f3194c","line":120,"updated":"2022-09-06 10:50:45.000000000","message":"nit: i guess this was meant to be put above is_encrypted?","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"9cddbfa4feadde222c7aa5def93eebdaf4fdc54d","unresolved":false,"context_lines":[{"line_number":117,"context_line":"    availability_zone:"},{"line_number":118,"context_line":"      description: The name of the availability zone."},{"line_number":119,"context_line":"      type: str"},{"line_number":120,"context_line":"    is_bootable:"},{"line_number":121,"context_line":"      description: Enables or disables the bootable attribute. You can boot an instance"},{"line_number":122,"context_line":"        from a bootable volume."},{"line_number":123,"context_line":"      type: str"}],"source_content_type":"text/x-python","patch_set":6,"id":"1825cd6e_8e428c76","line":120,"in_reply_to":"2a26858c_b0f3194c","updated":"2022-09-06 16:03:17.000000000","message":"Done","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"c99a94d733294a1406a684d0ea95d8786444d68e","unresolved":true,"context_lines":[{"line_number":206,"context_line":""},{"line_number":207,"context_line":"class VolumeModule(OpenStackModule):"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    argument_spec \u003d dict("},{"line_number":210,"context_line":"        availability_zone\u003ddict(),"},{"line_number":211,"context_line":"        description\u003ddict(aliases\u003d[\u0027display_description\u0027]),"},{"line_number":212,"context_line":"        name\u003ddict(required\u003dTrue, aliases\u003d[\u0027display_name\u0027]),"}],"source_content_type":"text/x-python","patch_set":6,"id":"a2fb93d5_c79d1ba7","line":209,"updated":"2022-09-06 10:50:45.000000000","message":"sorting this would make it easier to review","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"9e892bedd6f064348700df91ce97f42a40052b96","unresolved":false,"context_lines":[{"line_number":206,"context_line":""},{"line_number":207,"context_line":"class VolumeModule(OpenStackModule):"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    argument_spec \u003d dict("},{"line_number":210,"context_line":"        availability_zone\u003ddict(),"},{"line_number":211,"context_line":"        description\u003ddict(aliases\u003d[\u0027display_description\u0027]),"},{"line_number":212,"context_line":"        name\u003ddict(required\u003dTrue, aliases\u003d[\u0027display_name\u0027]),"}],"source_content_type":"text/x-python","patch_set":6,"id":"d95d977e_3d26c481","line":209,"in_reply_to":"a2fb93d5_c79d1ba7","updated":"2022-10-06 02:12:08.000000000","message":"Done","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"c99a94d733294a1406a684d0ea95d8786444d68e","unresolved":true,"context_lines":[{"line_number":211,"context_line":"        description\u003ddict(aliases\u003d[\u0027display_description\u0027]),"},{"line_number":212,"context_line":"        name\u003ddict(required\u003dTrue, aliases\u003d[\u0027display_name\u0027]),"},{"line_number":213,"context_line":"        image\u003ddict(),"},{"line_number":214,"context_line":"        bootable\u003ddict(type\u003d\u0027bool\u0027, default\u003dFalse, aliases\u003d[\u0027is_bootable\u0027]),"},{"line_number":215,"context_line":"        metadata\u003ddict(type\u003d\u0027dict\u0027),"},{"line_number":216,"context_line":"        project\u003ddict(),"},{"line_number":217,"context_line":"        scheduler_hints\u003ddict(type\u003d\u0027dict\u0027),"}],"source_content_type":"text/x-python","patch_set":6,"id":"cadbaa7b_30075bac","line":214,"updated":"2022-09-06 10:50:45.000000000","message":"switch name and alias to be consistent?","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"9e892bedd6f064348700df91ce97f42a40052b96","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        description\u003ddict(aliases\u003d[\u0027display_description\u0027]),"},{"line_number":212,"context_line":"        name\u003ddict(required\u003dTrue, aliases\u003d[\u0027display_name\u0027]),"},{"line_number":213,"context_line":"        image\u003ddict(),"},{"line_number":214,"context_line":"        bootable\u003ddict(type\u003d\u0027bool\u0027, default\u003dFalse, aliases\u003d[\u0027is_bootable\u0027]),"},{"line_number":215,"context_line":"        metadata\u003ddict(type\u003d\u0027dict\u0027),"},{"line_number":216,"context_line":"        project\u003ddict(),"},{"line_number":217,"context_line":"        scheduler_hints\u003ddict(type\u003d\u0027dict\u0027),"}],"source_content_type":"text/x-python","patch_set":6,"id":"5c8213ac_8ffedbc3","line":214,"in_reply_to":"cadbaa7b_30075bac","updated":"2022-10-06 02:12:08.000000000","message":"Done","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"c99a94d733294a1406a684d0ea95d8786444d68e","unresolved":true,"context_lines":[{"line_number":225,"context_line":"    module_kwargs \u003d dict("},{"line_number":226,"context_line":"        supports_check_mode\u003dTrue,"},{"line_number":227,"context_line":"        mutually_exclusive\u003d["},{"line_number":228,"context_line":"            [\u0027image\u0027, \u0027snapshot_id\u0027, \u0027volume\u0027],"},{"line_number":229,"context_line":"        ],"},{"line_number":230,"context_line":"        required_if\u003d["},{"line_number":231,"context_line":"            [\u0027state\u0027, \u0027present\u0027, [\u0027size\u0027]],"}],"source_content_type":"text/x-python","patch_set":6,"id":"f1e77322_a58b6c84","line":228,"updated":"2022-09-06 10:50:45.000000000","message":"Want to add some notes to each module parameter description above that those are mutually exclusive?","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"9e892bedd6f064348700df91ce97f42a40052b96","unresolved":false,"context_lines":[{"line_number":225,"context_line":"    module_kwargs \u003d dict("},{"line_number":226,"context_line":"        supports_check_mode\u003dTrue,"},{"line_number":227,"context_line":"        mutually_exclusive\u003d["},{"line_number":228,"context_line":"            [\u0027image\u0027, \u0027snapshot_id\u0027, \u0027volume\u0027],"},{"line_number":229,"context_line":"        ],"},{"line_number":230,"context_line":"        required_if\u003d["},{"line_number":231,"context_line":"            [\u0027state\u0027, \u0027present\u0027, [\u0027size\u0027]],"}],"source_content_type":"text/x-python","patch_set":6,"id":"9205c712_42ecce69","line":228,"in_reply_to":"f1e77322_a58b6c84","updated":"2022-10-06 02:12:08.000000000","message":"Done","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"c99a94d733294a1406a684d0ea95d8786444d68e","unresolved":true,"context_lines":[{"line_number":269,"context_line":"                  if self.params[k] is not None}"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        if self.params[\u0027image\u0027]:"},{"line_number":272,"context_line":"            image \u003d self.conn.image.find_image(self.params[\u0027image\u0027],"},{"line_number":273,"context_line":"                                               ignore_missing\u003dFalse)"},{"line_number":274,"context_line":"            kwargs[\u0027image_id\u0027] \u003d image.id"},{"line_number":275,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"07089de0_9c1f7890","line":272,"updated":"2022-09-06 10:50:45.000000000","message":"should we put project_id when finding images here as well? maybe not?","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"9cddbfa4feadde222c7aa5def93eebdaf4fdc54d","unresolved":true,"context_lines":[{"line_number":269,"context_line":"                  if self.params[k] is not None}"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        if self.params[\u0027image\u0027]:"},{"line_number":272,"context_line":"            image \u003d self.conn.image.find_image(self.params[\u0027image\u0027],"},{"line_number":273,"context_line":"                                               ignore_missing\u003dFalse)"},{"line_number":274,"context_line":"            kwargs[\u0027image_id\u0027] \u003d image.id"},{"line_number":275,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"931ce806_8e5e986f","line":272,"in_reply_to":"07089de0_9c1f7890","updated":"2022-09-06 16:03:17.000000000","message":"For images, I think this __might__ have a bad interaction with shared images. I\u0027ll test this.","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"fd9e05606ddcedf8395caaf1134330d7d6850402","unresolved":true,"context_lines":[{"line_number":269,"context_line":"                  if self.params[k] is not None}"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        if self.params[\u0027image\u0027]:"},{"line_number":272,"context_line":"            image \u003d self.conn.image.find_image(self.params[\u0027image\u0027],"},{"line_number":273,"context_line":"                                               ignore_missing\u003dFalse)"},{"line_number":274,"context_line":"            kwargs[\u0027image_id\u0027] \u003d image.id"},{"line_number":275,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ff2dd5c7_9c951d38","line":272,"in_reply_to":"7ea2d977_a91b9482","updated":"2022-10-06 09:58:37.000000000","message":"What was the result of your tests?","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"9e892bedd6f064348700df91ce97f42a40052b96","unresolved":false,"context_lines":[{"line_number":269,"context_line":"                  if self.params[k] is not None}"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        if self.params[\u0027image\u0027]:"},{"line_number":272,"context_line":"            image \u003d self.conn.image.find_image(self.params[\u0027image\u0027],"},{"line_number":273,"context_line":"                                               ignore_missing\u003dFalse)"},{"line_number":274,"context_line":"            kwargs[\u0027image_id\u0027] \u003d image.id"},{"line_number":275,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7ea2d977_a91b9482","line":272,"in_reply_to":"931ce806_8e5e986f","updated":"2022-10-06 02:12:08.000000000","message":"Done","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"8e530fa284d8019512e92bdd9cb08ab1ac2acb54","unresolved":false,"context_lines":[{"line_number":269,"context_line":"                  if self.params[k] is not None}"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        if self.params[\u0027image\u0027]:"},{"line_number":272,"context_line":"            image \u003d self.conn.image.find_image(self.params[\u0027image\u0027],"},{"line_number":273,"context_line":"                                               ignore_missing\u003dFalse)"},{"line_number":274,"context_line":"            kwargs[\u0027image_id\u0027] \u003d image.id"},{"line_number":275,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"11f64063_fdb91839","line":272,"in_reply_to":"e6937d8b_3964f934","updated":"2022-10-20 08:06:13.000000000","message":"Oh, nice.. 😬 Thanks for discovering and reporting this bug!\n\nfind_image() does not support a project_id parameter anyway, so let me mark this as resolved.","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"dc47dcf739ad9a86ea44b7f69d6c6c68592c82de","unresolved":true,"context_lines":[{"line_number":269,"context_line":"                  if self.params[k] is not None}"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        if self.params[\u0027image\u0027]:"},{"line_number":272,"context_line":"            image \u003d self.conn.image.find_image(self.params[\u0027image\u0027],"},{"line_number":273,"context_line":"                                               ignore_missing\u003dFalse)"},{"line_number":274,"context_line":"            kwargs[\u0027image_id\u0027] \u003d image.id"},{"line_number":275,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"e6937d8b_3964f934","line":272,"in_reply_to":"ff2dd5c7_9c951d38","updated":"2022-10-11 01:49:49.000000000","message":"I was unable to test this further since setting the project in this module resulted in an error. This points to a bug in the sdk [1].\n\n[1] https://storyboard.openstack.org/#!/story/2010359","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"c99a94d733294a1406a684d0ea95d8786444d68e","unresolved":true,"context_lines":[{"line_number":274,"context_line":"            kwargs[\u0027image_id\u0027] \u003d image.id"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"        if self.params[\u0027volume\u0027]:"},{"line_number":277,"context_line":"            volume \u003d self.conn.block_storage.find_volume(self.params[\u0027volume\u0027],"},{"line_number":278,"context_line":"                                                         ignore_missing\u003dFalse)"},{"line_number":279,"context_line":"            kwargs[\u0027source_volid\u0027] \u003d volume.id"},{"line_number":280,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"41dd0451_4ca2470d","line":277,"updated":"2022-09-06 10:50:45.000000000","message":"should we put project_id when finding volumes here as well? maybe not?","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"9cddbfa4feadde222c7aa5def93eebdaf4fdc54d","unresolved":false,"context_lines":[{"line_number":274,"context_line":"            kwargs[\u0027image_id\u0027] \u003d image.id"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"        if self.params[\u0027volume\u0027]:"},{"line_number":277,"context_line":"            volume \u003d self.conn.block_storage.find_volume(self.params[\u0027volume\u0027],"},{"line_number":278,"context_line":"                                                         ignore_missing\u003dFalse)"},{"line_number":279,"context_line":"            kwargs[\u0027source_volid\u0027] \u003d volume.id"},{"line_number":280,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"e8323fa5_3cc9c58b","line":277,"in_reply_to":"41dd0451_4ca2470d","updated":"2022-09-06 16:03:17.000000000","message":"For volumes this makes sense","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"c99a94d733294a1406a684d0ea95d8786444d68e","unresolved":true,"context_lines":[{"line_number":279,"context_line":"            kwargs[\u0027source_volid\u0027] \u003d volume.id"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"        if self.params[\u0027project\u0027]:"},{"line_number":282,"context_line":"            project \u003d self.conn.identity.find_project(self.parsams[\u0027project\u0027],"},{"line_number":283,"context_line":"                                                      ignore_misssing\u003dFalse)"},{"line_number":284,"context_line":"            kwargs[\u0027project_id\u0027] \u003d project.id"},{"line_number":285,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7ff40a8c_e9d0eee5","line":282,"updated":"2022-09-06 10:50:45.000000000","message":"parsams? ;)","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"9cddbfa4feadde222c7aa5def93eebdaf4fdc54d","unresolved":false,"context_lines":[{"line_number":279,"context_line":"            kwargs[\u0027source_volid\u0027] \u003d volume.id"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"        if self.params[\u0027project\u0027]:"},{"line_number":282,"context_line":"            project \u003d self.conn.identity.find_project(self.parsams[\u0027project\u0027],"},{"line_number":283,"context_line":"                                                      ignore_misssing\u003dFalse)"},{"line_number":284,"context_line":"            kwargs[\u0027project_id\u0027] \u003d project.id"},{"line_number":285,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"c2b9ef22_709525ad","line":282,"in_reply_to":"7ff40a8c_e9d0eee5","updated":"2022-09-06 16:03:17.000000000","message":"oops, done","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"c99a94d733294a1406a684d0ea95d8786444d68e","unresolved":true,"context_lines":[{"line_number":280,"context_line":""},{"line_number":281,"context_line":"        if self.params[\u0027project\u0027]:"},{"line_number":282,"context_line":"            project \u003d self.conn.identity.find_project(self.parsams[\u0027project\u0027],"},{"line_number":283,"context_line":"                                                      ignore_misssing\u003dFalse)"},{"line_number":284,"context_line":"            kwargs[\u0027project_id\u0027] \u003d project.id"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        return kwargs"}],"source_content_type":"text/x-python","patch_set":6,"id":"3913c2cc_5de393e3","line":283,"updated":"2022-09-06 10:50:45.000000000","message":"Please add a test which covers this branch. Both to lines have typos and those are supposed to be caught by ci","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"9e892bedd6f064348700df91ce97f42a40052b96","unresolved":false,"context_lines":[{"line_number":280,"context_line":""},{"line_number":281,"context_line":"        if self.params[\u0027project\u0027]:"},{"line_number":282,"context_line":"            project \u003d self.conn.identity.find_project(self.parsams[\u0027project\u0027],"},{"line_number":283,"context_line":"                                                      ignore_misssing\u003dFalse)"},{"line_number":284,"context_line":"            kwargs[\u0027project_id\u0027] \u003d project.id"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        return kwargs"}],"source_content_type":"text/x-python","patch_set":6,"id":"a26c74d3_0fa3cfb9","line":283,"in_reply_to":"3913c2cc_5de393e3","updated":"2022-10-06 02:12:08.000000000","message":"Done","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"c99a94d733294a1406a684d0ea95d8786444d68e","unresolved":true,"context_lines":[{"line_number":286,"context_line":"        return kwargs"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    def _create(self):"},{"line_number":289,"context_line":"        diff \u003d {\u0027before\u0027: \u0027\u0027, \u0027after\u0027: \u0027\u0027}"},{"line_number":290,"context_line":"        volume_args \u003d self._build_create_kwargs()"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        if self.ansible.check_mode:"}],"source_content_type":"text/x-python","patch_set":6,"id":"675a6882_1b6385e1","line":289,"updated":"2022-09-06 10:50:45.000000000","message":"diff was for debugging? please drop from final code","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"fd9e05606ddcedf8395caaf1134330d7d6850402","unresolved":false,"context_lines":[{"line_number":286,"context_line":"        return kwargs"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    def _create(self):"},{"line_number":289,"context_line":"        diff \u003d {\u0027before\u0027: \u0027\u0027, \u0027after\u0027: \u0027\u0027}"},{"line_number":290,"context_line":"        volume_args \u003d self._build_create_kwargs()"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        if self.ansible.check_mode:"}],"source_content_type":"text/x-python","patch_set":6,"id":"40d1bfda_521d35b5","line":289,"in_reply_to":"5bd61521_7740c190","updated":"2022-10-06 09:58:37.000000000","message":"Keep it, i just did not know about diff mode. Could be handy for debugging. In Ansible modules there does not seem to be a uniform way of how diff has to look like [1]. So the output format is ok.\n\n[1] https://github.com/ansible/ansible/search?q\u003ddiff+path%3A%2Flib%2Fansible%2Fmodules\u0026type\u003dcode","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"9cddbfa4feadde222c7aa5def93eebdaf4fdc54d","unresolved":true,"context_lines":[{"line_number":286,"context_line":"        return kwargs"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    def _create(self):"},{"line_number":289,"context_line":"        diff \u003d {\u0027before\u0027: \u0027\u0027, \u0027after\u0027: \u0027\u0027}"},{"line_number":290,"context_line":"        volume_args \u003d self._build_create_kwargs()"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        if self.ansible.check_mode:"}],"source_content_type":"text/x-python","patch_set":6,"id":"73ad683e_4637f184","line":289,"in_reply_to":"675a6882_1b6385e1","updated":"2022-09-06 16:03:17.000000000","message":"Not for debugging, but for ansible \"diff mode\".","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"6ea1ec36b88381d8f6d67319f1f28d7f66fb2a6d","unresolved":true,"context_lines":[{"line_number":286,"context_line":"        return kwargs"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    def _create(self):"},{"line_number":289,"context_line":"        diff \u003d {\u0027before\u0027: \u0027\u0027, \u0027after\u0027: \u0027\u0027}"},{"line_number":290,"context_line":"        volume_args \u003d self._build_create_kwargs()"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        if self.ansible.check_mode:"}],"source_content_type":"text/x-python","patch_set":6,"id":"5bd61521_7740c190","line":289,"in_reply_to":"73ad683e_4637f184","updated":"2022-10-06 03:23:46.000000000","message":"For the record I\u0027m ok with dropping support for diff mode since we don\u0027t really support it elsewhere.","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"c99a94d733294a1406a684d0ea95d8786444d68e","unresolved":true,"context_lines":[{"line_number":289,"context_line":"        diff \u003d {\u0027before\u0027: \u0027\u0027, \u0027after\u0027: \u0027\u0027}"},{"line_number":290,"context_line":"        volume_args \u003d self._build_create_kwargs()"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        if self.ansible.check_mode:"},{"line_number":293,"context_line":"            diff[\u0027after\u0027] \u003d volume_args"},{"line_number":294,"context_line":"            self.exit_json(changed\u003dTrue, volume\u003dvolume_args, diff\u003ddiff)"},{"line_number":295,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"d005506f_e9791395","line":292,"updated":"2022-09-06 10:50:45.000000000","message":"unusual place for checking for check_mode. maybe want to do it like in other modules in a separate function call?","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"9cddbfa4feadde222c7aa5def93eebdaf4fdc54d","unresolved":true,"context_lines":[{"line_number":289,"context_line":"        diff \u003d {\u0027before\u0027: \u0027\u0027, \u0027after\u0027: \u0027\u0027}"},{"line_number":290,"context_line":"        volume_args \u003d self._build_create_kwargs()"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        if self.ansible.check_mode:"},{"line_number":293,"context_line":"            diff[\u0027after\u0027] \u003d volume_args"},{"line_number":294,"context_line":"            self.exit_json(changed\u003dTrue, volume\u003dvolume_args, diff\u003ddiff)"},{"line_number":295,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"f0f38b45_f649aafd","line":292,"in_reply_to":"d005506f_e9791395","updated":"2022-09-06 16:03:17.000000000","message":"I\u0027ve done it this way since check mode also has to deal with diff mode. That\u0027s the whole reason this module is structured somewhat unusually. I tried separating it into a separate function but found that this way actually ended up reading better.","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"fd9e05606ddcedf8395caaf1134330d7d6850402","unresolved":false,"context_lines":[{"line_number":289,"context_line":"        diff \u003d {\u0027before\u0027: \u0027\u0027, \u0027after\u0027: \u0027\u0027}"},{"line_number":290,"context_line":"        volume_args \u003d self._build_create_kwargs()"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        if self.ansible.check_mode:"},{"line_number":293,"context_line":"            diff[\u0027after\u0027] \u003d volume_args"},{"line_number":294,"context_line":"            self.exit_json(changed\u003dTrue, volume\u003dvolume_args, diff\u003ddiff)"},{"line_number":295,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"f4346e3a_0478de3e","line":292,"in_reply_to":"f0f38b45_f649aafd","updated":"2022-10-06 09:58:37.000000000","message":"Downside is, that it is easy to miss code paths resulting in the module to apply changes even if running in check mode. We really have to be careful during reviews :/\n\nAnyway, if we want to change that we should do in another patch later once we have released aoc 2.0.0.","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"c99a94d733294a1406a684d0ea95d8786444d68e","unresolved":true,"context_lines":[{"line_number":293,"context_line":"            diff[\u0027after\u0027] \u003d volume_args"},{"line_number":294,"context_line":"            self.exit_json(changed\u003dTrue, volume\u003dvolume_args, diff\u003ddiff)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        volume \u003d self.conn.create_volume("},{"line_number":297,"context_line":"            wait\u003dself.params[\u0027wait\u0027], timeout\u003dself.params[\u0027timeout\u0027],"},{"line_number":298,"context_line":"            **volume_args)"},{"line_number":299,"context_line":"        volume \u003d volume.to_dict(computed\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":6,"id":"d6bb49e8_f605db13","line":296,"updated":"2022-09-06 10:50:45.000000000","message":"self.conn.create_volume was probably the reason why you use bootable instead of is_bootable. Since our module attributes doc is also giving users hints on what are current attribute names (e.g. is_bootable) and what has been kept for backward compat only (bootable) i would still change DOCUMENTATION and argument_spec to is_bootable and then manually transform from is_bootable to bootable here.","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"9cddbfa4feadde222c7aa5def93eebdaf4fdc54d","unresolved":false,"context_lines":[{"line_number":293,"context_line":"            diff[\u0027after\u0027] \u003d volume_args"},{"line_number":294,"context_line":"            self.exit_json(changed\u003dTrue, volume\u003dvolume_args, diff\u003ddiff)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        volume \u003d self.conn.create_volume("},{"line_number":297,"context_line":"            wait\u003dself.params[\u0027wait\u0027], timeout\u003dself.params[\u0027timeout\u0027],"},{"line_number":298,"context_line":"            **volume_args)"},{"line_number":299,"context_line":"        volume \u003d volume.to_dict(computed\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":6,"id":"71d777cf_bcbd0e91","line":296,"in_reply_to":"d6bb49e8_f605db13","updated":"2022-09-06 16:03:17.000000000","message":"switched to is_bootable, switched to proxy.","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"c99a94d733294a1406a684d0ea95d8786444d68e","unresolved":true,"context_lines":[{"line_number":294,"context_line":"            self.exit_json(changed\u003dTrue, volume\u003dvolume_args, diff\u003ddiff)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        volume \u003d self.conn.create_volume("},{"line_number":297,"context_line":"            wait\u003dself.params[\u0027wait\u0027], timeout\u003dself.params[\u0027timeout\u0027],"},{"line_number":298,"context_line":"            **volume_args)"},{"line_number":299,"context_line":"        volume \u003d volume.to_dict(computed\u003dFalse)"},{"line_number":300,"context_line":"        diff[\u0027after\u0027] \u003d volume"}],"source_content_type":"text/x-python","patch_set":6,"id":"e7f51234_78687393","line":297,"updated":"2022-09-06 10:50:45.000000000","message":"Since you found images and volumes in code above already, you could probably switch to self.conn.block_storage.create_volume etc without too much additional code? maybe not? what do you think?","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"9e892bedd6f064348700df91ce97f42a40052b96","unresolved":false,"context_lines":[{"line_number":294,"context_line":"            self.exit_json(changed\u003dTrue, volume\u003dvolume_args, diff\u003ddiff)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        volume \u003d self.conn.create_volume("},{"line_number":297,"context_line":"            wait\u003dself.params[\u0027wait\u0027], timeout\u003dself.params[\u0027timeout\u0027],"},{"line_number":298,"context_line":"            **volume_args)"},{"line_number":299,"context_line":"        volume \u003d volume.to_dict(computed\u003dFalse)"},{"line_number":300,"context_line":"        diff[\u0027after\u0027] \u003d volume"}],"source_content_type":"text/x-python","patch_set":6,"id":"b9b1012d_c608719b","line":297,"in_reply_to":"e7f51234_78687393","updated":"2022-10-06 02:12:08.000000000","message":"Done","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"c99a94d733294a1406a684d0ea95d8786444d68e","unresolved":true,"context_lines":[{"line_number":300,"context_line":"        diff[\u0027after\u0027] \u003d volume"},{"line_number":301,"context_line":"        self.exit_json(changed\u003dTrue, volume\u003dvolume, diff\u003ddiff)"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"    def _delete(self, volume):"},{"line_number":304,"context_line":"        diff \u003d {\u0027before\u0027: \u0027\u0027, \u0027after\u0027: \u0027\u0027}"},{"line_number":305,"context_line":"        if volume is None:"},{"line_number":306,"context_line":"            self.exit_json(changed\u003dFalse, diff\u003ddiff)"}],"source_content_type":"text/x-python","patch_set":6,"id":"b0c1c3e3_0d5363cd","line":303,"updated":"2022-09-06 10:50:45.000000000","message":"where do you check for check_mode in _delete?","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"9e892bedd6f064348700df91ce97f42a40052b96","unresolved":false,"context_lines":[{"line_number":300,"context_line":"        diff[\u0027after\u0027] \u003d volume"},{"line_number":301,"context_line":"        self.exit_json(changed\u003dTrue, volume\u003dvolume, diff\u003ddiff)"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"    def _delete(self, volume):"},{"line_number":304,"context_line":"        diff \u003d {\u0027before\u0027: \u0027\u0027, \u0027after\u0027: \u0027\u0027}"},{"line_number":305,"context_line":"        if volume is None:"},{"line_number":306,"context_line":"            self.exit_json(changed\u003dFalse, diff\u003ddiff)"}],"source_content_type":"text/x-python","patch_set":6,"id":"0a4291da_0fc2c502","line":303,"in_reply_to":"b0c1c3e3_0d5363cd","updated":"2022-10-06 02:12:08.000000000","message":"Done","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"9e892bedd6f064348700df91ce97f42a40052b96","unresolved":false,"context_lines":[{"line_number":300,"context_line":"        diff[\u0027after\u0027] \u003d volume"},{"line_number":301,"context_line":"        self.exit_json(changed\u003dTrue, volume\u003dvolume, diff\u003ddiff)"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"    def _delete(self, volume):"},{"line_number":304,"context_line":"        diff \u003d {\u0027before\u0027: \u0027\u0027, \u0027after\u0027: \u0027\u0027}"},{"line_number":305,"context_line":"        if volume is None:"},{"line_number":306,"context_line":"            self.exit_json(changed\u003dFalse, diff\u003ddiff)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9ddd8afb_607da22b","line":303,"in_reply_to":"b0c1c3e3_0d5363cd","updated":"2022-10-06 02:12:08.000000000","message":"Done","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"c99a94d733294a1406a684d0ea95d8786444d68e","unresolved":true,"context_lines":[{"line_number":306,"context_line":"            self.exit_json(changed\u003dFalse, diff\u003ddiff)"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"        diff[\u0027before\u0027] \u003d volume"},{"line_number":309,"context_line":"        self.conn.delete_volume(volume.id, wait\u003dself.params[\u0027wait\u0027],"},{"line_number":310,"context_line":"                                timeout\u003dself.params[\u0027timeout\u0027])"},{"line_number":311,"context_line":"        self.exit_json(changed\u003dTrue, diff\u003ddiff)"},{"line_number":312,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"f92e01cd_6a4813cd","line":309,"updated":"2022-09-06 10:50:45.000000000","message":"as you already have the volume you can simply replace self.conn.delete_volume with appropriate resource proxy functions. this will increase the code here by 1-2 lines (for self.conn.block_storage.wait_for_delete(...)) but could save a api call when finding the volume. a tradeoff. what do you think?","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"9e892bedd6f064348700df91ce97f42a40052b96","unresolved":false,"context_lines":[{"line_number":306,"context_line":"            self.exit_json(changed\u003dFalse, diff\u003ddiff)"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"        diff[\u0027before\u0027] \u003d volume"},{"line_number":309,"context_line":"        self.conn.delete_volume(volume.id, wait\u003dself.params[\u0027wait\u0027],"},{"line_number":310,"context_line":"                                timeout\u003dself.params[\u0027timeout\u0027])"},{"line_number":311,"context_line":"        self.exit_json(changed\u003dTrue, diff\u003ddiff)"},{"line_number":312,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"a33cd67b_139f28f4","line":309,"in_reply_to":"f92e01cd_6a4813cd","updated":"2022-10-06 02:12:08.000000000","message":"Done","commit_id":"64436d60474cdccfa5fe8898a7afb8b12bf9ce69"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"fd9e05606ddcedf8395caaf1134330d7d6850402","unresolved":true,"context_lines":[{"line_number":256,"context_line":"            self.exit_json(changed\u003dTrue, volume\u003dvolume.to_dict(computed\u003dFalse),"},{"line_number":257,"context_line":"                           diff\u003ddiff)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"        self.warn(str((volume.size, update)))"},{"line_number":260,"context_line":"        if \u0027size\u0027 in update and update[\u0027size\u0027] !\u003d volume.size:"},{"line_number":261,"context_line":"            size \u003d update[\u0027size\u0027]"},{"line_number":262,"context_line":"            self.conn.volume.extend_volume(volume.id, size)"}],"source_content_type":"text/x-python","patch_set":12,"id":"8f7609ea_5cc1be67","line":259,"updated":"2022-10-06 09:58:37.000000000","message":"What is this for?","commit_id":"36a11cb4a2c1c4ad35c308dd0b2feace2ace369f"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"dc47dcf739ad9a86ea44b7f69d6c6c68592c82de","unresolved":true,"context_lines":[{"line_number":256,"context_line":"            self.exit_json(changed\u003dTrue, volume\u003dvolume.to_dict(computed\u003dFalse),"},{"line_number":257,"context_line":"                           diff\u003ddiff)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"        self.warn(str((volume.size, update)))"},{"line_number":260,"context_line":"        if \u0027size\u0027 in update and update[\u0027size\u0027] !\u003d volume.size:"},{"line_number":261,"context_line":"            size \u003d update[\u0027size\u0027]"},{"line_number":262,"context_line":"            self.conn.volume.extend_volume(volume.id, size)"}],"source_content_type":"text/x-python","patch_set":12,"id":"99f0af53_4bb5c476","line":259,"in_reply_to":"8f7609ea_5cc1be67","updated":"2022-10-11 01:49:49.000000000","message":"Removed.","commit_id":"36a11cb4a2c1c4ad35c308dd0b2feace2ace369f"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"694a13d2d68b061af54358c0fcd7a14d8461a019","unresolved":false,"context_lines":[{"line_number":256,"context_line":"            self.exit_json(changed\u003dTrue, volume\u003dvolume.to_dict(computed\u003dFalse),"},{"line_number":257,"context_line":"                           diff\u003ddiff)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"        self.warn(str((volume.size, update)))"},{"line_number":260,"context_line":"        if \u0027size\u0027 in update and update[\u0027size\u0027] !\u003d volume.size:"},{"line_number":261,"context_line":"            size \u003d update[\u0027size\u0027]"},{"line_number":262,"context_line":"            self.conn.volume.extend_volume(volume.id, size)"}],"source_content_type":"text/x-python","patch_set":12,"id":"525ec928_68635000","line":259,"in_reply_to":"99f0af53_4bb5c476","updated":"2022-10-26 05:51:51.000000000","message":"Done","commit_id":"36a11cb4a2c1c4ad35c308dd0b2feace2ace369f"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"8e530fa284d8019512e92bdd9cb08ab1ac2acb54","unresolved":false,"context_lines":[{"line_number":256,"context_line":"            self.exit_json(changed\u003dTrue, volume\u003dvolume.to_dict(computed\u003dFalse),"},{"line_number":257,"context_line":"                           diff\u003ddiff)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"        self.warn(str((volume.size, update)))"},{"line_number":260,"context_line":"        if \u0027size\u0027 in update and update[\u0027size\u0027] !\u003d volume.size:"},{"line_number":261,"context_line":"            size \u003d update[\u0027size\u0027]"},{"line_number":262,"context_line":"            self.conn.volume.extend_volume(volume.id, size)"}],"source_content_type":"text/x-python","patch_set":12,"id":"0d092c59_cb0a2dd3","line":259,"in_reply_to":"99f0af53_4bb5c476","updated":"2022-10-20 08:06:13.000000000","message":"Thanks!","commit_id":"36a11cb4a2c1c4ad35c308dd0b2feace2ace369f"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"fd9e05606ddcedf8395caaf1134330d7d6850402","unresolved":false,"context_lines":[{"line_number":257,"context_line":"                           diff\u003ddiff)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"        self.warn(str((volume.size, update)))"},{"line_number":260,"context_line":"        if \u0027size\u0027 in update and update[\u0027size\u0027] !\u003d volume.size:"},{"line_number":261,"context_line":"            size \u003d update[\u0027size\u0027]"},{"line_number":262,"context_line":"            self.conn.volume.extend_volume(volume.id, size)"},{"line_number":263,"context_line":"            volume \u003d self.conn.block_storage.get_volume(volume)"}],"source_content_type":"text/x-python","patch_set":12,"id":"eb21a17b_ef2be8b7","line":260,"updated":"2022-10-06 09:58:37.000000000","message":"Good catch!","commit_id":"36a11cb4a2c1c4ad35c308dd0b2feace2ace369f"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"486cdd81101c0a5d2cd23ebdf08a037e233d9311","unresolved":true,"context_lines":[{"line_number":42,"context_line":"     required: true"},{"line_number":43,"context_line":"     type: str"},{"line_number":44,"context_line":"     aliases: [display_name]"},{"line_number":45,"context_line":"   project:"},{"line_number":46,"context_line":"     description:"},{"line_number":47,"context_line":"        - Name or ID of the project this volume belongs to"},{"line_number":48,"context_line":"     type: str"}],"source_content_type":"text/x-python","patch_set":13,"id":"164de87f_e22b8ba1","line":45,"updated":"2022-10-20 08:58:15.000000000","message":"Removing the project parameter will break backward compat for no other reason than a bug in the sdk [1]?!?\n\nThis functionality worked fine in the past (pre-0.99.0) [2] and is still perfectly supported by OpenStack\u0027s block-storage API [3]. So i am strongly against removing this functionality. It will cause an error only if project parameter is set, wont it?\n\n[1] https://storyboard.openstack.org/#!/story/2010359\n[2] https://opendev.org/openstack/openstacksdk/src/commit/fd300de63f5a7a9c7760d69a2d7ce248e058bd61/openstack/cloud/_block_storage.py#L215\n[3] https://docs.openstack.org/api-ref/block-storage/v3/index.html?expanded\u003dcreate-a-volume-detail#create-a-volume","commit_id":"07f91f820ee376943d2c0d6e1288789ae8160220"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"fae16199baff80105266c6080a8a680a99a948c2","unresolved":false,"context_lines":[{"line_number":42,"context_line":"     required: true"},{"line_number":43,"context_line":"     type: str"},{"line_number":44,"context_line":"     aliases: [display_name]"},{"line_number":45,"context_line":"   project:"},{"line_number":46,"context_line":"     description:"},{"line_number":47,"context_line":"        - Name or ID of the project this volume belongs to"},{"line_number":48,"context_line":"     type: str"}],"source_content_type":"text/x-python","patch_set":13,"id":"a31f702f_fd3d44b4","line":45,"in_reply_to":"164de87f_e22b8ba1","updated":"2022-10-26 06:12:39.000000000","message":"I just realized that you added this parameter project in this patch, so we wont actually break anything when dropping it.","commit_id":"07f91f820ee376943d2c0d6e1288789ae8160220"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"f53d429d114fc21404cdf6f84a4e322f5a0bbcd5","unresolved":true,"context_lines":[{"line_number":250,"context_line":"        update \u003d self._build_update(volume)"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        if not update:"},{"line_number":253,"context_line":"            self.exit_json(changed\u003dTrue, volume\u003dvolume.to_dict(computed\u003dFalse),"},{"line_number":254,"context_line":"                           diff\u003ddiff)"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        self.warn(str((volume.size, update)))"}],"source_content_type":"text/x-python","patch_set":13,"id":"35938058_32566466","line":253,"updated":"2022-10-06 10:24:55.000000000","message":"\"not update\" \u003d\u003e changed\u003dTrue? Shouldnt it be changed\u003dFalse?","commit_id":"07f91f820ee376943d2c0d6e1288789ae8160220"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"dc47dcf739ad9a86ea44b7f69d6c6c68592c82de","unresolved":false,"context_lines":[{"line_number":250,"context_line":"        update \u003d self._build_update(volume)"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        if not update:"},{"line_number":253,"context_line":"            self.exit_json(changed\u003dTrue, volume\u003dvolume.to_dict(computed\u003dFalse),"},{"line_number":254,"context_line":"                           diff\u003ddiff)"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        self.warn(str((volume.size, update)))"}],"source_content_type":"text/x-python","patch_set":13,"id":"d0a81a71_67abcc69","line":253,"in_reply_to":"35938058_32566466","updated":"2022-10-11 01:49:49.000000000","message":"Done","commit_id":"07f91f820ee376943d2c0d6e1288789ae8160220"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"f53d429d114fc21404cdf6f84a4e322f5a0bbcd5","unresolved":true,"context_lines":[{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        if not update:"},{"line_number":253,"context_line":"            self.exit_json(changed\u003dTrue, volume\u003dvolume.to_dict(computed\u003dFalse),"},{"line_number":254,"context_line":"                           diff\u003ddiff)"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        self.warn(str((volume.size, update)))"},{"line_number":257,"context_line":"        if \u0027size\u0027 in update and update[\u0027size\u0027] !\u003d volume.size:"}],"source_content_type":"text/x-python","patch_set":13,"id":"318f51e0_773f65f3","line":254,"updated":"2022-10-06 10:24:55.000000000","message":"diff does not incorporate the updated volume, please change \u0027after\u0027.","commit_id":"07f91f820ee376943d2c0d6e1288789ae8160220"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"dc47dcf739ad9a86ea44b7f69d6c6c68592c82de","unresolved":true,"context_lines":[{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        if not update:"},{"line_number":253,"context_line":"            self.exit_json(changed\u003dTrue, volume\u003dvolume.to_dict(computed\u003dFalse),"},{"line_number":254,"context_line":"                           diff\u003ddiff)"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        self.warn(str((volume.size, update)))"},{"line_number":257,"context_line":"        if \u0027size\u0027 in update and update[\u0027size\u0027] !\u003d volume.size:"}],"source_content_type":"text/x-python","patch_set":13,"id":"d3d2c922_2463babf","line":254,"in_reply_to":"318f51e0_773f65f3","updated":"2022-10-11 01:49:49.000000000","message":"This is the case where the volume was not updated. \u0027after\u0027 is set correctly a few lines before","commit_id":"07f91f820ee376943d2c0d6e1288789ae8160220"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"8e530fa284d8019512e92bdd9cb08ab1ac2acb54","unresolved":false,"context_lines":[{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        if not update:"},{"line_number":253,"context_line":"            self.exit_json(changed\u003dTrue, volume\u003dvolume.to_dict(computed\u003dFalse),"},{"line_number":254,"context_line":"                           diff\u003ddiff)"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        self.warn(str((volume.size, update)))"},{"line_number":257,"context_line":"        if \u0027size\u0027 in update and update[\u0027size\u0027] !\u003d volume.size:"}],"source_content_type":"text/x-python","patch_set":13,"id":"4d6b0ea7_0d884a5d","line":254,"in_reply_to":"d3d2c922_2463babf","updated":"2022-10-20 08:06:13.000000000","message":"Reminder to myself: Never review while being sleepy..","commit_id":"07f91f820ee376943d2c0d6e1288789ae8160220"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"f53d429d114fc21404cdf6f84a4e322f5a0bbcd5","unresolved":true,"context_lines":[{"line_number":254,"context_line":"                           diff\u003ddiff)"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        self.warn(str((volume.size, update)))"},{"line_number":257,"context_line":"        if \u0027size\u0027 in update and update[\u0027size\u0027] !\u003d volume.size:"},{"line_number":258,"context_line":"            size \u003d update[\u0027size\u0027]"},{"line_number":259,"context_line":"            self.conn.volume.extend_volume(volume.id, size)"},{"line_number":260,"context_line":"            volume \u003d self.conn.block_storage.get_volume(volume)"}],"source_content_type":"text/x-python","patch_set":13,"id":"f9fb56dc_a8496d29","line":257,"updated":"2022-10-06 10:24:55.000000000","message":"check_mode?","commit_id":"07f91f820ee376943d2c0d6e1288789ae8160220"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"8e530fa284d8019512e92bdd9cb08ab1ac2acb54","unresolved":false,"context_lines":[{"line_number":254,"context_line":"                           diff\u003ddiff)"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        self.warn(str((volume.size, update)))"},{"line_number":257,"context_line":"        if \u0027size\u0027 in update and update[\u0027size\u0027] !\u003d volume.size:"},{"line_number":258,"context_line":"            size \u003d update[\u0027size\u0027]"},{"line_number":259,"context_line":"            self.conn.volume.extend_volume(volume.id, size)"},{"line_number":260,"context_line":"            volume \u003d self.conn.block_storage.get_volume(volume)"}],"source_content_type":"text/x-python","patch_set":13,"id":"f6941c56_c0b09573","line":257,"in_reply_to":"f9fb56dc_a8496d29","updated":"2022-10-20 08:06:13.000000000","message":"Implemented in later patchset.","commit_id":"07f91f820ee376943d2c0d6e1288789ae8160220"}]}
