Upgrade Actions

There are 4 levels of upgrade actions that can be applied to items.

  • Reserialization with existing stored values.
  • State discovery: current / goal.
  • Item ensure.
  • Replacement (clean and ensure) required.

The following table shows what is required for ensuring an environment to be in sync with the change. If multiple changes are involved, then the highest level of upgrade action needs to be applied to the environment for params and state, and the environment to be in sync, i.e. max(upgrade_actions).

Notes:

  • "Data" refers to an item's Params, State, or StateDiff.

  • Apply is associated with params, state, and diff.

    apply_clean needs to know state_clean based on the parameters used to compute state_goal at the time of the previous apply_goal.

  • "Predecessor action" means what upgrade action is needed for this item, given a predecessor has had action applied to it. In other words, the change for an item can imply an upgrade action for successors.

ChangeUpgrade action
Param valueapply_goal
Data type field renamereserialization
Data type field additionstate_discovery
Data type field removalstate_discovery
Data type field modificationapply_goal
Flow item additionapply_goal
Flow item removalapply_clean
Flow item replacementapply_clean, apply_goal
Predecessor replacement, Edge::Linkapply_goal
Predecessor replacement, Edge::Containsapply_clean, apply_goal
Predecessor addition / modificationapply_goal (in case of update)
Predecessor removalapply_clean (successor first)