Add support for CSV lists of key vaults to check, so the plugin can check more than one key vault.

This commit is contained in:
Marsell Kukuljevic 2023-10-19 11:55:47 +02:00
parent 9ec90446a5
commit 92a4ca33d6
4 changed files with 18 additions and 7 deletions

View File

@ -8,13 +8,16 @@ from cmk.base.plugins.agent_based.agent_based_api.v1 import register, Result, Se
# Convert JSON entries into dictionaries indexed by certificate name.
def parse_keyvault(string_table):
raw_json = ""
cert_data = []
for row in string_table:
raw_json += row[0]
line = row[0]
raw_json += line
if line == "]":
cert_data.extend(json.loads(raw_json))
raw_json = ""
lookup = {}
cert_data = json.loads(raw_json)
for cert in cert_data:
lookup[cert["name"]] = cert

View File

@ -1,4 +1,7 @@
#!/bin/bash
echo "<<<azure_keyvault:sep(0)>>>"
~/az "${@:1}"
for vault in "${@:1}"; do
~/az keyvault certificate list --vault-name="$vault"
done

View File

@ -2,6 +2,11 @@
def agent_azure_keyvault(params, hostname, ipaddress):
return ["keyvault", "certificate", "list", "--vault-name", params["vault_name"]]
args = []
for vault in params["vault_name"].split(","):
args.extend([vault.strip()])
return args
special_agent_info["azure_keyvault"] = agent_azure_keyvault

View File

@ -53,9 +53,9 @@ def _valuespec_special_agents_azure_keyvault_discovery():
(
"vault_name",
TextInput(
title=_("Key Vault Name"),
title=_("Key Vault Names (CSV)"),
help=_(
"The name of the Azure Key Vault to perform checks on"
"Comma-separated list of all the name of the Azure key vaults to perform certificate checks on. E.g. to check just the vault 'mkdev', enter 'mkdev'; to check 'mkdev' and 'mkdev2', enter 'mkdev,mkdev2'"
),
),
),