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

---
 agent_based/checkpoint_vsx_system.py |   9 +++++----
 checkpoint_vsx_system.mkp            | Bin 5564 -> 5533 bytes
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/agent_based/checkpoint_vsx_system.py b/agent_based/checkpoint_vsx_system.py
index 92386e5..0ae62e0 100644
--- a/agent_based/checkpoint_vsx_system.py
+++ b/agent_based/checkpoint_vsx_system.py
@@ -87,7 +87,7 @@
 # }
 #
 
-import re
+import ipaddress
 import time
 from dataclasses import dataclass
 from typing import List, Dict, Optional, Tuple
@@ -189,12 +189,13 @@ 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}')
-        if ipv4.match(vsx.vsxStatusMainIP):
+        try:
+            ipaddress.ip_address(vsx.vsxStatusMainIP)
             yield Result(state=State.OK, summary=f'Main IP: {vsx.vsxStatusMainIP}')
-        else:
+        except ValueError:
             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 881a9b058643bae572bc85d3bf418bb0e53d52cf..0ff7802844a357434be58fbf2dd9f32fe56a1629 100644
GIT binary patch
delta 5460
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
KvUpJd$N&HXdBg<(

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

-- 
GitLab