Пример #1
0
  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)
Пример #2
0
    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)
Пример #3
0
    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)
Пример #4
0
  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)