コード例 #1
0
ファイル: user.py プロジェクト: aflick2486/grr
    def InitFromAff4Object(self, approval_obj, approval_subject_obj=None):
        if not approval_subject_obj:
            approval_subject_obj = aff4.FACTORY.Open(
                approval_obj.Get(approval_obj.Schema.SUBJECT),
                aff4_type=implementation.GRRHunt,
                token=approval_obj.token)
        self.subject = api_hunt.ApiHunt().InitFromAff4Object(
            approval_subject_obj, with_full_summary=True)

        result = _InitApiApprovalFromAff4Object(self, approval_obj)

        original_object = approval_subject_obj.runner_args.original_object
        if original_object.object_type == "FLOW_REFERENCE":
            urn = original_object.flow_reference.ToFlowURN()
            original_flow = aff4.FACTORY.Open(urn,
                                              aff4_type=flow.GRRFlow,
                                              token=approval_obj.token)
            result.copied_from_flow = api_flow.ApiFlow().InitFromAff4Object(
                original_flow, flow_id=original_flow.urn.Basename())
        elif original_object.object_type == "HUNT_REFERENCE":
            urn = original_object.hunt_reference.ToHuntURN()
            original_hunt = aff4.FACTORY.Open(urn,
                                              aff4_type=implementation.GRRHunt,
                                              token=approval_obj.token)
            result.copied_from_hunt = api_hunt.ApiHunt().InitFromAff4Object(
                original_hunt, with_full_summary=True)

        return result
コード例 #2
0
    def testDoesNothingIfArgsHaveNoChanges(self):
        before = hunt_plugin.ApiHunt().InitFromAff4Object(
            aff4.FACTORY.Open(self.hunt.urn, token=self.token))

        self.handler.Handle(self.args, token=self.token)

        after = hunt_plugin.ApiHunt().InitFromAff4Object(
            aff4.FACTORY.Open(self.hunt.urn, token=self.token))

        self.assertEqual(before, after)
コード例 #3
0
    def testDoesNotModifyHuntIfStateChangeFails(self):
        with self.assertRaises(hunt_plugin.InvalidHuntStateError):
            self.args.client_limit = 42
            self.args.state = "COMPLETED"
            self.handler.Handle(self.args, token=self.token)

        after = hunt_plugin.ApiHunt().InitFromAff4Object(
            aff4.FACTORY.Open(self.hunt.urn, token=self.token))
        self.assertNotEqual(after.client_limit, 42)
コード例 #4
0
ファイル: user.py プロジェクト: vishvega/grr
    def InitFromAff4Object(self, approval_obj, approval_subject_obj=None):
        if not approval_subject_obj:
            approval_subject_obj = aff4.FACTORY.Open(
                approval_obj.Get(approval_obj.Schema.SUBJECT),
                aff4_type=implementation.GRRHunt,
                token=approval_obj.token)
        self.subject = api_hunt.ApiHunt().InitFromAff4Object(
            approval_subject_obj)

        return _InitApiApprovalFromAff4Object(self, approval_obj)
コード例 #5
0
    def testModifiesHuntCorrectly(self):
        self.args.client_rate = 100
        self.args.client_limit = 42
        self.args.expires = rdfvalue.RDFDatetime().FromSecondsFromEpoch(42)

        self.handler.Handle(self.args, token=self.token)

        after = hunt_plugin.ApiHunt().InitFromAff4Object(
            aff4.FACTORY.Open(self.hunt.urn, token=self.token))
        self.assertEqual(after.client_rate, 100)
        self.assertEqual(after.client_limit, 42)
        self.assertEqual(after.expires,
                         rdfvalue.RDFDatetime().FromSecondsFromEpoch(42))