Skip actions automatically based on pre_condition results
This patch is implementing skipping automatically actions based on the result of action pre_condition method. This will allow to manage properly situations as migration actions for vms which does not longer exist. This patch includes: - Adding a new state SKIPPED to the Action objects. - Add a new Exception ActionSkipped. An action which raises it from the pre_condition execution is moved to SKIPPED state. - pre_condition will not be executed for any action in SKIPPED state. - execute will not be executed for any action in SKIPPED or FAILED state. - post_condition will not be executed for any action in SKIPPED state. - moving transition to ONGOING from pre_condition to execute. That means that actions raising ActionSkipped will move from PENDING to SKIPPED while actions raising any other Exception will move from PENDING to FAILED. - Adding information on action failed or skipped state to the `status_message` field. - Adding a new option to the testing action nop to simulate skipping on pre_condition, so that we can easily test it. Implements: blueprint add-skip-actions Assisted-By: Cursor (claude-4-sonnet) Change-Id: I59cb4c7006c7c3bcc5ff2071886d3e2929800f9e Signed-off-by: Alfredo Moralejo <amoralej@redhat.com>
This commit is contained in:
@@ -23,6 +23,9 @@ following:
|
||||
|
||||
- **PENDING** : the ``Action`` has not been executed yet by the
|
||||
``Watcher Applier``.
|
||||
- **SKIPPED** : the ``Action`` will not be executed because a predefined
|
||||
skipping condition is found by ``Watcher Applier`` or is explicitly
|
||||
skipped by the ``Administrator``.
|
||||
- **ONGOING** : the ``Action`` is currently being processed by the
|
||||
``Watcher Applier``.
|
||||
- **SUCCEEDED** : the ``Action`` has been executed successfully
|
||||
@@ -152,4 +155,4 @@ Response
|
||||
**Example JSON representation of an Action:**
|
||||
|
||||
.. literalinclude:: samples/actions-show-response.json
|
||||
:language: javascript
|
||||
:language: javascript
|
||||
|
||||
Reference in New Issue
Block a user