Github user cmars commented on a diff in the pull request:
https://github.com/apache/bigtop/pull/400#discussion_r222424656
--- Diff: bigtop-packages/src/charm/kafka/layer-kafka/reactive/kafka.py ---
@@ -90,3 +98,39 @@ def serve_client(client, zookeeper):
client.send_port(kafka_port)
client.send_zookeepers(zookeeper.zookeepers())
hookenv.log('Sent Kafka configuration to client')
+
+
+@hook('logs-storage-attached')
+def storage_attach():
+ storageids = hookenv.storage_list('logs')
+ if not storageids:
+ hookenv.status_set('blocked', 'cannot locate attached storage')
+ return
+ storageid = storageids[0]
--- End diff --
It's explained near the bottom of [this
section](https://docs.jujucharms.com/2.4/en/developer-storage#adding-storage)
in the juju docs. Basically, we allow 0 or 1 stores to be attached. 0 allows us
to deploy with no storage attached; /tmp would be used in that case.
The check above (`if not storageids`) ensures that if we've attached
storage, we have at least one store, or the list would be empty and we'd be
blocked. Not sure if that can actually happen (can you attach 0 stores?) but
this case is covered in any case.
I borrowed this logic & metadata config from the postgresql charm, which
has a similar storage usage pattern (single mounted volume for data).
---