Execute all actions, throwing an ExecutionException on failure.

        Catch the ExecutionException and call rollback() to rollback.

def execute(self):
        """Execute all actions, throwing an ExecutionException on failure.

        Catch the ExecutionException and call rollback() to rollback.
        """
        self._state_machine.transition_to_execute()
        for action in self._actions:
            self._executed_actions.append(action)
            self.execute_with_retries(action, lambda a: a.execute())
        self._state_machine.transition_to_execute_complete()