docs: def SetWriteBack(self, filename):
      """Sets the config file which will receive any modifications.
  
      The main config file can be made writable, but directing all Set()
      operations into a secondary location. This secondary location will
      receive any updates and will override the options for this file.
  
      Args:
        filename: A filename which will receive updates. The file is parsed first
          and merged into the raw data from this object.
      """
      try:
        self.writeback = self.LoadSecondaryConfig(filename)
        self.MergeData(self.writeback.RawData(), self.writeback_data)
      except IOError as e:
        # This means that we probably aren't installed correctly.
        logging.error("Unable to read writeback file: %s", e)
        return
      except Exception as we:  # pylint: disable=broad-except
        # Could be yaml parse error, could be some malformed parameter. Move the
        # writeback file so that we start in a clean state next run
        if os.path.exists(filename):
          try:
            b = filename + ".bak"
            os.rename(filename, b)
            logging.warning("Broken writeback (%s) renamed to: %s", we, b)
          except Exception as e:  # pylint: disable=broad-except
            logging.error("Unable to rename broken writeback: %s", e)
        raise we
      logging.debug("Configuration writeback is set to %s", filename)