From f72e11a81be11ef10bf32c9f3f7d34d3040078d0 Mon Sep 17 00:00:00 2001
From: thl-cmk <thl-cmk@outlook.com>
Date: Tue, 7 Sep 2021 20:04:47 +0000
Subject: [PATCH] Delete checkpoint_vsx.py

---
 agent_based/checkpoint_vsx.py | 259 ----------------------------------
 1 file changed, 259 deletions(-)
 delete mode 100644 agent_based/checkpoint_vsx.py

diff --git a/agent_based/checkpoint_vsx.py b/agent_based/checkpoint_vsx.py
deleted file mode 100644
index 878da36..0000000
--- a/agent_based/checkpoint_vsx.py
+++ /dev/null
@@ -1,259 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-#
-# License: GNU General Public License v2
-#
-# Author: thl-cmk[at]outlook[dot]com
-# URL   : https://thl-cmk.hopto.org
-# Date  : 2017-17-05
-#
-# Check Point vsx Cluster status
-#
-# Monitor status of virtual systems in Check Point vsx/vsls cluster
-#
-# 2018-08-03: changed snmp scan function
-# 2018-08-13: code cleanup, add metrics
-# 2020-06-08: changed snmp-scan function
-# 2021-09-06: rewritten for CMK 2.0
-#
-# ToDo: create WATO for discovery and check function,
-# if we discover other than 'virtual system' we need to adjust parse/check function
-#
-# snmpwalk sample
-#
-# .1.3.6.1.4.1.2620.1.16.22.1.1.1.3.0 = Gauge32: 2
-# .1.3.6.1.4.1.2620.1.16.22.1.1.2.3.0 = Gauge32: 2
-# .1.3.6.1.4.1.2620.1.16.22.1.1.3.3.0 = STRING: "HRI"
-# .1.3.6.1.4.1.2620.1.16.22.1.1.4.3.0 = STRING: "Virtual System"
-# .1.3.6.1.4.1.2620.1.16.22.1.1.5.3.0 = STRING: "10.140.1.3"
-# .1.3.6.1.4.1.2620.1.16.22.1.1.6.3.0 = STRING: "Standard"
-# .1.3.6.1.4.1.2620.1.16.22.1.1.7.3.0 = STRING: "Active"
-# .1.3.6.1.4.1.2620.1.16.22.1.1.8.3.0 = STRING: "Trust established"
-# .1.3.6.1.4.1.2620.1.16.22.1.1.9.3.0 = STRING: "Standby"
-# .1.3.6.1.4.1.2620.1.16.22.1.1.10.3.0 = Gauge32: 0
-#
-# .1.3.6.1.4.1.2620.1.16.23.1.1.2.3.0 = Gauge32: 40
-# .1.3.6.1.4.1.2620.1.16.23.1.1.3.3.0 = Gauge32: 864
-# .1.3.6.1.4.1.2620.1.16.23.1.1.4.3.0 = Gauge32: 14900
-# .1.3.6.1.4.1.2620.1.16.23.1.1.5.3.0 = STRING: "69459"
-# .1.3.6.1.4.1.2620.1.16.23.1.1.6.3.0 = STRING: "2405"
-# .1.3.6.1.4.1.2620.1.16.23.1.1.7.3.0 = STRING: "67054"
-# .1.3.6.1.4.1.2620.1.16.23.1.1.8.3.0 = STRING: "0"
-# .1.3.6.1.4.1.2620.1.16.23.1.1.9.3.0 = STRING: "4228862"
-# .1.3.6.1.4.1.2620.1.16.23.1.1.10.3.0 = STRING: "72445"
-# .1.3.6.1.4.1.2620.1.16.23.1.1.11.3.0 = STRING: "0"
-# .1.3.6.1.4.1.2620.1.16.23.1.1.12.3.0 = STRING: "7074"
-# .1.3.6.1.4.1.2620.1.16.23.1.1.13.3.0 = INTEGER: 0
-#
-import time
-from dataclasses import dataclass
-from typing import List, Dict, Optional, Tuple
-
-from cmk.base.plugins.agent_based.agent_based_api.v1 import (
-    register,
-    Service,
-    Result,
-    State,
-    SNMPTree,
-    all_of,
-    startswith,
-    any_of,
-    equals,
-    Metric,
-    get_value_store,
-    get_rate,
-    GetRateError,
-)
-from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import (
-    DiscoveryResult,
-    CheckResult,
-    StringTable,
-)
-
-
-@dataclass
-class CheckpointVsx:
-    vsxStatusVSId: str
-    vsxStatusVsType: str
-    vsxStatusMainIP: str
-    vsxStatusPolicyName: str
-    vsxStatusVsPolicyType: str
-    vsxStatusSicTrustState: str
-    vsxStatusHAState: str
-    vsxStatusVSWeight: str
-    vsxCountersConnNum: int
-    vsxCountersConnPeakNum: int
-    vsxCountersConnTableLimit: int
-    metrics_rate: List[Tuple[str, int]]
-
-
-def parse_checkpoint_vsx_system(string_table: StringTable) -> Optional[Dict[str, CheckpointVsx]]:
-    vsx_systems = {}
-    for entry in string_table:
-        try:
-            vsxStatusVSId, vsxStatusVsName, vsxStatusVsType, vsxStatusMainIP, vsxStatusPolicyName, vsxStatusVsPolicyType, \
-            vsxStatusSicTrustState, vsxStatusHAState, vsxStatusVSWeight, vsxCountersConnNum, vsxCountersConnPeakNum, \
-            vsxCountersConnTableLimit, vsxCountersPackets, vsxCountersDroppedTotal, vsxCountersAcceptedTotal, \
-            vsxCountersRejectedTotal, vsxCountersBytesAcceptedTotal, vsxCountersBytesDroppedTotal, \
-            vsxCountersBytesRejectedTotal, vsxCountersLoggedTotal = entry
-        except ValueError:
-            return
-        # if vsxStatusVsType.lower() in ['virtual system']:  # , 'vsx gateway', 'virtual switch', 'virtual router'
-        vsx_systems[vsxStatusVsName] = CheckpointVsx(
-            vsxStatusVSId=vsxStatusVSId,
-            vsxStatusVsType=vsxStatusVsType,
-            vsxStatusMainIP=vsxStatusMainIP,
-            vsxStatusPolicyName=vsxStatusPolicyName,
-            vsxStatusVsPolicyType=vsxStatusVsPolicyType,
-            vsxStatusSicTrustState=vsxStatusSicTrustState,
-            vsxStatusHAState=vsxStatusHAState,
-            vsxStatusVSWeight=vsxStatusVSWeight,
-            vsxCountersConnNum=int(vsxCountersConnNum),
-            vsxCountersConnPeakNum=int(vsxCountersConnPeakNum),
-            vsxCountersConnTableLimit=int(vsxCountersConnTableLimit),
-            metrics_rate=[
-                ('packets_processed', int(vsxCountersPackets)),
-                ('packets_dropped', int(vsxCountersDroppedTotal)),
-                ('packets_accepted', int(vsxCountersAcceptedTotal)),
-                ('packets_rejected', int(vsxCountersRejectedTotal)),
-                ('bytes_accepted', int(vsxCountersBytesAcceptedTotal)),
-                ('bytes_dropped', int(vsxCountersBytesDroppedTotal)),
-                ('bytes_rejected', int(vsxCountersBytesRejectedTotal)),
-                ('loggs_send', int(vsxCountersLoggedTotal)),
-            ],
-        )
-    return vsx_systems
-
-
-def discovery_checkpoint_vsx_system(params, section: Dict[str, CheckpointVsx]) -> DiscoveryResult:
-    for key in section.keys():
-        if section[key].vsxStatusVsType.lower() in params['vsType']:
-            yield Service(
-                item=key,
-                parameters={'policyname': section[key].vsxStatusPolicyName, 'ha_state': section[key].vsxStatusHAState}
-            )
-
-
-def check_checkpoint_vsx_system(item, params, section: Dict[str, CheckpointVsx]) -> CheckResult:
-    try:
-        vsx = section[item]
-    except KeyError:
-        yield Result(state=State.UNKNOWN, notice='Item not found in SNMP data')
-        return
-
-    if not vsx.vsxStatusSicTrustState.lower() in ['trust established']:
-        yield Result(state=State.WARN, notice='SIC not established')
-
-    if vsx.vsxStatusVsType.lower() == 'virtual system':
-        yield Result(state=State.OK, notice=f'System name: {item}')
-        yield Result(state=State.OK, summary=f'Main IP: {vsx.vsxStatusMainIP}')
-        yield Result(state=State.OK, summary=f'VS ID: {vsx.vsxStatusVSId}', details='Virtual system ID:')
-        yield Result(state=State.OK, notice=f'System type: {vsx.vsxStatusVsType}')
-
-        if not vsx.vsxStatusHAState.lower() in ['active', 'standby']:
-            yield Result(state=State.WARN, summary=f'H/A Status: {vsx.vsxStatusHAState}')
-        else:
-            yield Result(state=State.OK, summary=f'H/A Status: {vsx.vsxStatusHAState}')
-
-        if not vsx.vsxStatusVsPolicyType.lower() in ['active']:
-            yield Result(state=State.CRIT, notice='No policy installed')
-
-        if params['policyname'] != vsx.vsxStatusPolicyName:  # policy changed
-            yield Result(
-                state=State.WARN,
-                notice=f'Policy name changed: expected {params["policyname"]}, found {vsx.vsxStatusPolicyName}'
-            )
-
-        if params['ha_state'] != vsx.vsxStatusHAState:  # H/A state changed
-            yield Result(
-                state=State.WARN,
-                notice=f'State changed: expected/found {params["ha_state"]}/{vsx.vsxStatusHAState}'
-            )
-
-        yield Result(state=State.OK, notice=f'SIC status: {vsx.vsxStatusSicTrustState}')
-        yield Result(state=State.OK, notice=f'Weight: {vsx.vsxStatusVSWeight}')
-        yield Result(state=State.OK, notice=f'Policy name: {vsx.vsxStatusPolicyName}')
-        yield Result(state=State.OK, notice=f'Policy type: {vsx.vsxStatusVsPolicyType}')
-
-        # metrics rate
-        now_time = time.time()
-        value_store = get_value_store()
-        metrics_prefix = 'checkpoint_vsx_'
-
-        for key, value in vsx.metrics_rate:
-            try:
-                value = get_rate(value_store, f'{metrics_prefix}{key}', now_time, int(value), raise_overflow=True)
-            except GetRateError:
-                value = 0
-            yield Metric(name=f'checkpoint_vsx_{key}', value=value, boundaries=(0, None))
-
-        # metrics count
-        if vsx.vsxCountersConnTableLimit > 0:
-            yield Metric(value=vsx.vsxCountersConnNum, name=f'{metrics_prefix}connections',
-                         boundaries=(0, vsx.vsxCountersConnTableLimit),
-                         levels=(None, vsx.vsxCountersConnTableLimit))
-        else:
-            yield Metric(value=vsx.vsxCountersConnNum, name=f'{metrics_prefix}connections')
-        yield Metric(value=vsx.vsxCountersConnPeakNum, name=f'{metrics_prefix}connections_peak')
-    else:
-        yield Result(state=State.OK, notice=f'System name: {item}')
-        yield Result(state=State.OK, summary=f'Virtual system ID: {vsx.vsxStatusVSId}')
-        yield Result(state=State.OK, summary=f'System Type: {vsx.vsxStatusVsType}')
-        yield Result(state=State.OK, summary=f'SIC status: {vsx.vsxStatusSicTrustState}')
-
-
-register.snmp_section(
-    name='checkpoint_vsx_system',
-    parse_function=parse_checkpoint_vsx_system,
-    supersedes=[
-        'checkpoint_vsx',
-        'checkpoint_vsx_connections',
-        'checkpoint_vsx_traffic',
-        'checkpoint_vsx_packets',
-        'checkpoint_vsx_status',
-    ],
-    fetch=SNMPTree(
-        base='.1.3.6.1.4.1.2620.1.16',  # CHECKPOINT-MIB::vsx
-        oids=[
-            '22.1.1.1',   # vsxStatusVSId
-            '22.1.1.3',  # vsxStatusVsName
-            '22.1.1.4',  # vsxStatusVsType
-            '22.1.1.5',  # vsxStatusMainIP
-            '22.1.1.6',  # vsxStatusPolicyName
-            '22.1.1.7',  # vsxStatusVsPolicyType
-            '22.1.1.8',  # vsxStatusSicTrustState
-            '22.1.1.9',  # vsxStatusHAState
-            '22.1.1.10',  # vsxStatusVSWeight
-            '23.1.1.2',  # vsxCountersConnNum
-            '23.1.1.3',  # vsxCountersConnPeakNum
-            '23.1.1.4',  # vsxCountersConnTableLimit
-            '23.1.1.5',  # vsxCountersPackets
-            '23.1.1.6',  # vsxCountersDroppedTotal
-            '23.1.1.7',  # vsxCountersAcceptedTotal
-            '23.1.1.8',  # vsxCountersRejectedTotal
-            '23.1.1.9',  # vsxCountersBytesAcceptedTotal
-            '23.1.1.10',  # vsxCountersBytesDroppedTotal
-            '23.1.1.11',  # vsxCountersBytesRejectedTotal
-            '23.1.1.12',  # vsxCountersLoggedTotal
-        ]),
-    detect=any_of(
-        startswith('.1.3.6.1.2.1.1.2.0', '.1.3.6.1.4.1.2620'),
-        all_of(
-            equals('.1.3.6.1.2.1.1.2.0', '.1.3.6.1.4.1.8072.3.2.10'),
-            equals('.1.3.6.1.4.1.2620.1.6.1.0', 'SVN Foundation'),
-        )
-    )
-)
-
-register.check_plugin(
-    name='checkpoint_vsx_system',
-    service_name='VSX System %s',
-    discovery_function=discovery_checkpoint_vsx_system,
-    discovery_default_parameters={
-        'vsType': ['virtual system', 'vsx gateway', 'virtual switch', 'virtual router']
-    },
-    discovery_ruleset_name='checkpoint_vsx_system',
-    check_function=check_checkpoint_vsx_system,
-    check_default_parameters={},
-    check_ruleset_name='checkpoint_vsx_system',
-)
-- 
GitLab