def Run(self): client_id = self.SetupClient(0) client_mock = flow_test_lib.CrashClientMock(client_id) with test_lib.FakeTime(42): hunt_id = self.StartHunt(description="the hunt") with test_lib.FakeTime(45): self.AssignTasksToClients([client_id]) hunt_test_lib.TestHuntHelperWithMultipleMocks({client_id: client_mock}) crashes = data_store.REL_DB.ReadClientCrashInfoHistory(str(client_id)) crash = list(crashes)[0] replace = {hunt_id: "H:123456", str(crash.session_id): "<some session id>"} self.Check( "ListClientCrashes", args=client_plugin.ApiListClientCrashesArgs(client_id=client_id), replace=replace) self.Check( "ListClientCrashes", args=client_plugin.ApiListClientCrashesArgs( client_id=client_id, count=1), replace=replace) self.Check( "ListClientCrashes", args=client_plugin.ApiListClientCrashesArgs( client_id=client_id, offset=1, count=1), replace=replace)
def Run(self): client = self.SetupTestClientObject(0) client_id = client.client_id client_ids = [rdf_client.ClientURN(client_id)] client_mock = flow_test_lib.CrashClientMock( rdf_client.ClientURN(client_id), self.token) with test_lib.FakeTime(42): hunt_urn = self.StartHunt(description="the hunt") with test_lib.FakeTime(45): self.AssignTasksToClients(client_ids) hunt_test_lib.TestHuntHelperWithMultipleMocks( {client_id: client_mock}, False, self.token) crashes = data_store.REL_DB.ReadClientCrashInfoHistory(str(client_id)) crash = list(crashes)[0] replace = { hunt_urn.Basename(): "H:123456", str(crash.session_id): "<some session id>" } self.Check( "ListClientCrashes", args=client_plugin.ApiListClientCrashesArgs(client_id=client_id), replace=replace) self.Check("ListClientCrashes", args=client_plugin.ApiListClientCrashesArgs( client_id=client_id, count=1), replace=replace) self.Check("ListClientCrashes", args=client_plugin.ApiListClientCrashesArgs( client_id=client_id, offset=1, count=1), replace=replace)
def Run(self): if data_store.RelationalDBReadEnabled(): client = self.SetupTestClientObject(0) client_id = client.client_id client_ids = [rdf_client.ClientURN(client_id)] else: client_ids = self.SetupClients(1) client_id = client_ids[0].Basename() client_mock = flow_test_lib.CrashClientMock( rdf_client.ClientURN(client_id), self.token) with test_lib.FakeTime(42): with self.CreateHunt(description="the hunt") as hunt_obj: hunt_obj.Run() with test_lib.FakeTime(45): self.AssignTasksToClients(client_ids) hunt_test_lib.TestHuntHelperWithMultipleMocks( {client_id: client_mock}, False, self.token) if data_store.RelationalDBReadEnabled(): crashes = data_store.REL_DB.ReadClientCrashInfoHistory( unicode(client_id)) else: crashes = aff4_grr.VFSGRRClient.CrashCollectionForCID( rdf_client.ClientURN(client_id)) crash = list(crashes)[0] session_id = crash.session_id.Basename() replace = { hunt_obj.urn.Basename(): "H:123456", session_id: "H:11223344" } self.Check( "ListClientCrashes", args=client_plugin.ApiListClientCrashesArgs(client_id=client_id), replace=replace) self.Check("ListClientCrashes", args=client_plugin.ApiListClientCrashesArgs( client_id=client_id, count=1), replace=replace) self.Check("ListClientCrashes", args=client_plugin.ApiListClientCrashesArgs( client_id=client_id, offset=1, count=1), replace=replace)
def testClientMethodsAreAccessChecked(self): args = api_client.ApiInterrogateClientArgs(client_id=self.client_id) self.CheckMethodIsAccessChecked( self.router.InterrogateClient, "CheckClientAccess", args=args) args = api_client.ApiListClientCrashesArgs(client_id=self.client_id) self.CheckMethodIsAccessChecked( self.router.ListClientCrashes, "CheckClientAccess", args=args) args = api_client.ApiGetClientLoadStatsArgs(client_id=self.client_id) self.CheckMethodIsAccessChecked( self.router.GetClientLoadStats, "CheckClientAccess", args=args)