'Revert configuration to most recent finalized checkpoint.
Remove all changes (temporary and permanent) that have not been
finalized. This is useful to protect against crashes and other
execution interruptions.
:raises .errors.ReverterError: If unable to recover the configuration'

def recovery_routine(self):

    self.revert_temporary_config()
    if os.path.isdir(self.config.in_progress_dir):
        try:
            self._recover_checkpoint(self.config.in_progress_dir)
        except errors.ReverterError:
            logger.fatal('Incomplete    or    failed    recovery    for    IN_PROGRESS    checkpoint    -    %s', self.config.in_progress_dir)
            raise errors.ReverterError(('Incomplete    or    failed    recovery    for    IN_PROGRESS    checkpoint    -    %s' % self.config.in_progress_dir))
