def _ProcessRegistryKeySource(self, source):
    """Glob for paths in the registry."""
    keys = source.base_source.attributes.get("keys", [])
    if not keys:
      return

    interpolated_paths = artifact_utils.InterpolateListKbAttributes(
        input_list=keys,
        knowledge_base=self.knowledge_base,
        ignore_errors=self.ignore_interpolation_errors)

    glob_expressions = map(rdf_paths.GlobExpression, interpolated_paths)

    patterns = []
    for pattern in glob_expressions:
      patterns.extend(pattern.Interpolate(knowledge_base=self.knowledge_base))
    patterns.sort(key=len, reverse=True)

    file_finder_action = rdf_file_finder.FileFinderAction.Stat()
    request = rdf_file_finder.FileFinderArgs(
        paths=patterns,
        action=file_finder_action,
        follow_links=True,
        pathtype=rdf_paths.PathSpec.PathType.REGISTRY)
    action = vfs_file_finder.RegistryKeyFromClient

    yield action, request
def _ProcessRegistryKeySource ( self , source ) : keys = source . base_source . attributes . get ( "keys" , [ ] ) if not keys : return interpolated_paths = artifact_utils . InterpolateListKbAttributes ( input_list = keys , knowledge_base = self . knowledge_base , ignore_errors = self . ignore_interpolation_errors ) glob_expressions = map ( rdf_paths . GlobExpression , interpolated_paths ) patterns = [ ] for pattern in glob_expressions : patterns . extend ( pattern . Interpolate ( knowledge_base = self . knowledge_base ) ) patterns . sort ( key = len , reverse = True ) file_finder_action = rdf_file_finder . FileFinderAction . Stat ( ) request = rdf_file_finder . FileFinderArgs ( paths = patterns , action = file_finder_action , follow_links = True , pathtype = rdf_paths . PathSpec . PathType . REGISTRY ) action = vfs_file_finder . RegistryKeyFromClient yield action , request
Glob for paths in the registry.