def testUpdateClientsFromFleetspeak(self): client_id_1 = client_plugin.ApiClientId("C." + "1" * 16) client_id_2 = client_plugin.ApiClientId("C." + "2" * 16) client_id_3 = client_plugin.ApiClientId("C." + "3" * 16) clients = [ client_plugin.ApiClient(client_id=client_id_1, fleetspeak_enabled=True), client_plugin.ApiClient(client_id=client_id_2, fleetspeak_enabled=True), client_plugin.ApiClient(client_id=client_id_3, fleetspeak_enabled=False), ] conn = mock.MagicMock() conn.outgoing.ListClients.return_value = admin_pb2.ListClientsResponse( clients=[ admin_pb2.Client( client_id=fleetspeak_utils.GRRIDToFleetspeakID( client_id_1), last_contact_time=TSProtoFromString( "2018-01-01T00:00:01Z"), last_clock=TSProtoFromString("2018-01-01T00:00:02Z")), admin_pb2.Client( client_id=fleetspeak_utils.GRRIDToFleetspeakID( client_id_2), last_contact_time=TSProtoFromString( "2018-01-02T00:00:01Z"), last_clock=TSProtoFromString("2018-01-02T00:00:02Z")) ]) with mock.patch.object(fleetspeak_connector, "CONN", conn): client_plugin.UpdateClientsFromFleetspeak(clients) self.assertEqual(clients, [ client_plugin.ApiClient( client_id=client_id_1, fleetspeak_enabled=True, last_seen_at=rdfvalue.RDFDatetime.FromHumanReadable( "2018-01-01T00:00:01Z"), last_clock=rdfvalue.RDFDatetime.FromHumanReadable( "2018-01-01T00:00:02Z")), client_plugin.ApiClient( client_id=client_id_2, fleetspeak_enabled=True, last_seen_at=rdfvalue.RDFDatetime.FromHumanReadable( "2018-01-02T00:00:01Z"), last_clock=rdfvalue.RDFDatetime.FromHumanReadable( "2018-01-02T00:00:02Z")), client_plugin.ApiClient(client_id=client_id_3, fleetspeak_enabled=False), ])
def testUpdateFromFleetspeak(self): client_id_1 = client_plugin.ApiClientId("C." + "1" * 16) client_id_2 = client_plugin.ApiClientId("C." + "2" * 16) client_id_3 = client_plugin.ApiClientId("C." + "3" * 16) clients = [ client_plugin.ApiClient(client_id=client_id_1, fleetspeak_enabled=True), client_plugin.ApiClient(client_id=client_id_2, fleetspeak_enabled=True), client_plugin.ApiClient(client_id=client_id_3, fleetspeak_enabled=False), ] conn = mock.MagicMock() conn.outgoing.ListClients.return_value = admin_pb2.ListClientsResponse( clients=[ admin_pb2.Client( client_id=fleetspeak_utils.GRRIDToFleetspeakID( client_id_1), last_contact_time=timestamp_pb2.Timestamp(seconds=100000, nanos=50000000), last_clock=timestamp_pb2.Timestamp(seconds=100000, nanos=60000000), ), admin_pb2.Client( client_id=fleetspeak_utils.GRRIDToFleetspeakID( client_id_2), last_contact_time=timestamp_pb2.Timestamp(seconds=200000, nanos=50000000), last_clock=timestamp_pb2.Timestamp(seconds=200000, nanos=60000000), ) ]) with mock.patch.object(fleetspeak_connector, "CONN", conn): client_plugin._UpdateFromFleetspeak(clients) self.assertEqual(clients, [ client_plugin.ApiClient( client_id=client_id_1, fleetspeak_enabled=True, last_seen_at=rdfvalue.RDFDatetime(100000050), last_clock=rdfvalue.RDFDatetime(100000060)), client_plugin.ApiClient( client_id=client_id_2, fleetspeak_enabled=True, last_seen_at=rdfvalue.RDFDatetime(200000050), last_clock=rdfvalue.RDFDatetime(200000060)), client_plugin.ApiClient(client_id=client_id_3, fleetspeak_enabled=False), ])
def _CreateApiClient(self, platform): client_snapshot = self.SetupTestClientObject(0, system=platform) api_client = plugin_client.ApiClient() api_client.InitFromClientObject(client_snapshot) return api_client