)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"557bb9abf47800cc7dc1f7dadc3b6fee4863391c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"f71d2d78_bc52c86a","updated":"2022-07-05 14:07:11.000000000","message":"Straightforward enough, just found one small thing","commit_id":"eb0de6b86853b13062e8ef8e93325a0472f214eb"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"d8195091e538ea25f5928d9b2588ae60baeb5074","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"c7542c56_32ce2ed0","updated":"2022-08-10 11:51:16.000000000","message":"Thank you, Arx! \n\nVoted -1 simply to mark this patch as \"requires more work\".\n\nSome thoughts on this patch, this time in a single comment ;)\n\n* openstacksdk does no longer return Munch objects. It returns resources which we convert to dictionaries, so we have to update RETURN docs in most modules.\n\n* RETURN doc is missing the id attribute\n\n* openstacksdk functions often accept IDs but no names, e.g. find_address_scope() and create_address_scope() accept a project_id parameter. Most modules in our collection use names for finding resources, so we want to support the same for resources attributes such as project_id in AddressScope.\n\nThis module allows that already: It takes a project parameter which is then used to find projects. But it is not consistently used, e.g. it should also be passed to find_address_scope() when searching for address scopes.\n\n* Since ID is already part of the resource dict that is returned by the module, we can safely drop dedicated id attributes in self.exit_json() calls. We will not loose data and we break backward compatibility anyway.\n\n\n\nThe following list of suggestion is optional:\n\n* Replacing self.conn.get_* with self.conn.*.find_* functions allows us to specify a \"ignore_missing\u003dFalse\" parameter. That allows us to drop our self.fail_json() calls in our modules. Less code, less to maintain ;)\n\n* When you rename option names to the attribute names that openstacksdk uses, then it is easier to use for users since both inputs and outputs of a module match. Example: shared \u003d\u003e is_shared\n\n* When list of expected module results is moved to role defaults (e.g. as expected_fields), it is easier to reuse.\n\n* Sorting module options in DOCUMENTATION, attributes in RETURN, entries in argument_spec and expected fields in integration tests will make reviewing easier and faster.\n\n* Having code to check that some options cannot be updated and to fail if user still tries to update that value is most often not worth it. It would require much more code to catch all cases where updates are impossible and we would have to implement it consistently across modules. Atm we are fine with documenting which attribute cannot be updated in DOCUMENTATION variable.\n\nIn particular, \u0027Cannot update ip_version in existing address scope\u0027 is nice but incomplete: We cannot update any attribute except (is_)shared. IMHO we could simply drop this check and insert a sentence to DOCUMENTATION that ip_version cannot be updated. We do the same for server modules and others.","commit_id":"c98544c6b16dc4ecf93599999deedab16240b969"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"cd5e088e4a500f5f57b413db6664d6915f677ef8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"d8e8c056_5d43404a","in_reply_to":"94864721_682a1f16","updated":"2022-09-21 13:50:34.000000000","message":"Great 👍","commit_id":"c98544c6b16dc4ecf93599999deedab16240b969"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"aff7d723e24d66f769d3357c75816b55ae278e11","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"94864721_682a1f16","in_reply_to":"c7542c56_32ce2ed0","updated":"2022-09-20 09:00:39.000000000","message":"I guess everything is addressed on the new patchset","commit_id":"c98544c6b16dc4ecf93599999deedab16240b969"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"7571e80ef7faa32cdaf0bc59e1547767cba55051","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"54685a7c_c04b19e3","updated":"2022-09-20 23:20:01.000000000","message":"LGTM","commit_id":"1bd82e47de735611048cb59ab5944a81bb09b5e7"}],"plugins/modules/address_scope.py":[{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"557bb9abf47800cc7dc1f7dadc3b6fee4863391c","unresolved":true,"context_lines":[{"line_number":79,"context_line":"    description: Dictionary describing the address scope."},{"line_number":80,"context_line":"    returned: On success when I(state) is \u0027present\u0027"},{"line_number":81,"context_line":"    type: complex"},{"line_number":82,"context_line":"    contains:"},{"line_number":83,"context_line":"        id:"},{"line_number":84,"context_line":"            description: Address Scope ID."},{"line_number":85,"context_line":"            type: str"}],"source_content_type":"text/x-python","patch_set":3,"id":"090d60f1_84ed36a9","line":82,"updated":"2022-07-05 14:07:11.000000000","message":"Missing project ID here","commit_id":"eb0de6b86853b13062e8ef8e93325a0472f214eb"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"a61c88c5afb0488890e37fd9375afea4852ad894","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    description: Dictionary describing the address scope."},{"line_number":80,"context_line":"    returned: On success when I(state) is \u0027present\u0027"},{"line_number":81,"context_line":"    type: complex"},{"line_number":82,"context_line":"    contains:"},{"line_number":83,"context_line":"        id:"},{"line_number":84,"context_line":"            description: Address Scope ID."},{"line_number":85,"context_line":"            type: str"}],"source_content_type":"text/x-python","patch_set":3,"id":"a51af6fe_efed10fd","line":82,"in_reply_to":"090d60f1_84ed36a9","updated":"2022-07-12 14:03:44.000000000","message":"Done","commit_id":"eb0de6b86853b13062e8ef8e93325a0472f214eb"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"be5d7cb5cc6e6ef996070c25a36b5522d795c82e","unresolved":true,"context_lines":[{"line_number":38,"context_line":"        - Whether this address scope is shared or not."},{"line_number":39,"context_line":"     type: bool"},{"line_number":40,"context_line":"     default: \u0027no\u0027"},{"line_number":41,"context_line":"   extra_specs:"},{"line_number":42,"context_line":"     description:"},{"line_number":43,"context_line":"        - Dictionary with extra key/value pairs passed to the API"},{"line_number":44,"context_line":"     required: false"}],"source_content_type":"text/x-python","patch_set":5,"id":"f9b5a28c_86d64b54","line":41,"updated":"2022-08-10 11:52:10.000000000","message":"What is the purpose of extra_specs? All possible attributes are already supported by the module and openstacksdk will not pass unknown attributes to OpenStack API. We could think about deprecating it.\n\nRafael, any opinion on that?","commit_id":"c98544c6b16dc4ecf93599999deedab16240b969"},{"author":{"_account_id":34208,"name":"Rafael Castillo","email":"rcastill@redhat.com","username":"rcastill"},"change_message_id":"7571e80ef7faa32cdaf0bc59e1547767cba55051","unresolved":true,"context_lines":[{"line_number":38,"context_line":"        - Whether this address scope is shared or not."},{"line_number":39,"context_line":"     type: bool"},{"line_number":40,"context_line":"     default: \u0027no\u0027"},{"line_number":41,"context_line":"   extra_specs:"},{"line_number":42,"context_line":"     description:"},{"line_number":43,"context_line":"        - Dictionary with extra key/value pairs passed to the API"},{"line_number":44,"context_line":"     required: false"}],"source_content_type":"text/x-python","patch_set":5,"id":"af2d65b2_96ec5843","line":41,"in_reply_to":"5bfc85b4_842ac83b","updated":"2022-09-20 23:20:01.000000000","message":"It has no purpose afaict, I\u0027d lean towards just deprecating it.","commit_id":"c98544c6b16dc4ecf93599999deedab16240b969"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"cd5e088e4a500f5f57b413db6664d6915f677ef8","unresolved":true,"context_lines":[{"line_number":38,"context_line":"        - Whether this address scope is shared or not."},{"line_number":39,"context_line":"     type: bool"},{"line_number":40,"context_line":"     default: \u0027no\u0027"},{"line_number":41,"context_line":"   extra_specs:"},{"line_number":42,"context_line":"     description:"},{"line_number":43,"context_line":"        - Dictionary with extra key/value pairs passed to the API"},{"line_number":44,"context_line":"     required: false"}],"source_content_type":"text/x-python","patch_set":5,"id":"c8be8136_0e8d9f21","line":41,"in_reply_to":"af2d65b2_96ec5843","updated":"2022-09-21 13:50:34.000000000","message":"ack, noted it on todo list for later","commit_id":"c98544c6b16dc4ecf93599999deedab16240b969"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"f077087eb7e70d36eaeedaf146e1ae7deaed2783","unresolved":true,"context_lines":[{"line_number":38,"context_line":"        - Whether this address scope is shared or not."},{"line_number":39,"context_line":"     type: bool"},{"line_number":40,"context_line":"     default: \u0027no\u0027"},{"line_number":41,"context_line":"   extra_specs:"},{"line_number":42,"context_line":"     description:"},{"line_number":43,"context_line":"        - Dictionary with extra key/value pairs passed to the API"},{"line_number":44,"context_line":"     required: false"}],"source_content_type":"text/x-python","patch_set":5,"id":"5bfc85b4_842ac83b","line":41,"in_reply_to":"f9b5a28c_86d64b54","updated":"2022-08-22 10:39:12.000000000","message":"I don\u0027t know the purpose, what should I do? remove it or keep it?","commit_id":"c98544c6b16dc4ecf93599999deedab16240b969"}]}
