def ExplainGlobExpression(
     self,
     args: api_flow.ApiExplainGlobExpressionArgs,
     context: Optional[api_call_context.ApiCallContext] = None,
 ) -> api_flow.ApiExplainGlobExpressionHandler:
     del args, context  # Unused.
     return api_flow.ApiExplainGlobExpressionHandler()
 def ExplainGlobExpression(
     self,
     args: api_flow.ApiExplainGlobExpressionArgs,
     token: Optional[access_control.ACLToken] = None
 ) -> api_flow.ApiExplainGlobExpressionHandler:
     del args, token  # Unused.
     return api_flow.ApiExplainGlobExpressionHandler()
Example #3
0
    def testHandlerUsesKnowledgeBase(self, db: abstract_db.Database):
        token = _CreateToken(db)
        client_id = db_test_utils.InitializeClient(db)

        snapshot = rdf_objects.ClientSnapshot()
        snapshot.client_id = client_id
        snapshot.knowledge_base.users = [rdf_client.User(homedir="/home/foo")]
        db.WriteClientSnapshot(snapshot)

        handler = flow_plugin.ApiExplainGlobExpressionHandler()
        args = flow_plugin.ApiExplainGlobExpressionArgs(
            example_count=2,
            client_id=client_id,
            glob_expression="%%users.homedir%%/foo")
        results = handler.Handle(args, token=token)
        self.assertEqual(list(results.components), [
            rdf_paths.GlobComponentExplanation(
                glob_expression="%%users.homedir%%", examples=["/home/foo"]),
            rdf_paths.GlobComponentExplanation(glob_expression="/foo",
                                               examples=[]),
        ])