mirror of
https://github.com/hansjone/netx.git
synced 2026-10-09 03:10:46 +08:00
fix(netx): parse space-separated net id from alarmkey
Support UME alarmkey values like "<net_id> <x> <y>" when deriving ne_id so current alarms can join inventory correctly. Add regression coverage for hash, csv, and space-delimited alarmkey formats. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
67f7e48597
commit
626bb2b02e
2 changed files with 9 additions and 0 deletions
|
|
@ -73,10 +73,14 @@ def _derive_ne_id_from_alarm(alarm: dict[str, Any]) -> str:
|
||||||
# Common UME formats observed:
|
# Common UME formats observed:
|
||||||
# 1) "<net_id>#<suffix>"
|
# 1) "<net_id>#<suffix>"
|
||||||
# 2) "<net_id>, <x>, <y>"
|
# 2) "<net_id>, <x>, <y>"
|
||||||
|
# 3) "<net_id> <x> <y>"
|
||||||
if "#" in alarm_key:
|
if "#" in alarm_key:
|
||||||
return _s(alarm_key.split("#", 1)[0])
|
return _s(alarm_key.split("#", 1)[0])
|
||||||
if "," in alarm_key:
|
if "," in alarm_key:
|
||||||
return _s(alarm_key.split(",", 1)[0])
|
return _s(alarm_key.split(",", 1)[0])
|
||||||
|
parts = [p for p in alarm_key.split() if p]
|
||||||
|
if len(parts) >= 2:
|
||||||
|
return _s(parts[0])
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -486,6 +486,7 @@ class UmeSyncServiceTests(unittest.TestCase):
|
||||||
def test_derive_ne_id_from_alarmkey_formats(self):
|
def test_derive_ne_id_from_alarmkey_formats(self):
|
||||||
alarm_hash = {"alarmkey": "00ceb960-1b62-478e-8303-0935ffea1d28#99010"}
|
alarm_hash = {"alarmkey": "00ceb960-1b62-478e-8303-0935ffea1d28#99010"}
|
||||||
alarm_csv = {"alarmkey": "00ceb960-1b62-478e-8303-0935ffea1d28, 4237, 79"}
|
alarm_csv = {"alarmkey": "00ceb960-1b62-478e-8303-0935ffea1d28, 4237, 79"}
|
||||||
|
alarm_space = {"alarmkey": "00ceb960-1b62-478e-8303-0935ffea1d28 4205 3588"}
|
||||||
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
_derive_ne_id_from_alarm(alarm_hash),
|
_derive_ne_id_from_alarm(alarm_hash),
|
||||||
|
|
@ -495,6 +496,10 @@ class UmeSyncServiceTests(unittest.TestCase):
|
||||||
_derive_ne_id_from_alarm(alarm_csv),
|
_derive_ne_id_from_alarm(alarm_csv),
|
||||||
"00ceb960-1b62-478e-8303-0935ffea1d28",
|
"00ceb960-1b62-478e-8303-0935ffea1d28",
|
||||||
)
|
)
|
||||||
|
self.assertEqual(
|
||||||
|
_derive_ne_id_from_alarm(alarm_space),
|
||||||
|
"00ceb960-1b62-478e-8303-0935ffea1d28",
|
||||||
|
)
|
||||||
|
|
||||||
def test_serialize_ume_alarm_raw_row_select_fields(self):
|
def test_serialize_ume_alarm_raw_row_select_fields(self):
|
||||||
alarm = UmeAlarmCurrent(
|
alarm = UmeAlarmCurrent(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue