From ef23cf31b096396e939e1f0c075c53460d06ba12 Mon Sep 17 00:00:00 2001
From: Kaz Cheng <Etherdaemon@users.noreply.github.com>
Date: Sat, 16 Jul 2016 17:53:09 +1000
Subject: [PATCH] Add ability to create event and query acl rules for a given
 acl token (#2076)

---
 lib/ansible/modules/extras/clustering/consul_acl.py | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/lib/ansible/modules/extras/clustering/consul_acl.py b/lib/ansible/modules/extras/clustering/consul_acl.py
index 67ca63184f..a30ba8ab4b 100644
--- a/lib/ansible/modules/extras/clustering/consul_acl.py
+++ b/lib/ansible/modules/extras/clustering/consul_acl.py
@@ -236,8 +236,12 @@ def yml_to_rules(module, yml_rules):
                 rules.add_rule('key', Rule(rule['key'], rule['policy']))
             elif ('service' in rule and 'policy' in rule):
                 rules.add_rule('service', Rule(rule['service'], rule['policy']))
+            elif ('event' in rule and 'policy' in rule):
+                rules.add_rule('event', Rule(rule['event'], rule['policy']))
+            elif ('query' in rule and 'policy' in rule):
+                rules.add_rule('query', Rule(rule['query'], rule['policy']))
             else:
-                module.fail_json(msg="a rule requires a key/service and a policy.")
+                module.fail_json(msg="a rule requires a key/service/event or query and a policy.")
     return rules
 
 template = '''%s "%s" {
@@ -245,7 +249,7 @@ template = '''%s "%s" {
 }
 '''
 
-RULE_TYPES = ['key', 'service']
+RULE_TYPES = ['key', 'service', 'event', 'query']
 
 class Rules: