)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5d87d449ebb456edd22b6ddfc940688f24908ee6","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix missing watcher_workflow_engines.taskflow section"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"... caused by AttributeError."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Closes-Bug: #2121286"},{"line_number":12,"context_line":"Change-Id: I52bab27afdc96d8ce2d9733316737c3aa505f5fe"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"4801e55c_6f4ac28e","line":9,"updated":"2025-08-24 13:09:22.000000000","message":"i think the actual fix would be to ensure they are registered i.e\n\nfrom watcher import objects\nobjects.register_all()\n\nperhaps here \nhttps://github.com/openstack/watcher/blob/master/watcher/conf/__init__.py#L19\nalthough nova does not need to do that.\n\nso perhaspe we shoudl remove the module level constant and move it to the state class and refactor the code to refelct that instead.","commit_id":"10404dca9f6006bb8b135cbf732502f869fe5f6f"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"715dbefe8b76c787f55fd192a116f8e4a9f962a2","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix missing watcher_workflow_engines.taskflow section"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"... caused by AttributeError."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Closes-Bug: #2121286"},{"line_number":12,"context_line":"Change-Id: I52bab27afdc96d8ce2d9733316737c3aa505f5fe"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"aa597b5d_8bed9a57","line":9,"in_reply_to":"4801e55c_6f4ac28e","updated":"2025-08-24 13:59:47.000000000","message":"That was my initial plan but I didn\u0027t do it due to potential circular dependency, but the alternative approach you proposed makes clear sense so I followed it.","commit_id":"10404dca9f6006bb8b135cbf732502f869fe5f6f"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1d06cd73e71be73d248e44e44a32e4387bfc76fd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"0506416c_42f2a3af","updated":"2025-08-24 12:55:30.000000000","message":"so in the test code we have\n```\nfrom watcher import objects  # noqa E402\n\n# NOTE(comstud): Make sure we have all of the objects loaded. We do this\n# at module import time, because we may be using mock decorators in our\n# tests that run at import time.\nobjects.register_all()\n```\n\nhttps://github.com/openstack/watcher/blob/master/watcher/tests/__init__.py#L31-L36\n\ni think to work aroudn this.\n\n\nfrom the bug you filed https://bugs.launchpad.net/watcher/+bug/2121286\nyou said this happens \"due to missing register function call.\"\n\nbut your not actully fixing that so this does nto really close the bug.","commit_id":"10404dca9f6006bb8b135cbf732502f869fe5f6f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"4b0ee4c339d61caacc9b48095ee869a1b92ecd9a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"fa9a5dad_2bda8d4d","updated":"2025-08-24 14:03:41.000000000","message":"+2 is mainly assuming ci passes.\n\nim partly wondering if we shoudl have a new job or perhaps alter one of the existing jobs to  use the oslo config generator to prevent regressions.\n\neffectily im wondering if we shoudl modify one of the docs jobs to also build the same config","commit_id":"1a87abc666b0afb4627a551ff22c57cc53eeb08d"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"1c46866bff5b88656328e488ebbd6b4f738d1f1b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"813d1742_c9ef9676","updated":"2025-08-26 11:58:22.000000000","message":"Thanks Takashi, this fix LGTM. Just checking the merge order with other patches before W+1","commit_id":"1a87abc666b0afb4627a551ff22c57cc53eeb08d"}],"watcher/applier/workflow_engine/base.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5d87d449ebb456edd22b6ddfc940688f24908ee6","unresolved":true,"context_lines":[{"line_number":41,"context_line":"    CANCEL_STATE \u003d [objects.action_plan.State.CANCELLING,"},{"line_number":42,"context_line":"                    objects.action_plan.State.CANCELLED]"},{"line_number":43,"context_line":"except AttributeError:"},{"line_number":44,"context_line":"    CANCEL_STATE \u003d []"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"class BaseWorkFlowEngine(loadable.Loadable, metaclass\u003dabc.ABCMeta):"}],"source_content_type":"text/x-python","patch_set":1,"id":"8582b755_ded1a034","line":44,"updated":"2025-08-24 13:09:22.000000000","message":"thinking about it it might be better to move this constant to the state classs\n\nand call it CANCEL_STATES\n\nhttps://github.com/openstack/watcher/blob/master/watcher/objects/action_plan.py#L90\n\nusing  objects.action.State.SUCCEEDED below does not seam to be a probel so we can repalce the usages of CANCEL_STATE below with  objects.action.State.CANCEL_SATES","commit_id":"10404dca9f6006bb8b135cbf732502f869fe5f6f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"563b4874eaa4eff3add4abb54c9fa605ba9fc2fb","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    CANCEL_STATE \u003d [objects.action_plan.State.CANCELLING,"},{"line_number":42,"context_line":"                    objects.action_plan.State.CANCELLED]"},{"line_number":43,"context_line":"except AttributeError:"},{"line_number":44,"context_line":"    CANCEL_STATE \u003d []"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"class BaseWorkFlowEngine(loadable.Loadable, metaclass\u003dabc.ABCMeta):"}],"source_content_type":"text/x-python","patch_set":1,"id":"81fba715_4f3b1633","line":44,"in_reply_to":"8582b755_ded1a034","updated":"2025-08-24 14:00:04.000000000","message":"Done","commit_id":"10404dca9f6006bb8b135cbf732502f869fe5f6f"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"715dbefe8b76c787f55fd192a116f8e4a9f962a2","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    CANCEL_STATE \u003d [objects.action_plan.State.CANCELLING,"},{"line_number":42,"context_line":"                    objects.action_plan.State.CANCELLED]"},{"line_number":43,"context_line":"except AttributeError:"},{"line_number":44,"context_line":"    CANCEL_STATE \u003d []"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"class BaseWorkFlowEngine(loadable.Loadable, metaclass\u003dabc.ABCMeta):"}],"source_content_type":"text/x-python","patch_set":1,"id":"39421ac1_dac3a774","line":44,"in_reply_to":"8582b755_ded1a034","updated":"2025-08-24 13:59:47.000000000","message":"Yeah that makes sense.","commit_id":"10404dca9f6006bb8b135cbf732502f869fe5f6f"}]}
