)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"7954d75090183c802e264b307c627dffd569b94b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"87591253_5886724f","updated":"2022-02-08 12:13:24.000000000","message":"Testing in https://review.opendev.org/c/openstack/ansible-collections-openstack/+/828290","commit_id":"24d483573681c6377a5f0e22173b746694e1322f"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"08d22f5aeb13a833d2f1b0935caca50b4efadc76","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b81d30ee_6316b0c0","updated":"2022-02-08 14:29:53.000000000","message":"Can you please add test for this module? I don\u0027t see it even executed somewhere. At least to generate info after tasks here: https://github.com/openstack/ansible-collections-openstack/blob/master/ci/roles/nova_flavor/tasks/main.yml#L1","commit_id":"f1d4f2b2503c41459927ed3272ae67fd82b72dbe"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"8eae48e45517e6d2b784a4364d0c93f256c882d4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"5490e5d6_f0d8f9ef","updated":"2022-04-04 10:37:52.000000000","message":"Thank you, Arx! I have tweaked the patch a bit so that we can apply it to the stable/1.0.0 branch as well 😊","commit_id":"78286cd99f199b181f53e3aac3b728068b36c913"}],"ci/roles/nova_flavor/tasks/main.yml":[{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"2c360023bdadac8b4bfd134172b08a28e309be60","unresolved":true,"context_lines":[{"line_number":60,"context_line":"- name: List flavors with filter"},{"line_number":61,"context_line":"  openstack.cloud.compute_flavor_info:"},{"line_number":62,"context_line":"    cloud: \"{{ cloud }}\""},{"line_number":63,"context_line":"    name: \"m1.tiny\""},{"line_number":64,"context_line":"  register: flavor_name"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"093035e8_c60abaae","line":64,"range":{"start_line":63,"start_character":0,"end_line":64,"end_character":23},"updated":"2022-02-09 20:54:39.000000000","message":"worth to add check that we get only one flavor\nsomething like:\n\n  - name: Check output\n    assert:\n      that:\n        - flavor_name.openstack_flavors | length \u003d\u003d 1","commit_id":"cc5cf2bf2a14f3431e0bbebb201c2c95e9af5fa2"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"f51a555fadefb88a6a216cc4c6fb891dad06714b","unresolved":false,"context_lines":[{"line_number":60,"context_line":"- name: List flavors with filter"},{"line_number":61,"context_line":"  openstack.cloud.compute_flavor_info:"},{"line_number":62,"context_line":"    cloud: \"{{ cloud }}\""},{"line_number":63,"context_line":"    name: \"m1.tiny\""},{"line_number":64,"context_line":"  register: flavor_name"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"520768f4_2d05226b","line":64,"range":{"start_line":63,"start_character":0,"end_line":64,"end_character":23},"in_reply_to":"093035e8_c60abaae","updated":"2022-04-04 10:38:04.000000000","message":"Done","commit_id":"cc5cf2bf2a14f3431e0bbebb201c2c95e9af5fa2"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"6900dc3321c5cf2546897ddf64522ee1e4bef961","unresolved":true,"context_lines":[{"line_number":52,"context_line":"     state: absent"},{"line_number":53,"context_line":"     name: ansible_defaults_flavor"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"- name: List flavors"},{"line_number":56,"context_line":"  openstack.cloud.compute_flavor_info:"},{"line_number":57,"context_line":"    cloud: \"{{ cloud }}\""},{"line_number":58,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"e60fc19f_07eb7fc5","line":55,"updated":"2022-02-14 08:44:41.000000000","message":"Move tests for compute_flavor_info to separate file such as ci/roles/compute_flavor_info/... like the other *_info modules?","commit_id":"ab018d9abb651d46d542d425a8bc84df828c518e"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"8eae48e45517e6d2b784a4364d0c93f256c882d4","unresolved":false,"context_lines":[{"line_number":52,"context_line":"     state: absent"},{"line_number":53,"context_line":"     name: ansible_defaults_flavor"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"- name: List flavors"},{"line_number":56,"context_line":"  openstack.cloud.compute_flavor_info:"},{"line_number":57,"context_line":"    cloud: \"{{ cloud }}\""},{"line_number":58,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"c7cbe476_8c22d61b","line":55,"in_reply_to":"e60fc19f_07eb7fc5","updated":"2022-04-04 10:37:52.000000000","message":"Done","commit_id":"ab018d9abb651d46d542d425a8bc84df828c518e"}],"plugins/modules/compute_flavor_info.py":[{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"c19e5cc4268bbbe17ebd51c0dad731558604a48d","unresolved":true,"context_lines":[{"line_number":208,"context_line":"            flavors \u003d flavors[:limit]"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        # Transform entries to dict"},{"line_number":211,"context_line":"        flavors \u003d [flavor.to_dict() for flavor in flavors]"},{"line_number":212,"context_line":"        self.exit_json(changed\u003dFalse, openstack_flavors\u003dflavors)"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"6232be98_de690026","line":211,"range":{"start_line":211,"start_character":25,"end_line":211,"end_character":35},"updated":"2022-02-07 18:59:21.000000000","message":"just add please a check for \"to_dict\" since it can be different in various SDK versions, like [flavor.to_dict() if hasatter(flavor, \"to_dict\") else flavor for flavor in flavors]","commit_id":"90084c320c237355a04410e447efcb3b5616a66a"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"137f858d4cfadf18d1b30bae84154365d4700b59","unresolved":true,"context_lines":[{"line_number":208,"context_line":"            flavors \u003d flavors[:limit]"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        # Transform entries to dict"},{"line_number":211,"context_line":"        flavors \u003d [flavor.to_dict() for flavor in flavors]"},{"line_number":212,"context_line":"        self.exit_json(changed\u003dFalse, openstack_flavors\u003dflavors)"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"62fdc9fa_d9e130b2","line":211,"range":{"start_line":211,"start_character":25,"end_line":211,"end_character":35},"in_reply_to":"6232be98_de690026","updated":"2022-02-08 12:10:56.000000000","message":"Actually nevermind, we test all relevant versions in CI, so should be fine. I\u0027ll run the test with new SDK in a different patch.","commit_id":"90084c320c237355a04410e447efcb3b5616a66a"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"6900dc3321c5cf2546897ddf64522ee1e4bef961","unresolved":true,"context_lines":[{"line_number":208,"context_line":"            flavors \u003d flavors[:limit]"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        # Transform entries to dict"},{"line_number":211,"context_line":"        flavors \u003d [flavor.to_dict() for flavor in flavors]"},{"line_number":212,"context_line":"        self.exit_json(changed\u003dFalse, openstack_flavors\u003dflavors)"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"e3773118_faa033c3","line":211,"range":{"start_line":211,"start_character":25,"end_line":211,"end_character":35},"in_reply_to":"62fdc9fa_d9e130b2","updated":"2022-02-14 08:44:41.000000000","message":"I would only add these hasattr checks if you want to keep backwards compatibility with very old SDK versions. But since we do not even test against those (and their distris are EOL anyway) I would not add checks for to_dict.","commit_id":"90084c320c237355a04410e447efcb3b5616a66a"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"8eae48e45517e6d2b784a4364d0c93f256c882d4","unresolved":false,"context_lines":[{"line_number":208,"context_line":"            flavors \u003d flavors[:limit]"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        # Transform entries to dict"},{"line_number":211,"context_line":"        flavors \u003d [flavor.to_dict() for flavor in flavors]"},{"line_number":212,"context_line":"        self.exit_json(changed\u003dFalse, openstack_flavors\u003dflavors)"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"71824374_248aab22","line":211,"range":{"start_line":211,"start_character":25,"end_line":211,"end_character":35},"in_reply_to":"e3773118_faa033c3","updated":"2022-04-04 10:37:52.000000000","message":"Done","commit_id":"90084c320c237355a04410e447efcb3b5616a66a"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"6900dc3321c5cf2546897ddf64522ee1e4bef961","unresolved":true,"context_lines":[{"line_number":208,"context_line":"            flavors \u003d flavors[:limit]"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        # Transform entries to dict"},{"line_number":211,"context_line":"        flavors \u003d [(flavor.to_dict() if hasattr(flavor, \u0027to_dict\u0027) else flavor)"},{"line_number":212,"context_line":"                   for flavor in flavors]"},{"line_number":213,"context_line":"        self.exit_json(changed\u003dFalse, openstack_flavors\u003dflavors)"},{"line_number":214,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"f8f79dc1_39b306c0","line":211,"updated":"2022-02-14 08:44:41.000000000","message":"Shouldn\u0027t we drop the location attribute?","commit_id":"ab018d9abb651d46d542d425a8bc84df828c518e"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"8eae48e45517e6d2b784a4364d0c93f256c882d4","unresolved":false,"context_lines":[{"line_number":208,"context_line":"            flavors \u003d flavors[:limit]"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        # Transform entries to dict"},{"line_number":211,"context_line":"        flavors \u003d [(flavor.to_dict() if hasattr(flavor, \u0027to_dict\u0027) else flavor)"},{"line_number":212,"context_line":"                   for flavor in flavors]"},{"line_number":213,"context_line":"        self.exit_json(changed\u003dFalse, openstack_flavors\u003dflavors)"},{"line_number":214,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"cad62a14_ca81dc3f","line":211,"in_reply_to":"f8f79dc1_39b306c0","updated":"2022-04-04 10:37:52.000000000","message":"Done","commit_id":"ab018d9abb651d46d542d425a8bc84df828c518e"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"a62b9aa0206c3f3f8955309fbb5a3d78fdc6f23e","unresolved":true,"context_lines":[{"line_number":25,"context_line":"     description:"},{"line_number":26,"context_line":"       - A flavor name. Cannot be used with I(ram) or I(vcpus) or I(ephemeral)."},{"line_number":27,"context_line":"     type: str"},{"line_number":28,"context_line":"     description:"},{"line_number":29,"context_line":"       - Original name of the flavor"},{"line_number":30,"context_line":"     description:"},{"line_number":31,"context_line":"       - Size of the disk in gigabytes"},{"line_number":32,"context_line":"     type: int"},{"line_number":33,"context_line":"     description:"},{"line_number":34,"context_line":"       - Wether this flavor is public or not"},{"line_number":35,"context_line":"   ram:"},{"line_number":36,"context_line":"     description:"},{"line_number":37,"context_line":"       - \"A string used for filtering flavors based on the amount of RAM"}],"source_content_type":"text/x-python","patch_set":8,"id":"ebac42ac_9fc70328","line":34,"range":{"start_line":28,"start_character":2,"end_line":34,"end_character":44},"updated":"2022-03-09 12:57:41.000000000","message":"did you miss names of options?","commit_id":"4c774510edf28e8909f9813dc2913b7d8404d740"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"8eae48e45517e6d2b784a4364d0c93f256c882d4","unresolved":false,"context_lines":[{"line_number":25,"context_line":"     description:"},{"line_number":26,"context_line":"       - A flavor name. Cannot be used with I(ram) or I(vcpus) or I(ephemeral)."},{"line_number":27,"context_line":"     type: str"},{"line_number":28,"context_line":"     description:"},{"line_number":29,"context_line":"       - Original name of the flavor"},{"line_number":30,"context_line":"     description:"},{"line_number":31,"context_line":"       - Size of the disk in gigabytes"},{"line_number":32,"context_line":"     type: int"},{"line_number":33,"context_line":"     description:"},{"line_number":34,"context_line":"       - Wether this flavor is public or not"},{"line_number":35,"context_line":"   ram:"},{"line_number":36,"context_line":"     description:"},{"line_number":37,"context_line":"       - \"A string used for filtering flavors based on the amount of RAM"}],"source_content_type":"text/x-python","patch_set":8,"id":"089a9157_344c5e64","line":34,"range":{"start_line":28,"start_character":2,"end_line":34,"end_character":44},"in_reply_to":"ebac42ac_9fc70328","updated":"2022-04-04 10:37:52.000000000","message":"Done","commit_id":"4c774510edf28e8909f9813dc2913b7d8404d740"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"a62b9aa0206c3f3f8955309fbb5a3d78fdc6f23e","unresolved":true,"context_lines":[{"line_number":51,"context_line":"     description:"},{"line_number":52,"context_line":"       - A string used for filtering flavors based on the number of virtual"},{"line_number":53,"context_line":"         CPUs desired. Format is the same as the I(ram) parameter."},{"line_number":54,"context_line":"     type: str"},{"line_number":55,"context_line":"     description:"},{"line_number":56,"context_line":"       - Bandwidth cap factor of the network attached to."},{"line_number":57,"context_line":"     type: float"},{"line_number":58,"context_line":"     description:"},{"line_number":59,"context_line":"       - Wether flavor is enabled or not."},{"line_number":60,"context_line":"     type: bool"},{"line_number":61,"context_line":"   limit:"},{"line_number":62,"context_line":"     description:"}],"source_content_type":"text/x-python","patch_set":8,"id":"68473bbc_59f5b2ed","line":59,"range":{"start_line":54,"start_character":4,"end_line":59,"end_character":25},"updated":"2022-03-09 12:57:41.000000000","message":"ditto","commit_id":"4c774510edf28e8909f9813dc2913b7d8404d740"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"8eae48e45517e6d2b784a4364d0c93f256c882d4","unresolved":false,"context_lines":[{"line_number":51,"context_line":"     description:"},{"line_number":52,"context_line":"       - A string used for filtering flavors based on the number of virtual"},{"line_number":53,"context_line":"         CPUs desired. Format is the same as the I(ram) parameter."},{"line_number":54,"context_line":"     type: str"},{"line_number":55,"context_line":"     description:"},{"line_number":56,"context_line":"       - Bandwidth cap factor of the network attached to."},{"line_number":57,"context_line":"     type: float"},{"line_number":58,"context_line":"     description:"},{"line_number":59,"context_line":"       - Wether flavor is enabled or not."},{"line_number":60,"context_line":"     type: bool"},{"line_number":61,"context_line":"   limit:"},{"line_number":62,"context_line":"     description:"}],"source_content_type":"text/x-python","patch_set":8,"id":"611c7b9f_1f513fc2","line":59,"range":{"start_line":54,"start_character":4,"end_line":59,"end_character":25},"in_reply_to":"68473bbc_59f5b2ed","updated":"2022-04-04 10:37:52.000000000","message":"Done","commit_id":"4c774510edf28e8909f9813dc2913b7d8404d740"}]}
