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
|
||||
|
||||
|
||||
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
|
||||
--------
|
||||
|
||||
|
|
|
@ -124,12 +124,15 @@ def parse_args():
|
|||
def filter_servers(servers, args):
|
||||
selected_servers = []
|
||||
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('/'))
|
||||
selected_servers.extend(
|
||||
[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('-'):
|
||||
selected_servers = [x for x in selected_servers if keyword[1:] not in x.keywords]
|
||||
else:
|
||||
|
|
Loading…
Reference in New Issue