)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"b7f4e172345488f9986a579a16d05f349212f00c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c2261638_ceda92d0","updated":"2025-01-24 07:49:55.000000000","message":"screenshots in https://imgur.com/a/https-review-opendev-org-c-openstack-watcher-dashboard-940103-JnBVY0Q","commit_id":"739e1ed5e39c28560ca05209ba659a7c795fbbf2"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"63f8186dde166db8f5bc7d4a08c36e14e92fefe9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"6d291861_0f91b610","updated":"2025-01-24 14:15:09.000000000","message":"LGTM, thanks Alfredo!","commit_id":"9cceb194eea8bcf09cc426520f9f8a5f911a5a2e"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"bc68a538aea339a7cdefdf7871e949c724ecdd23","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"7a4c33ac_4256444b","updated":"2025-02-03 17:43:50.000000000","message":"updating votes,thanks for the fix.","commit_id":"9cceb194eea8bcf09cc426520f9f8a5f911a5a2e"}],"watcher_dashboard/content/audits/tables.py":[{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"63f8186dde166db8f5bc7d4a08c36e14e92fefe9","unresolved":true,"context_lines":[{"line_number":84,"context_line":"    policy_rules \u003d ((\"infra-optim\", \"audit:delete\"),)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def allowed(self, request, audit):"},{"line_number":87,"context_line":"        return audit.state not in (\"ONGOING\", \"PENDING\")"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    @staticmethod"},{"line_number":90,"context_line":"    def action_present(count):"}],"source_content_type":"text/x-python","patch_set":3,"id":"2bcbed80_f743bcce","line":87,"range":{"start_line":87,"start_character":0,"end_line":87,"end_character":56},"updated":"2025-01-24 14:15:09.000000000","message":"this is now correct, based on [1], thanks!\n\n[1] https://github.com/openstack/watcher/blob/022d150d20e9acf8e5304c373b8a1654211a1053/watcher/objects/audit.py#L345","commit_id":"9cceb194eea8bcf09cc426520f9f8a5f911a5a2e"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"915f1f9bede047e80f9ea1c103937f3f58d65aec","unresolved":true,"context_lines":[{"line_number":84,"context_line":"    policy_rules \u003d ((\"infra-optim\", \"audit:delete\"),)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def allowed(self, request, audit):"},{"line_number":87,"context_line":"        return audit.state not in (\"ONGOING\", \"PENDING\")"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    @staticmethod"},{"line_number":90,"context_line":"    def action_present(count):"}],"source_content_type":"text/x-python","patch_set":3,"id":"fb041851_bb30a994","line":87,"range":{"start_line":87,"start_character":0,"end_line":87,"end_character":56},"in_reply_to":"2bcbed80_f743bcce","updated":"2025-01-24 17:31:25.000000000","message":"right, also documented in https://docs.openstack.org/watcher/latest/architecture.html#action-plan-state-machine","commit_id":"9cceb194eea8bcf09cc426520f9f8a5f911a5a2e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bea448d7c4ecd58e0ab3fe007be701886cefa7e2","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    policy_rules \u003d ((\"infra-optim\", \"audit:delete\"),)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def allowed(self, request, audit):"},{"line_number":87,"context_line":"        return audit.state not in (\"ONGOING\", \"PENDING\")"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    @staticmethod"},{"line_number":90,"context_line":"    def action_present(count):"}],"source_content_type":"text/x-python","patch_set":3,"id":"54d5fde1_7439bafa","line":87,"range":{"start_line":87,"start_character":0,"end_line":87,"end_character":56},"in_reply_to":"fb041851_bb30a994","updated":"2025-01-27 13:46:28.000000000","message":"Acknowledged","commit_id":"9cceb194eea8bcf09cc426520f9f8a5f911a5a2e"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"63f8186dde166db8f5bc7d4a08c36e14e92fefe9","unresolved":true,"context_lines":[{"line_number":112,"context_line":"    policy_rules \u003d ((\"infra-optim\", \"audit:update\"),)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def allowed(self, request, audit):"},{"line_number":115,"context_line":"        return audit.state in (\"ONGOING\", \"PENDING\")"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    @staticmethod"},{"line_number":118,"context_line":"    def action_present(count):"}],"source_content_type":"text/x-python","patch_set":3,"id":"39c278ab_6c68170b","line":115,"range":{"start_line":115,"start_character":0,"end_line":115,"end_character":52},"updated":"2025-01-24 14:15:09.000000000","message":"+1","commit_id":"9cceb194eea8bcf09cc426520f9f8a5f911a5a2e"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"cb02b718ef8b20770a248eec703663b300234246","unresolved":true,"context_lines":[{"line_number":112,"context_line":"    policy_rules \u003d ((\"infra-optim\", \"audit:update\"),)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def allowed(self, request, audit):"},{"line_number":115,"context_line":"        return audit.state in (\"ONGOING\", \"PENDING\")"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    @staticmethod"},{"line_number":118,"context_line":"    def action_present(count):"}],"source_content_type":"text/x-python","patch_set":3,"id":"d902ca8b_b30db0e7","line":115,"range":{"start_line":115,"start_character":0,"end_line":115,"end_character":52},"in_reply_to":"39c278ab_6c68170b","updated":"2025-01-27 07:35:27.000000000","message":"how about \u0027SUSPENDED\u0027 like i ran it, then i suspended it then i want to cancel it.\n\n[EDIT]: ok i think the scenario i described you delete it directly after suspending, no need to cancel","commit_id":"9cceb194eea8bcf09cc426520f9f8a5f911a5a2e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bea448d7c4ecd58e0ab3fe007be701886cefa7e2","unresolved":true,"context_lines":[{"line_number":112,"context_line":"    policy_rules \u003d ((\"infra-optim\", \"audit:update\"),)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def allowed(self, request, audit):"},{"line_number":115,"context_line":"        return audit.state in (\"ONGOING\", \"PENDING\")"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    @staticmethod"},{"line_number":118,"context_line":"    def action_present(count):"}],"source_content_type":"text/x-python","patch_set":3,"id":"a0963d0b_a9467cde","line":115,"range":{"start_line":115,"start_character":0,"end_line":115,"end_character":52},"in_reply_to":"d2062185_3d48c4f1","updated":"2025-01-27 13:46:28.000000000","message":"SUSPENDED is the state that a continuous audit is meant to enter if you pause it I believe.\n\nits interesting that you cant cancel an suspended audit but i guess they expect that you will just archive it in that state\n\nhttps://docs.openstack.org/api-ref/resource-optimization/#cancel-audit","commit_id":"9cceb194eea8bcf09cc426520f9f8a5f911a5a2e"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"22fee83028d4fa43f714c59c4c879142b66fc68c","unresolved":true,"context_lines":[{"line_number":112,"context_line":"    policy_rules \u003d ((\"infra-optim\", \"audit:update\"),)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def allowed(self, request, audit):"},{"line_number":115,"context_line":"        return audit.state in (\"ONGOING\", \"PENDING\")"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    @staticmethod"},{"line_number":118,"context_line":"    def action_present(count):"}],"source_content_type":"text/x-python","patch_set":3,"id":"efa39b10_b00f5bb4","line":115,"range":{"start_line":115,"start_character":0,"end_line":115,"end_character":52},"in_reply_to":"d902ca8b_b30db0e7","updated":"2025-01-27 12:07:41.000000000","message":"What is \"SUSPENDED\" status?, I can\u0027t find it in https://docs.openstack.org/watcher/latest/architecture.html#action-plan-state-machine","commit_id":"9cceb194eea8bcf09cc426520f9f8a5f911a5a2e"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"86b8275dcc906852ab72583670869632265a3456","unresolved":true,"context_lines":[{"line_number":112,"context_line":"    policy_rules \u003d ((\"infra-optim\", \"audit:update\"),)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def allowed(self, request, audit):"},{"line_number":115,"context_line":"        return audit.state in (\"ONGOING\", \"PENDING\")"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    @staticmethod"},{"line_number":118,"context_line":"    def action_present(count):"}],"source_content_type":"text/x-python","patch_set":3,"id":"d2062185_3d48c4f1","line":115,"range":{"start_line":115,"start_character":0,"end_line":115,"end_character":52},"in_reply_to":"efa39b10_b00f5bb4","updated":"2025-01-27 12:09:47.000000000","message":"forget, the right link is https://docs.openstack.org/watcher/latest/architecture.html#audit-state-machine and SUSPENDED really exist. As you said, from Suspended, the audit can be removed, not cancelled.","commit_id":"9cceb194eea8bcf09cc426520f9f8a5f911a5a2e"}]}
