AMBARI-16243: Create ZOOKEEPER service versions in common-services (jluniya)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/96d3afe0
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/96d3afe0
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/96d3afe0

Branch: refs/heads/trunk
Commit: 96d3afe028891123b42034c8ecad761836e3b376
Parents: 538a3f1
Author: Jayush Luniya <[email protected]>
Authored: Thu May 5 14:54:44 2016 -0700
Committer: Jayush Luniya <[email protected]>
Committed: Thu May 5 14:54:44 2016 -0700

----------------------------------------------------------------------
 .../ZOOKEEPER/3.4.5.2.0/alerts.json             |  60 ------
 .../3.4.5.2.0/configuration/zoo.cfg.xml         |  87 ---------
 .../3.4.5.2.0/configuration/zookeeper-env.xml   | 102 ----------
 .../3.4.5.2.0/configuration/zookeeper-log4j.xml | 105 -----------
 .../ZOOKEEPER/3.4.5.2.0/kerberos.json           |  39 ----
 .../ZOOKEEPER/3.4.5.2.0/metainfo.xml            |  97 ----------
 .../ZOOKEEPER/3.4.5.2.0/package/files/zkEnv.sh  |  96 ----------
 .../3.4.5.2.0/package/files/zkServer.sh         | 120 ------------
 .../3.4.5.2.0/package/files/zkService.sh        |  26 ---
 .../3.4.5.2.0/package/files/zkSmoke.sh          |  93 ---------
 .../3.4.5.2.0/package/scripts/__init__.py       |  20 --
 .../3.4.5.2.0/package/scripts/params.py         |  27 ---
 .../3.4.5.2.0/package/scripts/params_linux.py   | 105 -----------
 .../3.4.5.2.0/package/scripts/params_windows.py |  68 -------
 .../3.4.5.2.0/package/scripts/service_check.py  |  73 -------
 .../3.4.5.2.0/package/scripts/status_params.py  |  60 ------
 .../3.4.5.2.0/package/scripts/zookeeper.py      | 164 ----------------
 .../package/scripts/zookeeper_client.py         |  83 --------
 .../package/scripts/zookeeper_server.py         | 189 -------------------
 .../package/scripts/zookeeper_service.py        |  82 --------
 .../package/templates/configuration.xsl.j2      |  42 -----
 .../3.4.5.2.0/package/templates/zoo.cfg.j2      |  53 ------
 .../templates/zookeeper_client_jaas.conf.j2     |  23 ---
 .../package/templates/zookeeper_jaas.conf.j2    |  26 ---
 .../common-services/ZOOKEEPER/3.4.5/alerts.json |  60 ++++++
 .../ZOOKEEPER/3.4.5/configuration/zoo.cfg.xml   |  87 +++++++++
 .../3.4.5/configuration/zookeeper-env.xml       | 102 ++++++++++
 .../3.4.5/configuration/zookeeper-log4j.xml     | 105 +++++++++++
 .../ZOOKEEPER/3.4.5/kerberos.json               |  39 ++++
 .../ZOOKEEPER/3.4.5/metainfo.xml                |  97 ++++++++++
 .../ZOOKEEPER/3.4.5/package/files/zkEnv.sh      |  96 ++++++++++
 .../ZOOKEEPER/3.4.5/package/files/zkServer.sh   | 120 ++++++++++++
 .../ZOOKEEPER/3.4.5/package/files/zkService.sh  |  26 +++
 .../ZOOKEEPER/3.4.5/package/files/zkSmoke.sh    |  93 +++++++++
 .../ZOOKEEPER/3.4.5/package/scripts/__init__.py |  20 ++
 .../ZOOKEEPER/3.4.5/package/scripts/params.py   |  27 +++
 .../3.4.5/package/scripts/params_linux.py       | 105 +++++++++++
 .../3.4.5/package/scripts/params_windows.py     |  68 +++++++
 .../3.4.5/package/scripts/service_check.py      |  73 +++++++
 .../3.4.5/package/scripts/status_params.py      |  60 ++++++
 .../3.4.5/package/scripts/zookeeper.py          | 164 ++++++++++++++++
 .../3.4.5/package/scripts/zookeeper_client.py   |  83 ++++++++
 .../3.4.5/package/scripts/zookeeper_server.py   | 189 +++++++++++++++++++
 .../3.4.5/package/scripts/zookeeper_service.py  |  82 ++++++++
 .../package/templates/configuration.xsl.j2      |  42 +++++
 .../3.4.5/package/templates/zoo.cfg.j2          |  53 ++++++
 .../templates/zookeeper_client_jaas.conf.j2     |  23 +++
 .../package/templates/zookeeper_jaas.conf.j2    |  26 +++
 .../ZOOKEEPER/3.4.6/metainfo.xml                |  51 +++++
 .../HDP/2.0.6/services/ZOOKEEPER/metainfo.xml   |   3 +-
 .../HDP/2.3/services/ZOOKEEPER/metainfo.xml     |  25 +--
 .../HDPWIN/2.1/services/ZOOKEEPER/metainfo.xml  |   2 +-
 .../server/stack/KerberosDescriptorTest.java    |   2 +-
 .../2.0.6/ZOOKEEPER/test_zookeeper_client.py    |   2 +-
 .../2.0.6/ZOOKEEPER/test_zookeeper_server.py    |   2 +-
 .../ZOOKEEPER/test_zookeeper_service_check.py   |   2 +-
 .../2.0.6/configs/zk-service_check_2.2.json     |   2 +-
 57 files changed, 1900 insertions(+), 1871 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/96d3afe0/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/alerts.json
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/alerts.json
 
b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/alerts.json
deleted file mode 100644
index 469036a..0000000
--- 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/alerts.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
-  "ZOOKEEPER": {
-    "service": [
-      {
-        "name": "zookeeper_server_process_percent",
-        "label": "Percent ZooKeeper Servers Available",
-        "description": "This alert is triggered if the number of down 
ZooKeeper servers in the cluster is greater than the configured critical 
threshold. It aggregates the results of ZooKeeper process checks.",
-        "interval": 1,
-        "scope": "SERVICE",
-        "enabled": true,
-        "source": {
-          "type": "AGGREGATE",
-          "alert_name": "zookeeper_server_process",
-          "reporting": {
-            "ok": {
-              "text": "affected: [{1}], total: [{0}]"
-            },
-            "warning": {
-              "text": "affected: [{1}], total: [{0}]",
-              "value": 35
-            },
-            "critical": {
-              "text": "affected: [{1}], total: [{0}]",
-              "value": 70
-            },
-            "units" : "%",
-            "type": "PERCENT"
-          }
-        }
-      }  
-    ],
-    "ZOOKEEPER_SERVER": [
-      {
-        "name": "zookeeper_server_process",
-        "label": "ZooKeeper Server Process",
-        "description": "This host-level alert is triggered if the ZooKeeper 
server process cannot be determined to be up and listening on the network.",
-        "interval": 1,
-        "scope": "ANY",
-        "source": {
-          "type": "PORT",
-          "uri": "{{zoo.cfg/clientPort}}",
-          "default_port": 2181,
-          "reporting": {
-            "ok": {
-              "text": "TCP OK - {0:.3f}s response on port {1}"
-            },
-            "warning": {
-              "text": "TCP OK - {0:.3f}s response on port {1}",
-              "value": 1.5
-            },
-            "critical": {
-              "text": "Connection failed: {0} to {1}:{2}",
-              "value": 5.0
-            }
-          }
-        }
-      }
-    ]
-  }
-}

http://git-wip-us.apache.org/repos/asf/ambari/blob/96d3afe0/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/configuration/zoo.cfg.xml
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/configuration/zoo.cfg.xml
 
b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/configuration/zoo.cfg.xml
deleted file mode 100644
index c3ba734..0000000
--- 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/configuration/zoo.cfg.xml
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-<!--
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
--->
-
-<configuration>
-  <property>
-    <name>tickTime</name>
-    <value>2000</value>
-    <display-name>Length of single Tick</display-name>
-    <description>The length of a single tick in milliseconds, which is the 
basic time unit used by ZooKeeper</description>
-    <value-attributes>
-      <type>int</type>
-      <overridable>false</overridable>
-      <unit>ms</unit>
-    </value-attributes>
-  </property>
-  <property>
-    <name>initLimit</name>
-    <value>10</value>
-    <display-name>Ticks to allow for sync at Init</display-name>
-    <description>Ticks to allow for sync at Init.</description>
-    <value-attributes>
-      <type>int</type>
-      <overridable>false</overridable>
-    </value-attributes>
-  </property>
-  <property>
-    <name>syncLimit</name>
-    <value>5</value>
-    <display-name>Ticks to allow for sync at Runtime</display-name>
-    <description>Ticks to allow for sync at Runtime.</description>
-    <value-attributes>
-      <type>int</type>
-      <overridable>false</overridable>
-    </value-attributes>
-  </property>
-  <property>
-    <name>clientPort</name>
-    <value>2181</value>
-    <display-name>Port for running ZK Server</display-name>
-    <description>Port for running ZK Server.</description>
-    <value-attributes>
-      <type>int</type>
-      <overridable>false</overridable>
-    </value-attributes>
-  </property>
-  <property>
-    <name>dataDir</name>
-    <value>/hadoop/zookeeper</value>
-    <display-name>ZooKeeper directory</display-name>
-    <description>Data directory for ZooKeeper.</description>
-    <value-attributes>
-      <type>directory</type>
-    </value-attributes>
-  </property>
-  <property>
-    <name>autopurge.snapRetainCount</name>
-    <value>30</value>
-    <description>ZooKeeper purge feature retains the autopurge.snapRetainCount
-      most recent snapshots and the corresponding transaction
-      logs in the dataDir and dataLogDir respectively and deletes the rest. 
</description>
-  </property>
-  <property>
-    <name>autopurge.purgeInterval</name>
-    <value>24</value>
-    <description>The time interval in hours for which the purge task has to be 
triggered.
-      Set to a positive integer (1 and above) to enable the auto 
purging.</description>
-  </property>
-</configuration>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/96d3afe0/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/configuration/zookeeper-env.xml
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/configuration/zookeeper-env.xml
 
b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/configuration/zookeeper-env.xml
deleted file mode 100644
index 3b5141a..0000000
--- 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/configuration/zookeeper-env.xml
+++ /dev/null
@@ -1,102 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-<!--
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
--->
-
-<configuration supports_adding_forbidden="true">
-  <property>
-    <name>zk_user</name>
-    <display-name>ZooKeeper User</display-name>
-    <value>zookeeper</value>
-    <property-type>USER</property-type>
-    <description>ZooKeeper User.</description>
-    <value-attributes>
-      <type>user</type>
-      <overridable>false</overridable>
-    </value-attributes>
-  </property>
-  <property>
-    <name>zk_log_dir</name>
-    <value>/var/log/zookeeper</value>
-    <display-name>ZooKeeper Log Dir</display-name>
-    <description>ZooKeeper Log Dir</description>
-    <value-attributes>
-      <type>directory</type>
-      <overridable>false</overridable>
-    </value-attributes>
-  </property>
-  <property>
-    <name>zk_pid_dir</name>
-    <value>/var/run/zookeeper</value>
-    <display-name>ZooKeeper PID Dir</display-name>
-    <description>ZooKeeper Pid Dir</description>
-    <value-attributes>
-      <type>directory</type>
-      <overridable>false</overridable>
-      <editable-only-at-install>true</editable-only-at-install>
-    </value-attributes>
-  </property>
-  <property>
-    <name>zk_server_heapsize</name>
-    <value>1024</value>
-    <description>Maximum amount of memory each Zookeeper Server can 
use.</description>
-    <display-name>Zookeeper Server Maximum Memory</display-name>
-    <value-attributes>
-      <type>int</type>
-      <minimum>256</minimum>
-      <maximum>32768</maximum>
-      <unit>MB</unit>
-      <increment-step>256</increment-step>
-    </value-attributes>
-  </property>
-  <property>
-    <name>zookeeper_principal_name</name>
-    <description>ZooKeeper principal name</description>
-  </property>
-
-  <property>
-    <name>zookeeper_keytab_path</name>
-    <description>ZooKeeper keytab path</description>
-  </property>
-
-  
-  <!-- zookeeper-env.sh -->
-  <property>
-    <name>content</name>
-    <description>This is the jinja template for zookeeper-env.sh 
file</description>
-    <value>
-export JAVA_HOME={{java64_home}}
-export ZOOKEEPER_HOME={{zk_home}}
-export ZOO_LOG_DIR={{zk_log_dir}}
-export ZOOPIDFILE={{zk_pid_file}}
-export SERVER_JVMFLAGS={{zk_server_heapsize}}
-export JAVA=$JAVA_HOME/bin/java
-export CLASSPATH=$CLASSPATH:/usr/share/zookeeper/*
-
-{% if security_enabled %}
-export SERVER_JVMFLAGS="$SERVER_JVMFLAGS 
-Djava.security.auth.login.config={{zk_server_jaas_file}}"
-export CLIENT_JVMFLAGS="$CLIENT_JVMFLAGS 
-Djava.security.auth.login.config={{zk_client_jaas_file}}"
-{% endif %}
-    </value>
-    <value-attributes>
-      <type>content</type>
-    </value-attributes>
-  </property>
-</configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/96d3afe0/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/configuration/zookeeper-log4j.xml
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/configuration/zookeeper-log4j.xml
 
b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/configuration/zookeeper-log4j.xml
deleted file mode 100644
index ede4630..0000000
--- 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/configuration/zookeeper-log4j.xml
+++ /dev/null
@@ -1,105 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-<!--
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
--->
-
-<configuration supports_final="false" supports_adding_forbidden="true">
-
-  <property>
-    <name>content</name>
-    <description>Custom log4j.properties</description>
-    <value>
-#
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-#
-#
-
-#
-# ZooKeeper Logging Configuration
-#
-
-# DEFAULT: console appender only
-log4j.rootLogger=INFO, CONSOLE
-
-# Example with rolling log file
-#log4j.rootLogger=DEBUG, CONSOLE, ROLLINGFILE
-
-# Example with rolling log file and tracing
-#log4j.rootLogger=TRACE, CONSOLE, ROLLINGFILE, TRACEFILE
-
-#
-# Log INFO level and above messages to the console
-#
-log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.CONSOLE.Threshold=INFO
-log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
-log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} - %-5p 
[%t:%C{1}@%L] - %m%n
-
-#
-# Add ROLLINGFILE to rootLogger to get log file output
-#    Log DEBUG level and above messages to a log file
-log4j.appender.ROLLINGFILE=org.apache.log4j.RollingFileAppender
-log4j.appender.ROLLINGFILE.Threshold=DEBUG
-log4j.appender.ROLLINGFILE.File=zookeeper.log
-
-# Max log file size of 10MB
-log4j.appender.ROLLINGFILE.MaxFileSize=10MB
-# uncomment the next line to limit number of backup files
-#log4j.appender.ROLLINGFILE.MaxBackupIndex=10
-
-log4j.appender.ROLLINGFILE.layout=org.apache.log4j.PatternLayout
-log4j.appender.ROLLINGFILE.layout.ConversionPattern=%d{ISO8601} - %-5p 
[%t:%C{1}@%L] - %m%n
-
-
-#
-# Add TRACEFILE to rootLogger to get log file output
-#    Log DEBUG level and above messages to a log file
-log4j.appender.TRACEFILE=org.apache.log4j.FileAppender
-log4j.appender.TRACEFILE.Threshold=TRACE
-log4j.appender.TRACEFILE.File=zookeeper_trace.log
-
-log4j.appender.TRACEFILE.layout=org.apache.log4j.PatternLayout
-### Notice we are including log4j's NDC here (%x)
-log4j.appender.TRACEFILE.layout.ConversionPattern=%d{ISO8601} - %-5p 
[%t:%C{1}@%L][%x] - %m%n
-    </value>
-    <value-attributes>
-      <type>content</type>
-      <show-property-name>false</show-property-name>
-    </value-attributes>
-  </property>
-
-</configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/96d3afe0/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/kerberos.json
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/kerberos.json
 
b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/kerberos.json
deleted file mode 100644
index 0a64ea5..0000000
--- 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/kerberos.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
-  "services": [
-    {
-      "name": "ZOOKEEPER",
-      "identities": [
-        {
-          "name": "/smokeuser"
-        }
-      ],
-      "components": [
-        {
-          "name": "ZOOKEEPER_SERVER",
-          "identities": [
-            {
-              "name": "zookeeper_zk",
-              "principal": {
-                "value": "zookeeper/_HOST@${realm}",
-                "type" : "service",
-                "configuration": "zookeeper-env/zookeeper_principal_name"
-              },
-              "keytab": {
-                "file": "${keytab_dir}/zk.service.keytab",
-                "owner": {
-                  "name": "${zookeeper-env/zk_user}",
-                  "access": "r"
-                },
-                "group": {
-                  "name": "${cluster-env/user_group}",
-                  "access": ""
-                },
-                "configuration": "zookeeper-env/zookeeper_keytab_path"
-              }
-            }
-          ]
-        }
-      ]
-    }
-  ]
-}

http://git-wip-us.apache.org/repos/asf/ambari/blob/96d3afe0/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/metainfo.xml
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/metainfo.xml
 
b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/metainfo.xml
deleted file mode 100644
index 231d2be..0000000
--- 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/metainfo.xml
+++ /dev/null
@@ -1,97 +0,0 @@
-<?xml version="1.0"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<metainfo>
-  <schemaVersion>2.0</schemaVersion>
-  <services>
-    <service>
-      <name>ZOOKEEPER</name>
-      <displayName>ZooKeeper</displayName>
-      <comment>Centralized service which provides highly reliable distributed 
coordination</comment>
-      <version>3.4.5.2.0</version>
-      <components>
-
-        <component>
-          <name>ZOOKEEPER_SERVER</name>
-          <displayName>ZooKeeper Server</displayName>
-          <category>MASTER</category>
-          <cardinality>1+</cardinality>
-          <versionAdvertised>true</versionAdvertised>
-          <commandScript>
-            <script>scripts/zookeeper_server.py</script>
-            <scriptType>PYTHON</scriptType>
-            <timeout>1200</timeout>
-          </commandScript>
-          <logs>
-            <log>
-              <logId>zookeeper</logId>
-              <primary>true</primary>
-            </log>
-          </logs>
-        </component>
-
-        <component>
-          <name>ZOOKEEPER_CLIENT</name>
-          <displayName>ZooKeeper Client</displayName>
-          <category>CLIENT</category>
-          <cardinality>1+</cardinality>
-          <versionAdvertised>true</versionAdvertised>
-          <commandScript>
-            <script>scripts/zookeeper_client.py</script>
-            <scriptType>PYTHON</scriptType>
-          </commandScript>
-          <configFiles>
-            <configFile>
-              <type>env</type>
-              <fileName>zookeeper-env.sh</fileName>
-              <dictionaryName>zookeeper-env</dictionaryName>
-            </configFile>
-            <configFile>
-              <type>env</type>
-              <fileName>log4j.properties</fileName>
-              <dictionaryName>zookeeper-log4j</dictionaryName>
-            </configFile>
-          </configFiles>
-        </component>
-      </components>
-
-      <osSpecifics>
-        <osSpecific>
-          <osFamily>any</osFamily>
-          <packages>
-            <package>
-              <name>zookeeper</name>
-            </package>
-          </packages>
-        </osSpecific>
-      </osSpecifics>
-
-      <commandScript>
-        <script>scripts/service_check.py</script>
-        <scriptType>PYTHON</scriptType>
-        <timeout>300</timeout>
-      </commandScript>
-
-      <configuration-dependencies>
-        <config-type>zookeeper-log4j</config-type>
-        <config-type>zookeeper-env</config-type>
-        <config-type>zoo.cfg</config-type>
-      </configuration-dependencies>
-      <restartRequiredAfterChange>true</restartRequiredAfterChange>
-    </service>
-  </services>
-</metainfo>

http://git-wip-us.apache.org/repos/asf/ambari/blob/96d3afe0/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/files/zkEnv.sh
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/files/zkEnv.sh
 
b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/files/zkEnv.sh
deleted file mode 100644
index fa1b832..0000000
--- 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/files/zkEnv.sh
+++ /dev/null
@@ -1,96 +0,0 @@
-#!/usr/bin/env bash
-
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# This script should be sourced into other zookeeper
-# scripts to setup the env variables
-
-# We use ZOOCFGDIR if defined,
-# otherwise we use /etc/zookeeper
-# or the conf directory that is
-# a sibling of this script's directory
-if [ "x$ZOOCFGDIR" = "x" ]
-then
-    if [ -d "/etc/zookeeper" ]
-    then
-        ZOOCFGDIR="/etc/zookeeper"
-    else
-        ZOOCFGDIR="$ZOOBINDIR/../conf"
-    fi
-fi
-
-if [ "x$ZOOCFG" = "x" ]
-then
-    ZOOCFG="zoo.cfg"
-fi
-
-ZOOCFG="$ZOOCFGDIR/$ZOOCFG"
-
-if [ -e "$ZOOCFGDIR/zookeeper-env.sh" ]
-then
-    . "$ZOOCFGDIR/zookeeper-env.sh"
-fi
-
-if [ "x${ZOO_LOG_DIR}" = "x" ]
-then
-    ZOO_LOG_DIR="."
-fi
-
-if [ "x${ZOO_LOG4J_PROP}" = "x" ]
-then
-    ZOO_LOG4J_PROP="INFO,CONSOLE"
-fi
-
-#add the zoocfg dir to classpath
-CLASSPATH="$ZOOCFGDIR:$CLASSPATH"
-
-for i in "$ZOOBINDIR"/../src/java/lib/*.jar
-do
-    CLASSPATH="$i:$CLASSPATH"
-done
-
-#make it work in the release
-for i in "$ZOOBINDIR"/../lib/*.jar
-do
-    CLASSPATH="$i:$CLASSPATH"
-done
-
-#make it work in the release
-for i in "$ZOOBINDIR"/../zookeeper-*.jar
-do
-    CLASSPATH="$i:$CLASSPATH"
-done
-
-#make it work for developers
-for d in "$ZOOBINDIR"/../build/lib/*.jar
-do
-   CLASSPATH="$d:$CLASSPATH"
-done
-
-#make it work for developers
-CLASSPATH="$ZOOBINDIR/../build/classes:$CLASSPATH"
-
-case "`uname`" in
-    CYGWIN*) cygwin=true ;;
-    *) cygwin=false ;;
-esac
-
-if $cygwin
-then
-    CLASSPATH=`cygpath -wp "$CLASSPATH"`
-fi
-
-#echo "CLASSPATH=$CLASSPATH"

http://git-wip-us.apache.org/repos/asf/ambari/blob/96d3afe0/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/files/zkServer.sh
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/files/zkServer.sh
 
b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/files/zkServer.sh
deleted file mode 100644
index dd75a58..0000000
--- 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/files/zkServer.sh
+++ /dev/null
@@ -1,120 +0,0 @@
-#!/usr/bin/env bash
-
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-#
-# If this scripted is run out of /usr/bin or some other system bin directory
-# it should be linked to and not copied. Things like java jar files are found
-# relative to the canonical path of this script.
-#
-
-# 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
-if [ "x$JMXLOCALONLY" = "x" ]
-then
-    JMXLOCALONLY=false
-fi
-
-if [ "x$JMXDISABLE" = "x" ]
-then
-    echo "JMX enabled by default"
-    # for some reason these two options are necessary on jdk6 on Ubuntu
-    #   accord to the docs they are not necessary, but otw jconsole cannot
-    #   do a local attach
-    ZOOMAIN="-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.local.only=$JMXLOCALONLY 
org.apache.zookeeper.server.quorum.QuorumPeerMain"
-else
-    echo "JMX disabled by user request"
-    ZOOMAIN="org.apache.zookeeper.server.quorum.QuorumPeerMain"
-fi
-
-# Only follow symlinks if readlink supports it
-if readlink -f "$0" > /dev/null 2>&1
-then
-  ZOOBIN=`readlink -f "$0"`
-else
-  ZOOBIN="$0"
-fi
-ZOOBINDIR=`dirname "$ZOOBIN"`
-
-. "$ZOOBINDIR"/zkEnv.sh
-
-if [ "x$2" != "x" ]
-then
-    ZOOCFG="$ZOOCFGDIR/$2"
-fi
-
-if $cygwin
-then
-    ZOOCFG=`cygpath -wp "$ZOOCFG"`
-    # cygwin has a "kill" in the shell itself, gets confused
-    KILL=/bin/kill
-else
-    KILL=kill
-fi
-
-echo "Using config: $ZOOCFG"
-
-ZOOPIDFILE=$(grep dataDir "$ZOOCFG" | sed -e 's/.*=//')/zookeeper_server.pid
-
-
-case $1 in
-start)
-    echo  "Starting zookeeper ... "
-    $JAVA  "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" 
"-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
-    -cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG" &
-    /bin/echo -n $! > "$ZOOPIDFILE"
-    echo STARTED
-    ;;
-stop)
-    echo "Stopping zookeeper ... "
-    if [ ! -f "$ZOOPIDFILE" ]
-    then
-    echo "error: could not find file $ZOOPIDFILE"
-    exit 1
-    else
-    $KILL -9 $(cat "$ZOOPIDFILE")
-    rm "$ZOOPIDFILE"
-    echo STOPPED
-    fi
-    ;;
-upgrade)
-    shift
-    echo "upgrading the servers to 3.*"
-    java "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" 
"-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
-    -cp "$CLASSPATH" $JVMFLAGS org.apache.zookeeper.server.upgrade.UpgradeMain 
${@}
-    echo "Upgrading ... "
-    ;;
-restart)
-    shift
-    "$0" stop ${@}
-    sleep 3
-    "$0" start ${@}
-    ;;
-status)
-    STAT=`echo stat | nc localhost $(grep clientPort "$ZOOCFG" | sed -e 
's/.*=//') 2> /dev/null| grep Mode`
-    if [ "x$STAT" = "x" ]
-    then
-        echo "Error contacting service. It is probably not running."
-    else
-        echo $STAT
-    fi
-    ;;
-*)
-    echo "Usage: $0 {start|stop|restart|status}" >&2
-
-esac

http://git-wip-us.apache.org/repos/asf/ambari/blob/96d3afe0/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/files/zkService.sh
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/files/zkService.sh
 
b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/files/zkService.sh
deleted file mode 100644
index 59bfe90..0000000
--- 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/files/zkService.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/usr/bin/env bash
-#
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-#
-
-zkcli_script=$1
-user=$2
-conf_dir=$3
-/var/lib/ambari-agent/ambari-sudo.sh su $user -s /bin/bash - -c "source 
$conf_dir/zookeeper-env.sh ; echo 'ls /' | $zkcli_script"

http://git-wip-us.apache.org/repos/asf/ambari/blob/96d3afe0/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/files/zkSmoke.sh
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/files/zkSmoke.sh
 
b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/files/zkSmoke.sh
deleted file mode 100644
index 4d1562e..0000000
--- 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/files/zkSmoke.sh
+++ /dev/null
@@ -1,93 +0,0 @@
-#!/usr/bin/env bash
-#
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-#
-
-zk_cli_shell=$1
-smoke_user=$2
-conf_dir=$3
-client_port=$4
-security_enabled=$5
-kinit_path_local=$6
-smoke_user_keytab=$7
-smokeuser_principal=$8
-test_output_file=$9
-export ZOOKEEPER_EXIT_CODE=0
-errors_expr="ERROR|Exception"
-acceptable_expr="SecurityException"
-zkhosts=` grep "^\s*server\.[[:digit:]]"  $conf_dir/zoo.cfg  | cut -f 2 -d '=' 
| cut -f 1 -d ':' | tr '\n' ' ' `
-zk_node1=`echo $zkhosts | tr ' ' '\n' | head -n 1`  
-echo "zk_node1=$zk_node1"
-if [[ $security_enabled == "True" ]]; then
-  kinitcmd="$kinit_path_local -kt $smoke_user_keytab $smokeuser_principal"
-  /var/lib/ambari-agent/ambari-sudo.sh su $smoke_user -s /bin/bash - -c 
"$kinitcmd"
-fi
-
-function verify_output() {
-  if [ -f $test_output_file ]; then
-    errors=`grep -E $errors_expr $test_output_file | grep -v $acceptable_expr`
-    if [ "$?" -eq 0 ]; then
-      echo "Error found in the zookeeper smoke test. Exiting."
-      echo $errors
-      exit 1
-    fi
-  fi
-}
-
-function rename_output(){
-  if [ -f $test_output_file ]; then
-    time=$(date +"%s")
-    output_file=$(echo $test_output_file | cut -f 1 -d '.')
-    errors=`mv $test_output_file $output_file$time.out`
-    if [ "$?" -ne 0 ]; then
-      echo "Error found in the zookeeper smoke test. Exiting."
-      echo $errors      
-      exit 1
-    fi
-  fi           
-}
-
-# Delete /zk_smoketest znode if exists
-/var/lib/ambari-agent/ambari-sudo.sh su $smoke_user -s /bin/bash - -c "source 
$conf_dir/zookeeper-env.sh ;  echo delete /zk_smoketest | ${zk_cli_shell} 
-server $zk_node1:$client_port" 2>&1>$test_output_file
-# Create /zk_smoketest znode on one zookeeper server
-/var/lib/ambari-agent/ambari-sudo.sh su $smoke_user -s /bin/bash - -c "source 
$conf_dir/zookeeper-env.sh ; echo create /zk_smoketest smoke_data | 
${zk_cli_shell} -server $zk_node1:$client_port" 2>&1>>$test_output_file
-verify_output
-rename_output
-
-for i in $zkhosts ; do
-  echo "Running test on host $i"
-  # Verify the data associated with znode across all the nodes in the 
zookeeper quorum
-  /var/lib/ambari-agent/ambari-sudo.sh su $smoke_user -s /bin/bash - -c 
"source $conf_dir/zookeeper-env.sh ; echo 'get /zk_smoketest' | ${zk_cli_shell} 
-server $i:$client_port"
-  /var/lib/ambari-agent/ambari-sudo.sh su $smoke_user -s /bin/bash - -c 
"source $conf_dir/zookeeper-env.sh ; echo 'ls /' | ${zk_cli_shell} -server 
$i:$client_port"
-  output=$(/var/lib/ambari-agent/ambari-sudo.sh su $smoke_user -s /bin/bash - 
-c "source $conf_dir/zookeeper-env.sh ; echo 'get /zk_smoketest' | 
${zk_cli_shell} -server $i:$client_port")
-  echo $output | grep smoke_data
-  if [[ $? -ne 0 ]] ; then
-    echo "Data associated with znode /zk_smoketests is not consistent on host 
$i"
-    ((ZOOKEEPER_EXIT_CODE=$ZOOKEEPER_EXIT_CODE+1))
-  fi
-done
-
-/var/lib/ambari-agent/ambari-sudo.sh su $smoke_user -s /bin/bash - -c "source 
$conf_dir/zookeeper-env.sh ; echo 'delete /zk_smoketest' | ${zk_cli_shell} 
-server $zk_node1:$client_port"
-if [[ "$ZOOKEEPER_EXIT_CODE" -ne "0" ]] ; then
-  echo "Zookeeper Smoke Test: Failed" 
-else
-   echo "Zookeeper Smoke Test: Passed" 
-fi
-exit $ZOOKEEPER_EXIT_CODE

http://git-wip-us.apache.org/repos/asf/ambari/blob/96d3afe0/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/__init__.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/__init__.py
 
b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/__init__.py
deleted file mode 100644
index 35de4bb..0000000
--- 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/__init__.py
+++ /dev/null
@@ -1,20 +0,0 @@
-"""
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-Ambari Agent
-
-"""

http://git-wip-us.apache.org/repos/asf/ambari/blob/96d3afe0/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params.py
 
b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params.py
deleted file mode 100644
index fbefec9..0000000
--- 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params.py
+++ /dev/null
@@ -1,27 +0,0 @@
-"""
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-Ambari Agent
-
-"""
-from ambari_commons import OSCheck
-
-if OSCheck.is_windows_family():
-  from params_windows import *
-else:
-  from params_linux import *
-

http://git-wip-us.apache.org/repos/asf/ambari/blob/96d3afe0/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params_linux.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params_linux.py
 
b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params_linux.py
deleted file mode 100644
index 84cc431..0000000
--- 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params_linux.py
+++ /dev/null
@@ -1,105 +0,0 @@
-"""
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-Ambari Agent
-
-"""
-import status_params
-import os
-
-from resource_management.libraries.functions import format
-from resource_management.libraries.functions.version import 
format_stack_version
-from resource_management.libraries.functions.default import default
-from resource_management.libraries.functions.stack_features import 
check_stack_feature
-from resource_management.libraries.functions import get_kinit_path
-from resource_management.libraries.functions import StackFeature
-from resource_management.libraries.script.script import Script
-from resource_management.libraries.functions.expect import expect
-
-# server configurations
-config = Script.get_config()
-tmp_dir = Script.get_tmp_dir()
-
-stack_version_formatted = status_params.stack_version_formatted
-stack_root = status_params.stack_root
-
-stack_name = status_params.stack_name
-current_version = default("/hostLevelParams/current_version", None)
-component_directory = status_params.component_directory
-
-# New Cluster Stack Version that is defined during the RESTART of a Rolling 
Upgrade
-version = default("/commandParams/version", None)
-
-# default parameters
-zk_home = "/usr"
-zk_bin = "/usr/lib/zookeeper/bin"
-zk_cli_shell = "/usr/lib/zookeeper/bin/zkCli.sh"
-config_dir = "/etc/zookeeper/conf"
-zk_smoke_out = os.path.join(tmp_dir, "zkSmoke.out")
-
-# hadoop parameters for stacks that support rolling_upgrade
-if stack_version_formatted and 
check_stack_feature(StackFeature.ROLLING_UPGRADE, stack_version_formatted):
-  zk_home = format("{stack_root}/current/{component_directory}")
-  zk_bin = format("{stack_root}/current/{component_directory}/bin")
-  zk_cli_shell = 
format("{stack_root}/current/{component_directory}/bin/zkCli.sh")
-  config_dir = status_params.config_dir
-
-
-zk_user = config['configurations']['zookeeper-env']['zk_user']
-hostname = config['hostname']
-user_group = config['configurations']['cluster-env']['user_group']
-zk_env_sh_template = config['configurations']['zookeeper-env']['content']
-
-zk_log_dir = config['configurations']['zookeeper-env']['zk_log_dir']
-zk_data_dir = config['configurations']['zoo.cfg']['dataDir']
-zk_pid_dir = status_params.zk_pid_dir
-zk_pid_file = status_params.zk_pid_file
-zk_server_heapsize_value = 
default('configurations/zookeeper-env/zk_server_heapsize', "1024m")
-zk_server_heapsize = format("-Xmx{zk_server_heapsize_value}")
-
-client_port = default('/configurations/zoo.cfg/clientPort', None)
-
-if 'zoo.cfg' in config['configurations']:
-  zoo_cfg_properties_map = config['configurations']['zoo.cfg']
-else:
-  zoo_cfg_properties_map = {}
-zoo_cfg_properties_map_length = len(zoo_cfg_properties_map)
-
-zk_principal_name = 
default("/configurations/zookeeper-env/zookeeper_principal_name", 
"[email protected]")
-zk_principal = zk_principal_name.replace('_HOST',hostname.lower())
-
-java64_home = config['hostLevelParams']['java_home']
-java_version = expect("/hostLevelParams/java_version", int)
-
-zookeeper_hosts = config['clusterHostInfo']['zookeeper_hosts']
-zookeeper_hosts.sort()
-
-zk_keytab_path = 
config['configurations']['zookeeper-env']['zookeeper_keytab_path']
-zk_server_jaas_file = format("{config_dir}/zookeeper_jaas.conf")
-zk_client_jaas_file = format("{config_dir}/zookeeper_client_jaas.conf")
-security_enabled = config['configurations']['cluster-env']['security_enabled']
-
-smoke_user_keytab = config['configurations']['cluster-env']['smokeuser_keytab']
-smokeuser = config['configurations']['cluster-env']['smokeuser']
-smokeuser_principal = 
config['configurations']['cluster-env']['smokeuser_principal_name']
-kinit_path_local = 
get_kinit_path(default('/configurations/kerberos-env/executable_search_paths', 
None))
-
-#log4j.properties
-if ('zookeeper-log4j' in config['configurations']) and ('content' in 
config['configurations']['zookeeper-log4j']):
-  log4j_props = config['configurations']['zookeeper-log4j']['content']
-else:
-  log4j_props = None

http://git-wip-us.apache.org/repos/asf/ambari/blob/96d3afe0/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params_windows.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params_windows.py
 
b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params_windows.py
deleted file mode 100644
index c36e152..0000000
--- 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params_windows.py
+++ /dev/null
@@ -1,68 +0,0 @@
-"""
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-Ambari Agent
-
-"""
-from ambari_commons.str_utils import ensure_double_backslashes
-from resource_management import *
-import status_params
-
-# server configurations
-config = Script.get_config()
-
-config_dir = None
-stack_root = None
-try:
-  # not used zookeeper_home_dir = os.environ["ZOOKEEPER_HOME"]
-  config_dir = os.environ["ZOOKEEPER_CONF_DIR"]
-  stack_root = os.environ["HADOOP_NODE_INSTALL_ROOT"]
-except:
-  pass
-
-hadoop_user = config["configurations"]["cluster-env"]["hadoop.user.name"]
-zk_user = hadoop_user
-
-# notused zk_log_dir = config['configurations']['zookeeper-env']['zk_log_dir']
-zk_data_dir = 
ensure_double_backslashes(config['configurations']['zoo.cfg']['dataDir'])
-tickTime = config['configurations']['zoo.cfg']['tickTime']
-initLimit = config['configurations']['zoo.cfg']['initLimit']
-syncLimit = config['configurations']['zoo.cfg']['syncLimit']
-clientPort = config['configurations']['zoo.cfg']['clientPort']
-
-if 'zoo.cfg' in config['configurations']:
-  zoo_cfg_properties_map = config['configurations']['zoo.cfg'].copy()
-  # Fix the data dir - ZK won't start unless the backslashes are doubled
-  zoo_cfg_properties_map['dataDir'] = zk_data_dir
-else:
-  zoo_cfg_properties_map = {}
-zoo_cfg_properties_map_length = len(zoo_cfg_properties_map)
-
-zookeeper_hosts = config['clusterHostInfo']['zookeeper_hosts']
-zookeeper_hosts.sort()
-hostname = config['hostname']
-
-_authentication = 
config['configurations']['core-site']['hadoop.security.authentication']
-security_enabled = ( not is_empty(_authentication) and _authentication == 
'kerberos')
-user_group = None
-zookeeper_win_service_name = status_params.zookeeper_win_service_name
-
-#log4j.properties
-if (('zookeeper-log4j' in config['configurations']) and ('content' in 
config['configurations']['zookeeper-log4j'])):
-  log4j_props = config['configurations']['zookeeper-log4j']['content']
-else:
-  log4j_props = None

http://git-wip-us.apache.org/repos/asf/ambari/blob/96d3afe0/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/service_check.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/service_check.py
 
b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/service_check.py
deleted file mode 100644
index 622a5eb..0000000
--- 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/service_check.py
+++ /dev/null
@@ -1,73 +0,0 @@
-"""
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-Ambari Agent
-
-"""
-
-from resource_management import *
-from ambari_commons import OSConst
-from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
-
-class ZookeeperServiceCheck(Script):
-  pass
-
-@OsFamilyImpl(os_family=OsFamilyImpl.DEFAULT)
-class ZookeeperServiceCheckLinux(ZookeeperServiceCheck):
-  def service_check(self, env):
-    import params
-    env.set_params(params)
-
-    File(params.zk_smoke_out,
-         action="delete"
-    )
-
-    File(format("{tmp_dir}/zkSmoke.sh"),
-         mode=0755,
-         content=StaticFile('zkSmoke.sh')
-    )
-
-    if params.security_enabled:
-      smokeUserKeytab=params.smoke_user_keytab
-      smokeUserPrincipal=params.smokeuser_principal
-    else:
-      smokeUserKeytab= "no_keytab"
-      smokeUserPrincipal="no_principal"
-
-
-    cmd_quorum = format("{tmp_dir}/zkSmoke.sh {zk_cli_shell} {smokeuser} 
{config_dir} {client_port} "
-                  "{security_enabled} {kinit_path_local} {smokeUserKeytab} 
{smokeUserPrincipal} {zk_smoke_out}")
-
-    Execute(cmd_quorum,
-            tries=3,
-            try_sleep=5,
-            path='/usr/sbin:/sbin:/usr/local/bin:/bin:/usr/bin',
-            logoutput=True
-    )
-
-@OsFamilyImpl(os_family=OSConst.WINSRV_FAMILY)
-class ZookeeperServiceCheckWindows(ZookeeperServiceCheck):
-  def service_check(self, env):
-    import params
-    env.set_params(params)
-
-    smoke_cmd = os.path.join(params.stack_root,"Run-SmokeTests.cmd")
-    service = "Zookeeper"
-    Execute(format("cmd /C {smoke_cmd} {service}"), user=params.zk_user, 
logoutput=True, tries=3, try_sleep=20)
-
-if __name__ == "__main__":
-  ZookeeperServiceCheck().execute()

http://git-wip-us.apache.org/repos/asf/ambari/blob/96d3afe0/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/status_params.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/status_params.py
 
b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/status_params.py
deleted file mode 100644
index 0a480f2..0000000
--- 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/status_params.py
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/usr/bin/env python
-"""
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-"""
-from ambari_commons import OSCheck
-from resource_management.libraries.functions import format
-from resource_management.libraries.functions.default import default
-from resource_management.libraries.functions.version import 
format_stack_version
-from resource_management.libraries.functions.stack_features import 
check_stack_feature
-from resource_management.libraries.functions import StackFeature
-from resource_management.libraries.functions import get_kinit_path
-from resource_management.libraries.script.script import Script
-
-# a map of the Ambari role to the component name
-# for use with <stack-root>/current/<component>
-SERVER_ROLE_DIRECTORY_MAP = {
-  'ZOOKEEPER_SERVER' : 'zookeeper-server',
-  'ZOOKEEPER_CLIENT' : 'zookeeper-client'
-}
-
-component_directory = 
Script.get_component_from_role(SERVER_ROLE_DIRECTORY_MAP, "ZOOKEEPER_CLIENT")
-
-config = Script.get_config()
-
-if OSCheck.is_windows_family():
-  zookeeper_win_service_name = "zkServer"
-else:
-  zk_pid_dir = config['configurations']['zookeeper-env']['zk_pid_dir']
-  zk_pid_file = format("{zk_pid_dir}/zookeeper_server.pid")
-
-  # Security related/required params
-  hostname = config['hostname']
-  security_enabled = 
config['configurations']['cluster-env']['security_enabled']
-  kinit_path_local = 
get_kinit_path(default('/configurations/kerberos-env/executable_search_paths', 
None))
-  tmp_dir = Script.get_tmp_dir()
-  zk_user =  config['configurations']['zookeeper-env']['zk_user']
-  
-  stack_version_unformatted = str(config['hostLevelParams']['stack_version'])
-  stack_version_formatted = format_stack_version(stack_version_unformatted)
-  stack_root = Script.get_stack_root()
-
-  config_dir = "/etc/zookeeper/conf"
-  if stack_version_formatted and 
check_stack_feature(StackFeature.ROLLING_UPGRADE, stack_version_formatted):
-    config_dir = format("{stack_root}/current/{component_directory}/conf")
-stack_name = default("/hostLevelParams/stack_name", None)
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/96d3afe0/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper.py
 
b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper.py
deleted file mode 100644
index e0ba54b..0000000
--- 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper.py
+++ /dev/null
@@ -1,164 +0,0 @@
-"""
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-Ambari Agent
-
-"""
-import os
-import sys
-
-from resource_management import *
-from resource_management.libraries.functions import conf_select
-from resource_management.libraries.functions import stack_select
-from resource_management.libraries.functions import StackFeature
-from resource_management.libraries.functions.version import compare_versions, 
format_stack_version
-from resource_management.libraries.functions.stack_features import 
check_stack_feature
-from ambari_commons import OSConst
-from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
-
-@OsFamilyFuncImpl(os_family=OsFamilyImpl.DEFAULT)
-def zookeeper(type = None, upgrade_type=None):
-  import params
-
-  if type == 'server':
-    # This path may be missing after Ambari upgrade. We need to create it. We 
need to do this before any configs will
-    # be applied.
-    if upgrade_type is None and not 
os.path.exists(os.path.join(params.stack_root,"/current/zookeeper-server")) and 
params.current_version\
-      and check_stack_feature(StackFeature.ROLLING_UPGRADE, 
format_stack_version(params.version)):
-      conf_select.select(params.stack_name, "zookeeper", 
params.current_version)
-      stack_select.select("zookeeper-server", params.version)
-
-  Directory(params.config_dir,
-            owner=params.zk_user,
-            create_parents = True,
-            group=params.user_group
-  )
-
-  File(os.path.join(params.config_dir, "zookeeper-env.sh"),
-       content=InlineTemplate(params.zk_env_sh_template),
-       owner=params.zk_user,
-       group=params.user_group
-  )
-  
-
-  configFile("zoo.cfg", template_name="zoo.cfg.j2")
-  configFile("configuration.xsl", template_name="configuration.xsl.j2")
-
-  Directory(params.zk_pid_dir,
-            owner=params.zk_user,
-            create_parents = True,
-            group=params.user_group,
-            mode=0755,
-  )
-
-  Directory(params.zk_log_dir,
-            owner=params.zk_user,
-            create_parents = True,
-            group=params.user_group,
-            mode=0755,
-  )
-
-  Directory(params.zk_data_dir,
-            owner=params.zk_user,
-            create_parents = True,
-            cd_access="a",
-            group=params.user_group,
-            mode=0755,
-  )
-
-  if type == 'server':
-    myid = str(sorted(params.zookeeper_hosts).index(params.hostname) + 1)
-
-    File(os.path.join(params.zk_data_dir, "myid"),
-         mode = 0644,
-         content = myid
-    )
-
-  if (params.log4j_props != None):
-    File(os.path.join(params.config_dir, "log4j.properties"),
-         mode=0644,
-         group=params.user_group,
-         owner=params.zk_user,
-         content=params.log4j_props
-    )
-  elif (os.path.exists(os.path.join(params.config_dir, "log4j.properties"))):
-    File(os.path.join(params.config_dir, "log4j.properties"),
-         mode=0644,
-         group=params.user_group,
-         owner=params.zk_user
-    )
-
-  if params.security_enabled:
-    if type == "server":
-      configFile("zookeeper_jaas.conf", template_name="zookeeper_jaas.conf.j2")
-      configFile("zookeeper_client_jaas.conf", 
template_name="zookeeper_client_jaas.conf.j2")
-    else:
-      configFile("zookeeper_client_jaas.conf", 
template_name="zookeeper_client_jaas.conf.j2")
-
-  File(os.path.join(params.config_dir, "zoo_sample.cfg"),
-       owner=params.zk_user,
-       group=params.user_group
-  )
-
-@OsFamilyFuncImpl(os_family=OSConst.WINSRV_FAMILY)
-def zookeeper(type = None, upgrade_type=None):
-  import params
-  configFile("zoo.cfg", template_name="zoo.cfg.j2", mode="f")
-  configFile("configuration.xsl", template_name="configuration.xsl.j2", 
mode="f")
-
-  ServiceConfig(params.zookeeper_win_service_name,
-                action="change_user",
-                username = params.zk_user,
-                password = Script.get_password(params.zk_user))
-
-
-  Directory(params.zk_data_dir,
-            owner=params.zk_user,
-            mode="(OI)(CI)F",
-            create_parents = True
-  )
-  if (params.log4j_props != None):
-    File(os.path.join(params.config_dir, "log4j.properties"),
-         mode="f",
-         owner=params.zk_user,
-         content=params.log4j_props
-    )
-  elif (os.path.exists(os.path.join(params.config_dir, "log4j.properties"))):
-    File(os.path.join(params.config_dir, "log4j.properties"),
-         mode="f",
-         owner=params.zk_user
-    )
-  if type == 'server':
-    myid = str(sorted(params.zookeeper_hosts).index(params.hostname) + 1)
-    File(os.path.join(params.zk_data_dir, "myid"),
-         owner=params.zk_user,
-         mode = "f",
-         content = myid
-    )
-
-def configFile(name, template_name=None, mode=None):
-  import params
-
-  File(os.path.join(params.config_dir, name),
-       content=Template(template_name),
-       owner=params.zk_user,
-       group=params.user_group,
-       mode=mode
-  )
-
-
-

http://git-wip-us.apache.org/repos/asf/ambari/blob/96d3afe0/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_client.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_client.py
 
b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_client.py
deleted file mode 100644
index de4d6e1..0000000
--- 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_client.py
+++ /dev/null
@@ -1,83 +0,0 @@
-"""
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-Ambari Agent
-
-"""
-
-import sys
-from resource_management import *
-from resource_management.libraries.functions import conf_select
-from resource_management.libraries.functions import stack_select
-from resource_management.libraries.functions import StackFeature
-from resource_management.libraries.functions.version import compare_versions, 
format_stack_version
-from resource_management.libraries.functions.format import format
-from resource_management.libraries.functions.stack_features import 
check_stack_feature 
-from ambari_commons import OSConst
-from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
-
-from zookeeper import zookeeper
-
-class ZookeeperClient(Script):
-  def configure(self, env):
-    import params
-    env.set_params(params)
-    zookeeper(type='client')
-    pass
-
-  def start(self, env, upgrade_type=None):
-    import params
-    env.set_params(params)
-    self.configure(env)
-    pass
-
-  def stop(self, env, upgrade_type=None):
-    import params
-    env.set_params(params)
-    pass
-
-  def status(self, env):
-    raise ClientComponentHasNoStatus()
-
-@OsFamilyImpl(os_family=OsFamilyImpl.DEFAULT)
-class ZookeeperClientLinux(ZookeeperClient):
-  def get_component_name(self):
-    return "zookeeper-client"
-
-  def install(self, env):
-    self.install_packages(env)
-    self.configure(env)
-
-  def pre_upgrade_restart(self, env, upgrade_type=None):
-    Logger.info("Executing Stack Upgrade pre-restart")
-    import params
-    env.set_params(params)
-
-    if params.version and check_stack_feature(StackFeature.ROLLING_UPGRADE, 
format_stack_version(params.version)):
-      conf_select.select(params.stack_name, "zookeeper", params.version)
-      stack_select.select("zookeeper-client", params.version)
-
-@OsFamilyImpl(os_family=OSConst.WINSRV_FAMILY)
-class ZookeeperClientWindows(ZookeeperClient):
-  def install(self, env):
-    # client checks env var to determine if it is installed
-    if not os.environ.has_key("ZOOKEEPER_HOME"):
-      self.install_packages(env)
-    self.configure(env)
-
-if __name__ == "__main__":
-  ZookeeperClient().execute()

http://git-wip-us.apache.org/repos/asf/ambari/blob/96d3afe0/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_server.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_server.py
 
b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_server.py
deleted file mode 100644
index 8a8bb11..0000000
--- 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_server.py
+++ /dev/null
@@ -1,189 +0,0 @@
-"""
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-Ambari Agent
-
-"""
-import random
-import sys
-
-from resource_management.libraries.script.script import Script
-from resource_management.libraries.functions import get_unique_id_and_date
-from resource_management.libraries.functions import conf_select
-from resource_management.libraries.functions import stack_select
-from resource_management.libraries.functions import StackFeature
-from resource_management.libraries.functions.version import compare_versions, 
format_stack_version
-from resource_management.libraries.functions.stack_features import 
check_stack_feature
-from resource_management.libraries.functions.security_commons import 
build_expectations, \
-  cached_kinit_executor, get_params_from_filesystem, 
validate_security_config_properties, \
-  FILE_TYPE_JAAS_CONF
-from resource_management.core import shell
-from resource_management.core.logger import Logger
-from resource_management.core.resources.system import Execute
-from resource_management.libraries.functions.check_process_status import 
check_process_status
-from resource_management.libraries.functions.format import format
-from resource_management.libraries.functions.validate import 
call_and_match_output
-from zookeeper import zookeeper
-from zookeeper_service import zookeeper_service
-from ambari_commons import OSConst
-from ambari_commons.os_family_impl import OsFamilyImpl
-
-
-class ZookeeperServer(Script):
-
-  def configure(self, env, upgrade_type=None):
-    import params
-    env.set_params(params)
-    zookeeper(type='server', upgrade_type=upgrade_type)
-
-  def start(self, env, upgrade_type=None):
-    import params
-    env.set_params(params)
-    self.configure(env, upgrade_type=upgrade_type)
-    zookeeper_service(action='start', upgrade_type=upgrade_type)
-
-  def stop(self, env, upgrade_type=None):
-    import params
-    env.set_params(params)
-    zookeeper_service(action='stop', upgrade_type=upgrade_type)
-
-@OsFamilyImpl(os_family=OsFamilyImpl.DEFAULT)
-class ZookeeperServerLinux(ZookeeperServer):
-
-  def get_component_name(self):
-    return "zookeeper-server"
-
-  def install(self, env):
-    self.install_packages(env)
-    self.configure(env)
-
-  def pre_upgrade_restart(self, env, upgrade_type=None):
-    Logger.info("Executing Stack Upgrade pre-restart")
-    import params
-    env.set_params(params)
-    
-    if params.version and check_stack_feature(StackFeature.ROLLING_UPGRADE, 
format_stack_version(params.version)):
-      conf_select.select(params.stack_name, "zookeeper", params.version)
-      stack_select.select("zookeeper-server", params.version)
-
-  def post_upgrade_restart(self, env, upgrade_type=None):
-    if upgrade_type == "nonrolling":
-      return
-
-    Logger.info("Executing Stack Upgrade post-restart")
-    import params
-    env.set_params(params)
-    zk_server_host = random.choice(params.zookeeper_hosts)
-    cli_shell = format("{zk_cli_shell} -server {zk_server_host}:{client_port}")
-    # Ensure that a quorum is still formed.
-    unique = get_unique_id_and_date()
-    create_command = format("echo 'create /{unique} mydata' | {cli_shell}")
-    list_command = format("echo 'ls /' | {cli_shell}")
-    delete_command = format("echo 'delete /{unique} ' | {cli_shell}")
-
-    quorum_err_message = "Failed to establish zookeeper quorum"
-    call_and_match_output(create_command, 'Created', quorum_err_message, 
user=params.zk_user)
-    call_and_match_output(list_command, r"\[.*?" + unique + ".*?\]", 
quorum_err_message, user=params.zk_user)
-    shell.call(delete_command, user=params.zk_user)
-
-    if params.client_port:
-      check_leader_command = format("echo stat | nc localhost {client_port} | 
grep Mode")
-      code, out = shell.call(check_leader_command, logoutput=False)
-      if code == 0 and out:
-        Logger.info(out)
-
-  def status(self, env):
-    import status_params
-    env.set_params(status_params)
-    check_process_status(status_params.zk_pid_file)
-
-  def security_status(self, env):
-    import status_params
-    env.set_params(status_params)
-
-    if status_params.security_enabled:
-      # Expect the following files to be available in params.config_dir:
-      #   zookeeper_jaas.conf
-      #   zookeeper_client_jaas.conf
-      try:
-        props_value_check = None
-        props_empty_check = ['Server/keyTab', 'Server/principal']
-        props_read_check = ['Server/keyTab']
-        zk_env_expectations = build_expectations('zookeeper_jaas', 
props_value_check, props_empty_check,
-                                                 props_read_check)
-
-        zk_expectations = {}
-        zk_expectations.update(zk_env_expectations)
-
-        security_params = get_params_from_filesystem(status_params.config_dir,
-                                                   {'zookeeper_jaas.conf': 
FILE_TYPE_JAAS_CONF})
-
-        result_issues = validate_security_config_properties(security_params, 
zk_expectations)
-        if not result_issues:  # If all validations passed successfully
-          # Double check the dict before calling execute
-          if ( 'zookeeper_jaas' not in security_params
-               or 'Server' not in security_params['zookeeper_jaas']
-               or 'keyTab' not in security_params['zookeeper_jaas']['Server']
-               or 'principal' not in 
security_params['zookeeper_jaas']['Server']):
-            self.put_structured_out({"securityState": "ERROR"})
-            self.put_structured_out({"securityIssuesFound": "Keytab file or 
principal are not set property."})
-            return
-
-          cached_kinit_executor(status_params.kinit_path_local,
-                                status_params.zk_user,
-                                
security_params['zookeeper_jaas']['Server']['keyTab'],
-                                
security_params['zookeeper_jaas']['Server']['principal'],
-                                status_params.hostname,
-                                status_params.tmp_dir)
-          self.put_structured_out({"securityState": "SECURED_KERBEROS"})
-        else:
-          issues = []
-          for cf in result_issues:
-            issues.append("Configuration file %s did not pass the validation. 
Reason: %s" % (cf, result_issues[cf]))
-          self.put_structured_out({"securityIssuesFound": ". ".join(issues)})
-          self.put_structured_out({"securityState": "UNSECURED"})
-      except Exception as e:
-        self.put_structured_out({"securityState": "ERROR"})
-        self.put_structured_out({"securityStateErrorInfo": str(e)})
-    else:
-      self.put_structured_out({"securityState": "UNSECURED"})
-      
-  def get_log_folder(self):
-    import params
-    return params.zk_log_dir
-  
-  def get_user(self):
-    import params
-    return params.zk_user
-
-
-@OsFamilyImpl(os_family=OSConst.WINSRV_FAMILY)
-class ZookeeperServerWindows(ZookeeperServer):
-  def install(self, env):
-    from resource_management.libraries.functions.windows_service_utils import 
check_windows_service_exists
-    import params
-    if not check_windows_service_exists(params.zookeeper_win_service_name):
-      self.install_packages(env)
-    self.configure(env)
-
-  def status(self, env):
-    from resource_management.libraries.functions.windows_service_utils import 
check_windows_service_status
-    import status_params
-    check_windows_service_status(status_params.zookeeper_win_service_name)
-
-if __name__ == "__main__":
-  ZookeeperServer().execute()

http://git-wip-us.apache.org/repos/asf/ambari/blob/96d3afe0/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_service.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_service.py
 
b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_service.py
deleted file mode 100644
index 9f943d7..0000000
--- 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_service.py
+++ /dev/null
@@ -1,82 +0,0 @@
-"""
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-Ambari Agent
-
-"""
-
-import os
-from resource_management import *
-from ambari_commons import OSConst
-from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
-from resource_management.libraries.functions import conf_select
-from resource_management.libraries.functions import stack_select
-from resource_management.libraries.functions import StackFeature
-from resource_management.libraries.functions.version import compare_versions, 
format_stack_version
-from resource_management.libraries.functions.stack_features import 
check_stack_feature
-from resource_management.libraries.functions.show_logs import show_logs
-
-@OsFamilyFuncImpl(os_family=OsFamilyImpl.DEFAULT)
-def zookeeper_service(action='start', upgrade_type=None):
-  import params
-
-  # This path may be missing after Ambari upgrade. We need to create it.
-  if upgrade_type is None and not 
os.path.exists(os.path.join(params.stack_root,"/current/zookeeper-server")) and 
params.current_version \
-    and check_stack_feature(StackFeature.ROLLING_UPGRADE, 
format_stack_version(params.version)):
-    conf_select.select(params.stack_name, "zookeeper", params.current_version)
-    stack_select.select("zookeeper-server", params.version)
-
-  cmd = format("env ZOOCFGDIR={config_dir} ZOOCFG=zoo.cfg 
{zk_bin}/zkServer.sh")
-
-  if action == 'start':
-    daemon_cmd = format("source {config_dir}/zookeeper-env.sh ; {cmd} start")
-    no_op_test = format("ls {zk_pid_file} >/dev/null 2>&1 && ps -p `cat 
{zk_pid_file}` >/dev/null 2>&1")
-    
-    try:
-      Execute(daemon_cmd,
-              not_if=no_op_test,
-              user=params.zk_user
-      )
-    except:
-      show_logs(params.zk_log_dir, params.zk_user)
-      raise
-
-    if params.security_enabled:
-      kinit_cmd = format("{kinit_path_local} -kt {smoke_user_keytab} 
{smokeuser_principal};")
-
-      Execute(kinit_cmd,
-              user=params.smokeuser
-      )
-
-  elif action == 'stop':
-    daemon_cmd = format("source {config_dir}/zookeeper-env.sh ; {cmd} stop")
-    try:
-      Execute(daemon_cmd,
-              user=params.zk_user
-      )
-    except:
-      show_logs(params.zk_log_dir, params.zk_user)
-      raise
-    File(params.zk_pid_file, action="delete")
-
-@OsFamilyFuncImpl(os_family=OSConst.WINSRV_FAMILY)
-def zookeeper_service(action='start', rolling_restart=False):
-  import params
-  if action == 'start':
-    Service(params.zookeeper_win_service_name, action="start")
-  elif action == 'stop':
-    Service(params.zookeeper_win_service_name, action="stop")
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/96d3afe0/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/templates/configuration.xsl.j2
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/templates/configuration.xsl.j2
 
b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/templates/configuration.xsl.j2
deleted file mode 100644
index 8830c45..0000000
--- 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/templates/configuration.xsl.j2
+++ /dev/null
@@ -1,42 +0,0 @@
-{#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#}
-
-<?xml version="1.0"?>
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">
-<xsl:output method="html"/>
-<xsl:template match="configuration">
-<html>
-<body>
-<table border="1">
-<tr>
- <td>name</td>
- <td>value</td>
- <td>description</td>
-</tr>
-<xsl:for-each select="property">
-  <tr>
-     <td><a name="{name}"><xsl:value-of select="name"/></a></td>
-     <td><xsl:value-of select="value"/></td>
-     <td><xsl:value-of select="description"/></td>
-  </tr>
-</xsl:for-each>
-</table>
-</body>
-</html>
-</xsl:template>
-</xsl:stylesheet>

http://git-wip-us.apache.org/repos/asf/ambari/blob/96d3afe0/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/templates/zoo.cfg.j2
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/templates/zoo.cfg.j2
 
b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/templates/zoo.cfg.j2
deleted file mode 100644
index 1fbc0cc..0000000
--- 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/templates/zoo.cfg.j2
+++ /dev/null
@@ -1,53 +0,0 @@
-{#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#}
-
-#
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-#
-#
-
-{% for key, value in zoo_cfg_properties_map.iteritems() -%}
-  {{key}}={{value}}
-{% endfor %}
-{% for host in zookeeper_hosts -%}
-server.{{loop.index}}={{host}}:2888:3888
-{% endfor %}
-
-{% if security_enabled -%}
-authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
-jaasLoginRenew=3600000
-kerberos.removeHostFromPrincipal=true
-kerberos.removeRealmFromPrincipal=true
-{% endif %}

http://git-wip-us.apache.org/repos/asf/ambari/blob/96d3afe0/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/templates/zookeeper_client_jaas.conf.j2
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/templates/zookeeper_client_jaas.conf.j2
 
b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/templates/zookeeper_client_jaas.conf.j2
deleted file mode 100644
index 38f9721..0000000
--- 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/templates/zookeeper_client_jaas.conf.j2
+++ /dev/null
@@ -1,23 +0,0 @@
-{#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#}
-
-Client {
-com.sun.security.auth.module.Krb5LoginModule required
-useKeyTab=false
-useTicketCache=true;
-};

http://git-wip-us.apache.org/repos/asf/ambari/blob/96d3afe0/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/templates/zookeeper_jaas.conf.j2
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/templates/zookeeper_jaas.conf.j2
 
b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/templates/zookeeper_jaas.conf.j2
deleted file mode 100644
index c3e9505..0000000
--- 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/templates/zookeeper_jaas.conf.j2
+++ /dev/null
@@ -1,26 +0,0 @@
-{#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#}
-
-Server {
-com.sun.security.auth.module.Krb5LoginModule required
-useKeyTab=true
-storeKey=true
-useTicketCache=false
-keyTab="{{zk_keytab_path}}"
-principal="{{zk_principal}}";
-};

http://git-wip-us.apache.org/repos/asf/ambari/blob/96d3afe0/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5/alerts.json
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5/alerts.json 
b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5/alerts.json
new file mode 100644
index 0000000..469036a
--- /dev/null
+++ 
b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5/alerts.json
@@ -0,0 +1,60 @@
+{
+  "ZOOKEEPER": {
+    "service": [
+      {
+        "name": "zookeeper_server_process_percent",
+        "label": "Percent ZooKeeper Servers Available",
+        "description": "This alert is triggered if the number of down 
ZooKeeper servers in the cluster is greater than the configured critical 
threshold. It aggregates the results of ZooKeeper process checks.",
+        "interval": 1,
+        "scope": "SERVICE",
+        "enabled": true,
+        "source": {
+          "type": "AGGREGATE",
+          "alert_name": "zookeeper_server_process",
+          "reporting": {
+            "ok": {
+              "text": "affected: [{1}], total: [{0}]"
+            },
+            "warning": {
+              "text": "affected: [{1}], total: [{0}]",
+              "value": 35
+            },
+            "critical": {
+              "text": "affected: [{1}], total: [{0}]",
+              "value": 70
+            },
+            "units" : "%",
+            "type": "PERCENT"
+          }
+        }
+      }  
+    ],
+    "ZOOKEEPER_SERVER": [
+      {
+        "name": "zookeeper_server_process",
+        "label": "ZooKeeper Server Process",
+        "description": "This host-level alert is triggered if the ZooKeeper 
server process cannot be determined to be up and listening on the network.",
+        "interval": 1,
+        "scope": "ANY",
+        "source": {
+          "type": "PORT",
+          "uri": "{{zoo.cfg/clientPort}}",
+          "default_port": 2181,
+          "reporting": {
+            "ok": {
+              "text": "TCP OK - {0:.3f}s response on port {1}"
+            },
+            "warning": {
+              "text": "TCP OK - {0:.3f}s response on port {1}",
+              "value": 1.5
+            },
+            "critical": {
+              "text": "Connection failed: {0} to {1}:{2}",
+              "value": 5.0
+            }
+          }
+        }
+      }
+    ]
+  }
+}

Reply via email to