docs: def Initialize(self,
                   filename=None,
                   data=None,
                   fd=None,
                   reset=True,
                   must_exist=False,
                   parser=ConfigFileParser):
      """Initializes the config manager.
  
      This method is used to add more config options to the manager. The config
      can be given as one of the parameters as described in the Args section.
  
      Args:
        filename: The name of the configuration file to use.
        data: The configuration given directly as a long string of data.
        fd: A file descriptor of a configuration file.
        reset: If true, the previous configuration will be erased.
        must_exist: If true the data source must exist and be a valid
          configuration file, or we raise an exception.
        parser: The parser class to use (i.e. the format of the file). If not
          specified guess from the filename.
  
      Raises:
        RuntimeError: No configuration was passed in any of the parameters.
  
        ConfigFormatError: Raised when the configuration file is invalid or does
          not exist..
      """
      self.FlushCache()
      if reset:
        # Clear previous configuration.
        self.raw_data = collections.OrderedDict()
        self.writeback_data = collections.OrderedDict()
        self.writeback = None
        self.initialized = False
  
      if fd is not None:
        self.parser = self.LoadSecondaryConfig(parser=parser(fd=fd))
  
      elif filename is not None:
        self.parser = self.LoadSecondaryConfig(filename)
        if must_exist and not self.parser.parsed:
          raise ConfigFormatError("Unable to parse config file %s" % filename)
  
      elif data is not None:
        self.parser = self.LoadSecondaryConfig(parser=parser(data=data))
  
      elif must_exist:
        raise RuntimeError("Registry path not provided.")
  
      self.initialized = True