add support for defining custom keywords mappings in configuration file
This can be used for shortcuts or alternative names, ex: [keywords] monitoring = munin,scrutiny,prometheus or to prevent common errors or misconceptions: [keywords] saas/test = saas/test,-hds,-re,-docbow
This commit is contained in:
parent
1ddfe568f9
commit
f12fa88f04
12
README
12
README
|
@ -38,6 +38,18 @@ It is also possible to declare additional servers, in a [servers] section, ex::
|
||||||
host.domain = keyword1, keyword2
|
host.domain = keyword1, keyword2
|
||||||
|
|
||||||
|
|
||||||
|
And custom keywords mapping can be defined, for shortcuts or alternative names,
|
||||||
|
ex::
|
||||||
|
|
||||||
|
[keywords]
|
||||||
|
monitoring = munin,scrutiny,prometheus
|
||||||
|
|
||||||
|
or to prevent common errors or misconceptions::
|
||||||
|
|
||||||
|
[keywords]
|
||||||
|
saas/test = saas/test,-hds,-re,-docbow
|
||||||
|
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
|
|
@ -124,12 +124,15 @@ def parse_args():
|
||||||
def filter_servers(servers, args):
|
def filter_servers(servers, args):
|
||||||
selected_servers = []
|
selected_servers = []
|
||||||
if args.keywords:
|
if args.keywords:
|
||||||
for keyword in args.keywords.split(','):
|
config = get_config()
|
||||||
|
cmd_keywords = config['keywords'].get(args.keywords, args.keywords)
|
||||||
|
|
||||||
|
for keyword in cmd_keywords.split(','):
|
||||||
keywords = set(keyword.split('/'))
|
keywords = set(keyword.split('/'))
|
||||||
selected_servers.extend(
|
selected_servers.extend(
|
||||||
[x for x in servers if keywords.issubset(x.keywords) and not x in selected_servers]
|
[x for x in servers if keywords.issubset(x.keywords) and not x in selected_servers]
|
||||||
)
|
)
|
||||||
for keyword in args.keywords.split(','):
|
for keyword in cmd_keywords.split(','):
|
||||||
if keyword.startswith('!') or keyword.startswith('-'):
|
if keyword.startswith('!') or keyword.startswith('-'):
|
||||||
selected_servers = [x for x in selected_servers if keyword[1:] not in x.keywords]
|
selected_servers = [x for x in selected_servers if keyword[1:] not in x.keywords]
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in New Issue