fix: normalize live verify peer filters
Some checks failed
ci/woodpecker/push/woodpecker Pipeline was canceled
Some checks failed
ci/woodpecker/push/woodpecker Pipeline was canceled
This commit is contained in:
@@ -55,6 +55,24 @@ class VehicleIngestLiveVerifyTest(unittest.TestCase):
|
|||||||
self.assertIn("ts >= '2026-06-29 00:00:00'", sql)
|
self.assertIn("ts >= '2026-06-29 00:00:00'", sql)
|
||||||
self.assertIn("ts <= '2026-06-29 23:59:59'", sql)
|
self.assertIn("ts <= '2026-06-29 23:59:59'", sql)
|
||||||
|
|
||||||
|
def test_gb32960_peer_filter_treats_plain_ip_as_contains_pattern(self):
|
||||||
|
sql = live_verify.gb32960_platform_login_count_sql(
|
||||||
|
date_from="2026-06-29 00:00:00",
|
||||||
|
date_to="2026-06-29 23:59:59",
|
||||||
|
peer_like="115.29.187.205",
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertIn("peer LIKE '%115.29.187.205%'", sql)
|
||||||
|
|
||||||
|
def test_gb32960_peer_filter_preserves_explicit_like_pattern(self):
|
||||||
|
sql = live_verify.gb32960_platform_login_count_sql(
|
||||||
|
date_from="2026-06-29 00:00:00",
|
||||||
|
date_to="2026-06-29 23:59:59",
|
||||||
|
peer_like="115.29.187.%",
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertIn("peer LIKE '115.29.187.%'", sql)
|
||||||
|
|
||||||
def test_jt808_location_sql_uses_dedicated_location_stable_without_protocol_filter(self):
|
def test_jt808_location_sql_uses_dedicated_location_stable_without_protocol_filter(self):
|
||||||
sql = live_verify.jt808_location_count_sql(
|
sql = live_verify.jt808_location_count_sql(
|
||||||
date_from="2026-06-29 00:00:00",
|
date_from="2026-06-29 00:00:00",
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ def jt808_location_count_sql(date_from: str, date_to: str) -> str:
|
|||||||
def gb32960_platform_login_count_sql(date_from: str, date_to: str, peer_like: str = "") -> str:
|
def gb32960_platform_login_count_sql(date_from: str, date_to: str, peer_like: str = "") -> str:
|
||||||
filters = ["protocol = 'GB32960'", "message_id = 5"]
|
filters = ["protocol = 'GB32960'", "message_id = 5"]
|
||||||
if peer_like:
|
if peer_like:
|
||||||
filters.append("peer LIKE " + tdengine_smoke.sql_literal(peer_like))
|
filters.append("peer LIKE " + tdengine_smoke.sql_literal(peer_like_pattern(peer_like)))
|
||||||
return count_sql("raw_frames", filters, date_from, date_to)
|
return count_sql("raw_frames", filters, date_from, date_to)
|
||||||
|
|
||||||
|
|
||||||
@@ -71,14 +71,14 @@ def gb32960_vehicle_realtime_count_sql(date_from: str, date_to: str, peer_like:
|
|||||||
"vin NOT LIKE 'LTEST%'",
|
"vin NOT LIKE 'LTEST%'",
|
||||||
]
|
]
|
||||||
if peer_like:
|
if peer_like:
|
||||||
filters.append("peer LIKE " + tdengine_smoke.sql_literal(peer_like))
|
filters.append("peer LIKE " + tdengine_smoke.sql_literal(peer_like_pattern(peer_like)))
|
||||||
return count_sql("raw_frames", filters, date_from, date_to)
|
return count_sql("raw_frames", filters, date_from, date_to)
|
||||||
|
|
||||||
|
|
||||||
def latest_gb32960_platform_raw_uri_sql(date_from: str, date_to: str, peer_like: str = "") -> str:
|
def latest_gb32960_platform_raw_uri_sql(date_from: str, date_to: str, peer_like: str = "") -> str:
|
||||||
filters = ["protocol = 'GB32960'", "message_id = 5", "raw_uri <> ''"]
|
filters = ["protocol = 'GB32960'", "message_id = 5", "raw_uri <> ''"]
|
||||||
if peer_like:
|
if peer_like:
|
||||||
filters.append("peer LIKE " + tdengine_smoke.sql_literal(peer_like))
|
filters.append("peer LIKE " + tdengine_smoke.sql_literal(peer_like_pattern(peer_like)))
|
||||||
where = list(filters)
|
where = list(filters)
|
||||||
if date_from:
|
if date_from:
|
||||||
where.append("ts >= " + tdengine_smoke.sql_literal(date_from))
|
where.append("ts >= " + tdengine_smoke.sql_literal(date_from))
|
||||||
@@ -87,6 +87,13 @@ def latest_gb32960_platform_raw_uri_sql(date_from: str, date_to: str, peer_like:
|
|||||||
return "SELECT raw_uri FROM raw_frames WHERE " + " AND ".join(where) + " ORDER BY ts DESC LIMIT 1"
|
return "SELECT raw_uri FROM raw_frames WHERE " + " AND ".join(where) + " ORDER BY ts DESC LIMIT 1"
|
||||||
|
|
||||||
|
|
||||||
|
def peer_like_pattern(value: str) -> str:
|
||||||
|
value = value.strip()
|
||||||
|
if "%" in value or "_" in value:
|
||||||
|
return value
|
||||||
|
return "%" + value + "%"
|
||||||
|
|
||||||
|
|
||||||
def evaluate_counts(counts: dict[str, int], thresholds: Thresholds) -> list[Check]:
|
def evaluate_counts(counts: dict[str, int], thresholds: Thresholds) -> list[Check]:
|
||||||
checks = [
|
checks = [
|
||||||
threshold_check(
|
threshold_check(
|
||||||
|
|||||||
Reference in New Issue
Block a user