aboutsummaryrefslogtreecommitdiffstats
path: root/charms/trusty/kafka/actions/list-zks
diff options
context:
space:
mode:
Diffstat (limited to 'charms/trusty/kafka/actions/list-zks')
-rwxr-xr-xcharms/trusty/kafka/actions/list-zks28
1 files changed, 28 insertions, 0 deletions
diff --git a/charms/trusty/kafka/actions/list-zks b/charms/trusty/kafka/actions/list-zks
new file mode 100755
index 0000000..9de9e9a
--- /dev/null
+++ b/charms/trusty/kafka/actions/list-zks
@@ -0,0 +1,28 @@
+#!/usr/bin/env python
+import sys
+
+try:
+ from charmhelpers.core import hookenv
+ from charmhelpers.core import unitdata
+ from jujubigdata import utils
+ from jujubigdata.relations import Zookeeper
+ charm_ready = unitdata.kv().get('charm.active', False)
+except ImportError:
+ charm_ready = False
+
+if not charm_ready:
+ # might not have hookenv.action_fail available yet
+ from subprocess import call
+ call(['action-fail', 'Kafka service not yet ready'])
+
+if Zookeeper().connected_units() and Zookeeper().is_ready():
+ zks = []
+ for unit, data in Zookeeper().filtered_data().items():
+ ip = utils.resolve_private_address(data['private-address'])
+ zks.append("%s:%s" % (ip, data['port']))
+ zks.sort()
+ zookeepers = ",".join(zks)
+ hookenv.action_set({'zookeepers': zookeepers})
+else:
+ hookenv.action_fail('Zookeeper relation is not present/ready')
+ sys.exit()