111 lines
3.1 KiB
Python
111 lines
3.1 KiB
Python
#!/usr/bin/env python3
|
|
# Copyright (C) 2023 Spearhead Systems SRL - License: GNU General Public License v2
|
|
|
|
import copy
|
|
from cmk.gui.i18n import _
|
|
from cmk.gui.plugins.wato.utils import (
|
|
rulespec_registry,
|
|
HostRulespec,
|
|
IndividualOrStoredPassword,
|
|
RulespecGroupCheckParametersDiscovery,
|
|
CheckParameterRulespecWithItem,
|
|
RulespecGroupCheckParametersApplications,
|
|
)
|
|
from cmk.gui.watolib.rulespecs import Rulespec
|
|
from cmk.gui.valuespec import (
|
|
Dictionary,
|
|
TextInput,
|
|
Integer,
|
|
ListOfStrings,
|
|
Password
|
|
)
|
|
|
|
|
|
def _valuespec_special_agents_azure_keyvault_check():
|
|
return Dictionary(
|
|
title=_("Azure Key Vault Certificate Checks"),
|
|
optional_keys=["warn_days", "crit_days"],
|
|
elements=[
|
|
(
|
|
"warn_days",
|
|
Integer(
|
|
minvalue=0,
|
|
default_value=30,
|
|
title=_("Certificate Days to Warn"),
|
|
help=_(
|
|
"How many days to warn before a certificate in this key vault will expire"
|
|
),
|
|
),
|
|
),
|
|
(
|
|
"crit_days",
|
|
Integer(
|
|
minvalue=0,
|
|
default_value=3,
|
|
title=_("Certificate Days to Crit"),
|
|
help=_(
|
|
"How many days to crit before a certificate in this key vault will expire"
|
|
),
|
|
),
|
|
),
|
|
],
|
|
)
|
|
|
|
def _valuespec_special_agents_azure_keyvault_discovery():
|
|
return Dictionary(
|
|
title=_("Azure Key Vault Certificate Discovery"),
|
|
elements=[
|
|
(
|
|
"tenant",
|
|
TextInput(
|
|
title=_("Tenant ID / Directory ID"),
|
|
allow_empty=False,
|
|
size=45,
|
|
),
|
|
),
|
|
(
|
|
"client",
|
|
TextInput(
|
|
title=_("Client ID / Application ID"),
|
|
allow_empty=False,
|
|
size=45,
|
|
),
|
|
),
|
|
(
|
|
"secret",
|
|
IndividualOrStoredPassword(
|
|
# Password(
|
|
title=_("Client Secret"),
|
|
allow_empty=False,
|
|
size=45,
|
|
),
|
|
),
|
|
(
|
|
"vaults",
|
|
ListOfStrings(
|
|
title=_("Keyvaults"),
|
|
allow_empty=False,
|
|
),
|
|
),
|
|
],
|
|
)
|
|
|
|
|
|
rulespec_registry.register(
|
|
CheckParameterRulespecWithItem(
|
|
check_group_name="azure_keyvault",
|
|
group=RulespecGroupCheckParametersApplications,
|
|
match_type='dict',
|
|
parameter_valuespec=_valuespec_special_agents_azure_keyvault_check,
|
|
)
|
|
)
|
|
|
|
rulespec_registry.register(
|
|
HostRulespec(
|
|
group=RulespecGroupCheckParametersDiscovery,
|
|
match_type='dict',
|
|
name="special_agents:azure_keyvault",
|
|
valuespec=_valuespec_special_agents_azure_keyvault_discovery,
|
|
)
|
|
)
|