eoptasks: add option to exclude keywords

eoptasks -k node1,node2,-database will give all node1/node2 servers
except database.node1 and database.node2.
This commit is contained in:
Frédéric Péters 2018-12-12 19:53:35 +01:00
parent c7e9a8ce77
commit 8cff0bc39e
1 changed files with 3 additions and 0 deletions

View File

@ -71,6 +71,9 @@ if args.keywords:
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(','):
if keyword.startswith('!') or keyword.startswith('-'):
selected_servers = [x for x in selected_servers if keyword[1:] not in x.keywords]
else:
selected_servers = servers