Describe the enhancement:
The agent should be able to handle actions with a start_time and expiration attribute.
These attributes can be used to schedule an action to occur at a later date.
start_time determines when the action should start, and expiration is when it is valid until (if the action has not occured it should ack as failed/aborted).
The scheduled actions should be persisted to disk to provide some form of persistency.
pending actions may be cancelled with a new CANCEL action type that will specify a target_id value.
If the target_id action is scheduled it will be removed and the target_id action will be acked as failed/aborted.
Describe a specific use case for the enhancement or feature:
In order to support scheduled upgrades the agent needs the ability to execute actions it receives at a later data.
The expiration attribute is used so we can put an upper bound for when we want to start executing actions in order to provide a maintenance window.
Cancelling pending actions will be provided so operators can abort actions if needed.
Note that setting a hard bound on action execution (aborting actions in progress) may be possible, but is outside of the scope for this issue
Describe the enhancement:
The agent should be able to handle actions with a
start_timeandexpirationattribute.These attributes can be used to schedule an action to occur at a later date.
start_timedetermines when the action should start, andexpirationis when it is valid until (if the action has not occured it should ack as failed/aborted).The scheduled actions should be persisted to disk to provide some form of persistency.
pending actions may be cancelled with a new
CANCELaction type that will specify atarget_idvalue.If the
target_idaction is scheduled it will be removed and thetarget_idaction will be acked as failed/aborted.Describe a specific use case for the enhancement or feature:
In order to support scheduled upgrades the agent needs the ability to execute actions it receives at a later data.
The
expirationattribute is used so we can put an upper bound for when we want to start executing actions in order to provide a maintenance window.Cancelling pending actions will be provided so operators can abort actions if needed.
Note that setting a hard bound on action execution (aborting actions in progress) may be possible, but is outside of the scope for this issue