121 lines
3.5 KiB
Python
121 lines
3.5 KiB
Python
|
#!/usr/bin/env python3
|
||
|
#
|
||
|
# GUI configuration pages to set up inventorying and checks done by the CUCM
|
||
|
# agent to CUCM. These two pages are for giving the agent the necessary details
|
||
|
# to connect to CUCM (e.g. IP address, user, login, etc).
|
||
|
#
|
||
|
# Ideally, we'd have a single page to configure both the inventorying and
|
||
|
# checks, since both contact the same CUCM instance. Unfortunately, I didn't
|
||
|
# find a clean way to do it, so we're left with two identical GUI pages that
|
||
|
# take identical information. At least we manage to share most of the code
|
||
|
# here by taking a deep copy and modifying the title.
|
||
|
|
||
|
import copy
|
||
|
from cmk.gui.i18n import _
|
||
|
from cmk.gui.plugins.wato.utils import (
|
||
|
rulespec_registry,
|
||
|
HostRulespec,
|
||
|
RulespecGroupCheckParametersHardware
|
||
|
)
|
||
|
from cmk.gui.plugins.wato.inventory import RulespecGroupInventory
|
||
|
from cmk.gui.watolib.rulespecs import Rulespec
|
||
|
from cmk.gui.valuespec import (
|
||
|
Dictionary,
|
||
|
TextInput,
|
||
|
Hostname,
|
||
|
NetworkPort,
|
||
|
Password,
|
||
|
TextAscii,
|
||
|
FixedValue
|
||
|
)
|
||
|
|
||
|
|
||
|
# GUI config page for inventory.
|
||
|
def _valuespec_special_agents_cucm_inv():
|
||
|
return Dictionary(
|
||
|
title=_("CUCM inventory"),
|
||
|
help=_(""),
|
||
|
optional_keys=["port", "user", "password", "insecure"],
|
||
|
elements=[
|
||
|
(
|
||
|
"instance",
|
||
|
Hostname(
|
||
|
title=_("Hostname"),
|
||
|
help=_(
|
||
|
"Host of CUCM host for query"
|
||
|
),
|
||
|
allow_empty=False,
|
||
|
),
|
||
|
),
|
||
|
(
|
||
|
"port",
|
||
|
NetworkPort(
|
||
|
title=_("Port"),
|
||
|
help=_(
|
||
|
"Port of CUCM host for query"
|
||
|
),
|
||
|
minvalue=1,
|
||
|
default_value=443,
|
||
|
),
|
||
|
),
|
||
|
(
|
||
|
"user",
|
||
|
TextInput(
|
||
|
title=_("Username"),
|
||
|
help=_(
|
||
|
"Username used when querying CUCM"
|
||
|
),
|
||
|
),
|
||
|
),
|
||
|
(
|
||
|
"password",
|
||
|
Password(
|
||
|
title=_("Password"),
|
||
|
help=_(
|
||
|
"Password used when querying CUCM"
|
||
|
),
|
||
|
),
|
||
|
),
|
||
|
(
|
||
|
"insecure",
|
||
|
FixedValue(
|
||
|
True,
|
||
|
title=_("Insecure"),
|
||
|
totext=_("Disable SSL certificate verification"),
|
||
|
help=_(
|
||
|
"Ignore unverified HTTPS request warnings when contacting CUCM"
|
||
|
),
|
||
|
),
|
||
|
),
|
||
|
],
|
||
|
)
|
||
|
|
||
|
|
||
|
# GUI config page for checks. We do a deep copy of the above function and just
|
||
|
# change the title. A bit hackish since we're changing a private attribute.
|
||
|
def _valuespec_special_agents_cucm_chk():
|
||
|
inv_spec = _valuespec_special_agents_cucm_inv()
|
||
|
chk_spec = copy.deepcopy(inv_spec)
|
||
|
chk_spec._title=_("CUCM checks")
|
||
|
return chk_spec
|
||
|
|
||
|
|
||
|
rulespec_registry.register(
|
||
|
HostRulespec(
|
||
|
factory_default=Rulespec.FACTORY_DEFAULT_UNUSED,
|
||
|
name="special_agents:cucm_inv",
|
||
|
group=RulespecGroupInventory,
|
||
|
valuespec=_valuespec_special_agents_cucm_inv,
|
||
|
)
|
||
|
)
|
||
|
|
||
|
|
||
|
rulespec_registry.register(
|
||
|
HostRulespec(
|
||
|
factory_default=Rulespec.FACTORY_DEFAULT_UNUSED,
|
||
|
name="special_agents:cucm_chk",
|
||
|
group=RulespecGroupCheckParametersHardware,
|
||
|
valuespec=_valuespec_special_agents_cucm_chk,
|
||
|
)
|
||
|
)
|