Example #1
0
    def ParseFile(
        self,
        knowledge_base: rdf_client.KnowledgeBase,
        pathspec: rdf_paths.PathSpec,
        filedesc: IO[bytes],
    ) -> Iterator[rdf_config_file.NfsExport]:
        del knowledge_base  # Unused.
        del pathspec  # Unused.

        for entry in self._field_parser.ParseEntries(
                utils.ReadFileBytesAsUnicode(filedesc)):
            if not entry:
                continue
            result = rdf_config_file.NfsExport()
            result.share = entry[0]
            for field in entry[1:]:
                if field.startswith(("-", "(")):
                    result.defaults = field.strip("-()").split(",")
                else:
                    client = rdf_config_file.NfsClient()
                    cfg = field.split("(", 1)
                    host = cfg[0]
                    if len(cfg) > 1:
                        options = cfg[1]
                    else:
                        options = None
                    client.host = host
                    if options:
                        client.options = options.strip("()").split(",")
                    result.clients.append(client)
            yield result
Example #2
0
 def Parse(self, unused_stat, file_obj, unused_knowledge_base):
   for entry in self.ParseEntries(file_obj.read()):
     if not entry:
       continue
     result = rdf_config_file.NfsExport()
     result.share = entry[0]
     for field in entry[1:]:
       if field.startswith(("-", "(")):
         result.defaults = field.strip("-()").split(",")
       else:
         client = rdf_config_file.NfsClient()
         cfg = field.split("(", 1)
         host = cfg[0]
         if len(cfg) > 1:
           options = cfg[1]
         else:
           options = None
         client.host = host
         if options:
           client.options = options.strip("()").split(",")
         result.clients.append(client)
     yield result