code: def rollback(self, number=0):
          
          if number < 0:
              raise pyPluribus.exceptions.RollbackError("Please provide a positive number to rollback to!")
          available_configs = len(self._config_history)
          max_rollbacks = available_configs - 2
          if max_rollbacks < 0:
              raise pyPluribus.exceptions.RollbackError("Cannot rollback: \
                  not enough configration history available!")
          if max_rollbacks > 0 and number > max_rollbacks:
              raise pyPluribus.exceptions.RollbackError("Cannot rollback more than {cfgs} configurations!\
                  ".format(cfgs=max_rollbacks))
          config_location = 1  # will load the initial config worst case (user never commited, but wants to discard)
          if max_rollbacks > 0:  # in case of previous commit(s) will be able to load a specific configuration
              config_location = available_configs - number - 1  # stored in location len() - rollabck_nb - 1
              # covers also the case of discard uncommitted changes (rollback 0)
          desired_config = self._config_history[config_location]
          try:
              self._upload_config_content(desired_config, rollbacked=True)
          except pyPluribus.exceptions.ConfigLoadError as loaderr:
              raise pyPluribus.exceptions.RollbackError("Cannot rollback: {err}".format(err=loaderr))
          del self._config_history[(config_location+1):]  # delete all newer configurations than the config rolled back
          self._last_working_config = desired_config
          self._committed = True
          self._config_changed = False
          return True
docs: Will rollback the configuration to a previous state.
          Can be called also when
  
          :param number: How many steps back in the configuration history must look back.
          :raise pyPluribus.exceptions.RollbackError: In case the configuration cannot be rolled back.