From fca1551ae70699bbc6df72ca5e71ea98b95856ac Mon Sep 17 00:00:00 2001
From: "th.l" <thl-cmk@outlook.com>
Date: Fri, 24 Sep 2021 19:42:34 +0200
Subject: [PATCH] update project

---
 agent_based/checkpoint_vsx_system.py |   8 +++++++-
 checkpoint_vsx_system.mkp            | Bin 5473 -> 5564 bytes
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/agent_based/checkpoint_vsx_system.py b/agent_based/checkpoint_vsx_system.py
index ffaec84..92386e5 100644
--- a/agent_based/checkpoint_vsx_system.py
+++ b/agent_based/checkpoint_vsx_system.py
@@ -20,6 +20,7 @@
 # 2021-09-21: changed graph definition for packets graph to stack
 # 2021-09-24: changed graph definition for connections graph to make it scale with
 #             the active connections (suggested by raulcurro[at]gmail[dot]com)
+#             moved Main IP to details, if it is not an IPv4 address
 #
 # snmpwalk sample
 #
@@ -86,6 +87,7 @@
 # }
 #
 
+import re
 import time
 from dataclasses import dataclass
 from typing import List, Dict, Optional, Tuple
@@ -187,8 +189,12 @@ def check_checkpoint_vsx_system(item, params, section: Dict[str, CheckpointVsx])
         yield Result(state=State(params['state_sic_not_established']), notice='SIC not established')
 
     if vsx.vsxStatusVsType.lower() in ['virtual system', 'vsx gateway']:
+        ipv4 = re.compile('^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}')
         yield Result(state=State.OK, notice=f'System name: {item}')
-        yield Result(state=State.OK, summary=f'Main IP: {vsx.vsxStatusMainIP}')
+        if ipv4.match(vsx.vsxStatusMainIP):
+            yield Result(state=State.OK, summary=f'Main IP: {vsx.vsxStatusMainIP}')
+        else:
+            yield Result(state=State.OK, notice=f'Main IP: {vsx.vsxStatusMainIP}')
         yield Result(state=State.OK, summary=f'VS ID: {vsx.vsxStatusVSId}',
                      details=f'Virtual system ID: {vsx.vsxStatusVSId}')
         yield Result(state=State.OK, notice=f'System type: {vsx.vsxStatusVsType}')
diff --git a/checkpoint_vsx_system.mkp b/checkpoint_vsx_system.mkp
index 006c6c9f50cdbde8c77afe5b78330e910451ce97..881a9b058643bae572bc85d3bf418bb0e53d52cf 100644
GIT binary patch
delta 5475
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
ZlOPo|lQ0z$4g9s?{{WW;er5p30084g%Vq!o

delta 5381
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

-- 
GitLab