Missing reason code for Cisco 9800 based WLC's causing check to crash

The cisco_redundancy check is missing some new swact_reason codes causing the check to crash.

def check_cisco_redundancy(_no_item, params, info):
    map_states = {
        "unit_state": {
            "0": "not found",
            "1": "not known",
            "2": "disabled",
            "3": "initialization",
            "4": "negotiation",
            "5": "standby cold",
            "6": "standby cold config",
            "7": "standby cold file sys",
            "8": "standby cold bulk",
            "9": "standby hot",
            "10": "active fast",
            "11": "active drain",
            "12": "active pre-config",
            "13": "active post-config",
            "14": "active",
            "15": "active extra load",
            "16": "active handback",
        },
        "duplex_mode": {
            "2": "False (SUB-Peer not detected)",
            "1": "True (SUB-Peer detected)",
        },
        "swact_reason": {
            "1": "unsupported",
            "2": "none",
            "3": "not known",
            "4": "user initiated",
            "5": "user forced",
            "6": "active unit failed",
            "7": "active unit removed",
        },
    }

It is specifically missing enums 8 and 9, I have attached the updated .mib
CISCO-RF-MIB.txt (55.8 KB)

but I have also pasted the relevant sections below:

    DESCRIPTION
        "Added descriptions for enums 8 and 9 in RFSwactReasonType"
    REVISION        "202307130000Z"
RFSwactReasonType ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "Reason codes for the switch of activity from an active
        redundant unit to its standby peer unit.

        unsupported
            - the 'reason code' is an unsupported feature
        none
            - no SWACT has occurred
        notKnown
            - reason is unknown
        userInitiated
            - a safe, manual SWACT was initiated by user
        userForced
            - a manual SWACT was forced by user; ignoring
              pre-conditions, warnings and safety checks
        activeUnitFailed
            - active unit failure caused an auto SWACT
        activeUnitRemoved
            - active unit removal caused an auto SWACT
        activeGWdown
            - SWACT due to active losing gateway connectivity
        activeRMIportdown
            - SWACT due to RMI port going down on active"
    SYNTAX          INTEGER  {
                        unsupported(1),
                        none(2),
                        notKnown(3),
                        userInitiated(4),
                        userForced(5),
                        activeUnitFailed(6),
                        activeUnitRemoved(7),
                        activeGWdown(8),
                        activeRMIportdown(9)
                    }

Was not sure the best place to post this as the feedback forum seems to be closed for new posts? But how does one go about getting these official checks fixed? Currently I go in an manually edit the file to add the missing checks, but this is annoying as it must be done anytime cmk is updated.

Thanks!

Fastest way: open a support ticket and will be fixed quickly and backported to stable release.
Otherwise, a pull request will likely work for you as well

There are two PRs open for this issue…

Ah I didn’t know there was a public repo, anyways neither of those PR’s actually fixes the issue they both just cover it up by ignoring any ‘unknown’ swact codes. I will submit a PR of my own with the correct reason codes.

1 Like