Github user cestella commented on a diff in the pull request:

    https://github.com/apache/metron/pull/799#discussion_r144868387
  
    --- Diff: 
metron-deployment/packaging/ambari/metron-mpack/src/main/resources/common-services/METRON/CURRENT/package/scripts/metron_service.py
 ---
    @@ -201,15 +200,123 @@ def init_kafka_topics(params, topics):
                 user=params.kafka_user, tries=3, try_sleep=5, logoutput=True)
       Logger.info("Done creating Kafka topics")
     
    -def init_kafka_acls(params, topics, groups):
    -  Logger.info('Creating Kafka ACLs')
     
    +def check_kafka_topics(params, topics):
    +
    +  if params.security_enabled:
    +    kinit(params.kinit_path_local,
    +          params.metron_keytab_path,
    +          params.metron_principal_name,
    +          execute_user=params.metron_user)
    +
    +  cmd = """{0}/kafka-topics.sh \
    +    --zookeeper {1} \
    +    --list | \
    +    awk 'BEGIN {{cnt=0;}} /{2}/ {{cnt++}} END {{if (cnt > 0) {{exit 0}} 
else {{exit 1}}}}'"""
    +  for topic in topics:
    +    Logger.info("Checking existence of Kafka topic '{0}'".format(topic))
    +    try:
    +      Execute(
    --- End diff --
    
    Any chance we could make a function rather than cutting and pasting?  
Something like:
    ```
    def exec( cmd, user_as, fail_msg ) :
    try:
      Execute(cmd,
                    tries=3,
                    try_sleep=5,
                    logoutput=True,
                    path='/usr/sbin:/sbin:/usr/local/bin:/bin:/usr/bin',
                    user=user_as)
        except:
            raise Fail(fail_msg)
    ```


---

Reply via email to