Merge "Add JMX support for Zookeeper service"
diff --git a/opencontrail/database.sls b/opencontrail/database.sls
index 22279ad..cd9e043 100644
--- a/opencontrail/database.sls
+++ b/opencontrail/database.sls
@@ -90,6 +90,13 @@
   - require:
     - pkg: opencontrail_database_packages
 
+/etc/default/zookeeper:
+  file.managed:
+  - source: salt://opencontrail/files/{{ database.version }}/zookeeper
+  - template: jinja
+  - require:
+    - pkg: opencontrail_database_packages
+
 /var/lib/zookeeper/myid:
   file.managed:
   - contents: '{{ database.id }}'
@@ -105,6 +112,7 @@
 {%- if not grains.get('noservices', False) %}
   - require_in:
     - service: opencontrail_database_services
+    - service: opencontrail_zookeeper_service
 {%- endif %}
 
 /etc/contrail/supervisord_database_files/contrail-database-nodemgr.ini:
@@ -115,6 +123,7 @@
 {%- if not grains.get('noservices', False) %}
   - require_in:
     - service: opencontrail_database_services
+    - service: opencontrail_zookeeper_service
 {%- endif %}
 
 {% endif %}
@@ -169,10 +178,20 @@
     - file: {{ database.cassandra_config }}cassandra-env.sh
     - file: {{ database.cassandra_config }}logback.xml
     - file: /etc/zookeeper/conf/zoo.cfg
+    - file: /etc/default/zookeeper
     - file: /etc/contrail/contrail-database-nodemgr.conf
     - file: /var/lib/zookeeper/myid
     - file: /etc/zookeeper/conf/log4j.properties
 
+opencontrail_zookeeper_service:
+  service.running:
+  - enable: true
+  - name: zookeeper
+  - watch:
+    - file: /etc/zookeeper/conf/zoo.cfg
+    - file: /etc/default/zookeeper
+    - file: /etc/zookeeper/conf/log4j.properties
+
 {%- endif %}
 
 {%- if grains.get('virtual_subtype', None) == "Docker" %}
diff --git a/opencontrail/files/2.2/zookeeper b/opencontrail/files/2.2/zookeeper
new file mode 100644
index 0000000..a7dc0e7
--- /dev/null
+++ b/opencontrail/files/2.2/zookeeper
@@ -0,0 +1,11 @@
+# See the following page for extensive details on setting
+# up the JVM to accept JMX remote management:
+# http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html
+# by default we allow local JMX connections
+#JMXLOCALONLY=false
+
+JAVA_OPTS="-Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote.host=127.0.0.1 -Dcom.sun.management.jmxremote.port=7188 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dzookeeper.jmx.log4j.disable=false"
+
+# Make sure to include the original classpath since it contains the zookeeper
+# jars
+#CLASSPATH="$CLASSPATH:YOURCLASSPATH"
diff --git a/opencontrail/files/3.0/zookeeper b/opencontrail/files/3.0/zookeeper
new file mode 100644
index 0000000..a7dc0e7
--- /dev/null
+++ b/opencontrail/files/3.0/zookeeper
@@ -0,0 +1,11 @@
+# See the following page for extensive details on setting
+# up the JVM to accept JMX remote management:
+# http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html
+# by default we allow local JMX connections
+#JMXLOCALONLY=false
+
+JAVA_OPTS="-Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote.host=127.0.0.1 -Dcom.sun.management.jmxremote.port=7188 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dzookeeper.jmx.log4j.disable=false"
+
+# Make sure to include the original classpath since it contains the zookeeper
+# jars
+#CLASSPATH="$CLASSPATH:YOURCLASSPATH"
diff --git a/opencontrail/meta/config.yml b/opencontrail/meta/config.yml
index d28e7d3..32cfea0 100644
--- a/opencontrail/meta/config.yml
+++ b/opencontrail/meta/config.yml
@@ -72,6 +72,9 @@
   zoo.cfg:
     source: "salt://opencontrail/files/{{ database.version }}/zoo.cfg"
     template: jinja
+  zookeeper:
+    source: "salt://opencontrail/files/{{ database.version }}/zookeeper"
+    template: jinja
   server.properties:
     source: "salt://opencontrail/files/{{ database.version }}/server.properties"
     template: jinja