diff --git a/netx_api/ume_sync_service.py b/netx_api/ume_sync_service.py index dbded27..a487bbd 100644 --- a/netx_api/ume_sync_service.py +++ b/netx_api/ume_sync_service.py @@ -73,10 +73,14 @@ def _derive_ne_id_from_alarm(alarm: dict[str, Any]) -> str: # Common UME formats observed: # 1) "#" # 2) ", , " + # 3) " " if "#" in alarm_key: return _s(alarm_key.split("#", 1)[0]) if "," in alarm_key: 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 "" diff --git a/tests/test_ume_sync.py b/tests/test_ume_sync.py index 1a74453..24ef76e 100644 --- a/tests/test_ume_sync.py +++ b/tests/test_ume_sync.py @@ -486,6 +486,7 @@ class UmeSyncServiceTests(unittest.TestCase): def test_derive_ne_id_from_alarmkey_formats(self): alarm_hash = {"alarmkey": "00ceb960-1b62-478e-8303-0935ffea1d28#99010"} alarm_csv = {"alarmkey": "00ceb960-1b62-478e-8303-0935ffea1d28, 4237, 79"} + alarm_space = {"alarmkey": "00ceb960-1b62-478e-8303-0935ffea1d28 4205 3588"} self.assertEqual( _derive_ne_id_from_alarm(alarm_hash), @@ -495,6 +496,10 @@ class UmeSyncServiceTests(unittest.TestCase): _derive_ne_id_from_alarm(alarm_csv), "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): alarm = UmeAlarmCurrent(