)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"c2a894483f66378b1878c3d008e45c8f2ccc253b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"a190e294_bff93244","updated":"2022-02-14 08:54:48.000000000","message":"Please add tests for this module in ci/roles/compute_service_info/.","commit_id":"8be375f567908178fbe0117a2e179ad9e33eda79"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"6102704f4a3d2a51c1c6a906d47b4a79f362045b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"a39bcd61_a22cee2f","updated":"2022-03-02 09:08:00.000000000","message":"Thanks, Arx! Added some minor remarks which should be easy to fix 😊","commit_id":"7e224da672f414e2c552d1d7be9ad501f535f6b1"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"ee834afae1fe99322b3f017ead9faae8d28ec2eb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"10fe9e92_eec521ed","updated":"2022-03-03 14:34:56.000000000","message":"Great, thanks 😊","commit_id":"20e8f2c43fc659db9d69bc219f5fa21b2c5b7d3e"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"e3fa44c04d5e356e1319bf3cbf8ff817d681c346","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"7bbc4ab7_bfac1a8e","updated":"2022-03-07 18:07:04.000000000","message":"Testing in https://review.opendev.org/c/openstack/ansible-collections-openstack/+/832301/1","commit_id":"89d569dab5a12a67c06224d59ce072e981d0c453"}],"ci/roles/nova_services/tasks/main.yml":[{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"6102704f4a3d2a51c1c6a906d47b4a79f362045b","unresolved":true,"context_lines":[{"line_number":7,"context_line":"  register: result"},{"line_number":8,"context_line":"  failed_when: \"result.openstack_compute_services | length \u003c\u003d 0\""},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"- name: Assert fields"},{"line_number":11,"context_line":"  assert:"},{"line_number":12,"context_line":"    that:"},{"line_number":13,"context_line":"      - \u0027[\"availability_zone\", \"binary\", \"disabled_reason\", \"is_forced_down\","}],"source_content_type":"text/x-yaml","patch_set":4,"id":"778c8e20_e0f93440","line":10,"updated":"2022-03-02 09:08:00.000000000","message":"lgtm 👍","commit_id":"7e224da672f414e2c552d1d7be9ad501f535f6b1"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"ee834afae1fe99322b3f017ead9faae8d28ec2eb","unresolved":false,"context_lines":[{"line_number":7,"context_line":"  register: result"},{"line_number":8,"context_line":"  failed_when: \"result.openstack_compute_services | length \u003c\u003d 0\""},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"- name: Assert fields"},{"line_number":11,"context_line":"  assert:"},{"line_number":12,"context_line":"    that:"},{"line_number":13,"context_line":"      - \u0027[\"availability_zone\", \"binary\", \"disabled_reason\", \"is_forced_down\","}],"source_content_type":"text/x-yaml","patch_set":4,"id":"dd6833a7_a56f4cae","line":10,"in_reply_to":"778c8e20_e0f93440","updated":"2022-03-03 14:34:56.000000000","message":"Done","commit_id":"7e224da672f414e2c552d1d7be9ad501f535f6b1"}],"plugins/modules/compute_service_info.py":[{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"c2a894483f66378b1878c3d008e45c8f2ccc253b","unresolved":true,"context_lines":[{"line_number":98,"context_line":"        if host:"},{"line_number":99,"context_line":"            filters[\u0027host\u0027] \u003d host"},{"line_number":100,"context_line":"        services \u003d self.conn.compute.services(**filters)"},{"line_number":101,"context_line":"        services \u003d [(service.to_dict() if hasattr(service, \u0027to_dict\u0027)"},{"line_number":102,"context_line":"                    else service) for service in services]"},{"line_number":103,"context_line":"        self.exit_json(changed\u003dFalse, openstack_compute_services\u003dservices)"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"be9cee87_3032b6b9","line":101,"updated":"2022-02-14 08:54:48.000000000","message":"to_dict will rename the \u0027zone\u0027 attribute to \u0027availability_zone\u0027. So either update the RETURN variable doc or rename the variable. Not sure what the best way would be. For collection v1 we probably should just NOT apply this patch and for v2 we should change the docs.","commit_id":"8be375f567908178fbe0117a2e179ad9e33eda79"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"6102704f4a3d2a51c1c6a906d47b4a79f362045b","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        if host:"},{"line_number":99,"context_line":"            filters[\u0027host\u0027] \u003d host"},{"line_number":100,"context_line":"        services \u003d self.conn.compute.services(**filters)"},{"line_number":101,"context_line":"        services \u003d [(service.to_dict() if hasattr(service, \u0027to_dict\u0027)"},{"line_number":102,"context_line":"                    else service) for service in services]"},{"line_number":103,"context_line":"        self.exit_json(changed\u003dFalse, openstack_compute_services\u003dservices)"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ed53d83a_e782fde5","line":101,"in_reply_to":"be9cee87_3032b6b9","updated":"2022-03-02 09:08:00.000000000","message":"Arx updated the docs, which is great 😊","commit_id":"8be375f567908178fbe0117a2e179ad9e33eda79"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"6102704f4a3d2a51c1c6a906d47b4a79f362045b","unresolved":true,"context_lines":[{"line_number":59,"context_line":"            description: The name of the host."},{"line_number":60,"context_line":"            returned: success"},{"line_number":61,"context_line":"            type: str"},{"line_number":62,"context_line":"        disabled_reason:"},{"line_number":63,"context_line":"            description: The reason why the service is disabled"},{"line_number":64,"context_line":"            returned: success"},{"line_number":65,"context_line":"            type: str"}],"source_content_type":"text/x-python","patch_set":4,"id":"266f50ad_5d778dc9","line":62,"updated":"2022-03-02 09:08:00.000000000","message":"Thanks for adding the docs on disabled_reason etc. This will break backwards compatibility, which is totally fine, just wanted to let you know:\n\nIn train its called disables_reason (s instead of d) and both is_forced_down \u0026 updated_at are not available.","commit_id":"7e224da672f414e2c552d1d7be9ad501f535f6b1"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"ee834afae1fe99322b3f017ead9faae8d28ec2eb","unresolved":false,"context_lines":[{"line_number":59,"context_line":"            description: The name of the host."},{"line_number":60,"context_line":"            returned: success"},{"line_number":61,"context_line":"            type: str"},{"line_number":62,"context_line":"        disabled_reason:"},{"line_number":63,"context_line":"            description: The reason why the service is disabled"},{"line_number":64,"context_line":"            returned: success"},{"line_number":65,"context_line":"            type: str"}],"source_content_type":"text/x-python","patch_set":4,"id":"f88ed6b2_16f80e65","line":62,"in_reply_to":"266f50ad_5d778dc9","updated":"2022-03-03 14:34:56.000000000","message":"Done","commit_id":"7e224da672f414e2c552d1d7be9ad501f535f6b1"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"6102704f4a3d2a51c1c6a906d47b4a79f362045b","unresolved":true,"context_lines":[{"line_number":111,"context_line":"            filters[\u0027host\u0027] \u003d host"},{"line_number":112,"context_line":"        services \u003d self.conn.compute.services(**filters)"},{"line_number":113,"context_line":"        # To keep it compatible when use to_dict, we pass the original_names"},{"line_number":114,"context_line":"        # argument to True here, and computed is set to False to drop Munch"},{"line_number":115,"context_line":"        # objects to be returned."},{"line_number":116,"context_line":"        services \u003d [(service.to_dict(computed\u003dFalse) if hasattr(service,"},{"line_number":117,"context_line":"                    \u0027to_dict\u0027) else service) for service in services]"}],"source_content_type":"text/x-python","patch_set":4,"id":"44bac7b2_bd18a40a","line":114,"updated":"2022-03-02 09:08:00.000000000","message":"original_names is not set here, please update comment ;)","commit_id":"7e224da672f414e2c552d1d7be9ad501f535f6b1"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"ee834afae1fe99322b3f017ead9faae8d28ec2eb","unresolved":false,"context_lines":[{"line_number":111,"context_line":"            filters[\u0027host\u0027] \u003d host"},{"line_number":112,"context_line":"        services \u003d self.conn.compute.services(**filters)"},{"line_number":113,"context_line":"        # To keep it compatible when use to_dict, we pass the original_names"},{"line_number":114,"context_line":"        # argument to True here, and computed is set to False to drop Munch"},{"line_number":115,"context_line":"        # objects to be returned."},{"line_number":116,"context_line":"        services \u003d [(service.to_dict(computed\u003dFalse) if hasattr(service,"},{"line_number":117,"context_line":"                    \u0027to_dict\u0027) else service) for service in services]"}],"source_content_type":"text/x-python","patch_set":4,"id":"276211b9_4a65e5b1","line":114,"in_reply_to":"44bac7b2_bd18a40a","updated":"2022-03-03 14:34:56.000000000","message":"Done","commit_id":"7e224da672f414e2c552d1d7be9ad501f535f6b1"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"6102704f4a3d2a51c1c6a906d47b4a79f362045b","unresolved":true,"context_lines":[{"line_number":113,"context_line":"        # To keep it compatible when use to_dict, we pass the original_names"},{"line_number":114,"context_line":"        # argument to True here, and computed is set to False to drop Munch"},{"line_number":115,"context_line":"        # objects to be returned."},{"line_number":116,"context_line":"        services \u003d [(service.to_dict(computed\u003dFalse) if hasattr(service,"},{"line_number":117,"context_line":"                    \u0027to_dict\u0027) else service) for service in services]"},{"line_number":118,"context_line":"        self.exit_json(changed\u003dFalse, openstack_compute_services\u003dservices)"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"54b6db32_3de20448","line":116,"updated":"2022-03-02 09:08:00.000000000","message":"hasattr check is not required because to_dict is available down to at least the Train / 0.36 release of the SDK. We decided to drop backwards compatibility anyway so we can go for clean code and drop workarounds :)","commit_id":"7e224da672f414e2c552d1d7be9ad501f535f6b1"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"ee834afae1fe99322b3f017ead9faae8d28ec2eb","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        # To keep it compatible when use to_dict, we pass the original_names"},{"line_number":114,"context_line":"        # argument to True here, and computed is set to False to drop Munch"},{"line_number":115,"context_line":"        # objects to be returned."},{"line_number":116,"context_line":"        services \u003d [(service.to_dict(computed\u003dFalse) if hasattr(service,"},{"line_number":117,"context_line":"                    \u0027to_dict\u0027) else service) for service in services]"},{"line_number":118,"context_line":"        self.exit_json(changed\u003dFalse, openstack_compute_services\u003dservices)"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"dcfe20ee_058b9d73","line":116,"in_reply_to":"54b6db32_3de20448","updated":"2022-03-03 14:34:56.000000000","message":"Done","commit_id":"7e224da672f414e2c552d1d7be9ad501f535f6b1"}]}
