def Handle(self, args, token=None): crashes = data_store.REL_DB.ReadClientCrashInfoHistory(str(args.client_id)) total_count = len(crashes) result = api_call_handler_utils.FilterList( crashes, args.offset, count=args.count, filter_value=args.filter) return ApiListClientCrashesResult(items=result, total_count=total_count)
def Handle(self, args, token=None): if data_store.RelationalDBEnabled(): crashes = data_store.REL_DB.ReadClientCrashInfoHistory( str(args.client_id)) total_count = len(crashes) result = api_call_handler_utils.FilterList( crashes, args.offset, count=args.count, filter_value=args.filter) else: crashes = aff4_grr.VFSGRRClient.CrashCollectionForCID( args.client_id.ToClientURN()) total_count = len(crashes) result = api_call_handler_utils.FilterCollection( crashes, args.offset, count=args.count, filter_value=args.filter) return ApiListClientCrashesResult(items=result, total_count=total_count)
def testFiltersByFilterString(self): data = api_call_handler_utils.FilterList(self.l, 0, 0, "tmp-8") self.assertLen(data, 1) self.assertEqual(data[0].path, "/var/os/tmp-8")
def testRaisesOnNegativeCount(self): with self.assertRaises(ValueError): api_call_handler_utils.FilterList(self.l, 0, -10, None)
def testIngoresTooBigCount(self): data = api_call_handler_utils.FilterList(self.l, 0, 50, None) self.assertLen(data, 10) self.assertEqual(data[0].path, "/var/os/tmp-0") self.assertEqual(data[-1].path, "/var/os/tmp-9")
def testFiltersByOffsetAndCount(self): data = api_call_handler_utils.FilterList(self.l, 2, 5, None) self.assertLen(data, 5) self.assertEqual(data[0].path, "/var/os/tmp-2") self.assertEqual(data[-1].path, "/var/os/tmp-6")