Github user cestella commented on a diff in the pull request:
https://github.com/apache/metron/pull/888#discussion_r161239480
--- Diff:
metron-deployment/packaging/ambari/metron-mpack/src/main/resources/common-services/METRON/CURRENT/package/scripts/indexing_master.py
---
@@ -150,12 +151,36 @@ def zeppelin_notebook_import(self, env):
env.set_params(params)
Logger.info(ambari_format('Searching for Zeppelin Notebooks in
{metron_config_zeppelin_path}'))
+
+ # With Ambari 2.5+, Zeppelin server is enabled to work with Shiro
authentication, which requires user/password
+ # for authentication (see
https://zeppelin.apache.org/docs/0.6.0/security/shiroauthentication.html for
details).
+ ses = requests.session()
+
+ # Check if authentication is enabled on the Zeppelin server
+ try:
+ conn =
ses.get(ambari_format('http://{zeppelin_server_url}/api/login'))
+
+ # Establish connection if authentication is enabled
+ try:
+ # The following credentials are created at install time by
Ambari at /etc/zeppelin/conf/shiro.ini
+ # when Shiro auth is enabled on the Zeppelin server
+ zeppelin_payload = {'userName': 'admin', 'password' :
'admin'}
--- End diff --
so, I wonder if we should add a configuration parameter for zeppelin
user/pass. If people change the default user/pass of zeppelin, this won't
work, I think. The other option is whether or not there is an existing config
in ambari where this is held (maybe not though). Beyond that, we could always
parse the shiro.ini (even as simple as a little python snippet like:
```
with open('/etc/zeppelin/conf/shiro.ini', 'r') as f:
seen_users = False
for line in f:
if '[users]' in line:
seen_users = True
if seen_users and 'admin = ' in line:
tokens = line.strip().split(',')
username = tokens[0].split(' ')[-1].strip()
password = tokens[1].strip()
print "username: {}, password: {}".format(username, password)
break
```
I am just a bit concerned at having this go in as it is given this
assumption, but I could probably be talked into it by another committer.
---