Repository: ambari
Updated Branches:
  refs/heads/branch-2.5 9a555e7b1 -> 984d46056
  refs/heads/trunk 6ba9bd0a7 -> 2c362fd0f


http://git-wip-us.apache.org/repos/asf/ambari/blob/984d4605/ambari-server/src/main/resources/stacks/PERF/1.0/services/YARN/quicklinks/quicklinks.json
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/stacks/PERF/1.0/services/YARN/quicklinks/quicklinks.json
 
b/ambari-server/src/main/resources/stacks/PERF/1.0/services/YARN/quicklinks/quicklinks.json
deleted file mode 100644
index 0aca8e3..0000000
--- 
a/ambari-server/src/main/resources/stacks/PERF/1.0/services/YARN/quicklinks/quicklinks.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
-  "name": "default",
-  "description": "default quick links configuration",
-  "configuration": {
-    "protocol":
-    {
-      "type":"https",
-      "checks":[
-        {
-          "property":"yarn.http.policy",
-          "desired":"HTTPS_ONLY",
-          "site":"yarn-site"
-        }
-      ]
-    },
-
-    "links": [
-      {
-        "name": "resourcemanager_ui",
-        "label": "ResourceManager UI",
-        "requires_user_name": "false",
-        "url": "%@://%@:%@",
-        "port":{
-          "http_property": "yarn.resourcemanager.webapp.address",
-          "http_default_port": "8088",
-          "https_property": "yarn.resourcemanager.webapp.https.address",
-          "https_default_port": "8090",
-          "regex": "\\w*:(\\d+)",
-          "site": "yarn-site"
-        }
-      },
-      {
-        "name": "resourcemanager_logs",
-        "label": "ResourceManager logs",
-        "requires_user_name": "false",
-        "url": "%@://%@:%@/logs",
-        "port":{
-          "http_property": "yarn.resourcemanager.webapp.address",
-          "http_default_port": "8088",
-          "https_property": "yarn.resourcemanager.webapp.https.address",
-          "https_default_port": "8090",
-          "regex": "\\w*:(\\d+)",
-          "site": "yarn-site"
-        }
-      },
-      {
-        "name": "resourcemanager_jmx",
-        "label":"ResourceManager JMX",
-        "requires_user_name": "false",
-        "url":"%@://%@:%@/jmx",
-        "port":{
-          "http_property": "yarn.resourcemanager.webapp.address",
-          "http_default_port": "8088",
-          "https_property": "yarn.resourcemanager.webapp.https.address",
-          "https_default_port": "8090",
-          "regex": "\\w*:(\\d+)",
-          "site": "yarn-site"
-        }
-      },
-      {
-        "name": "thread_stacks",
-        "label":"Thread Stacks",
-        "requires_user_name": "false",
-        "url":"%@://%@:%@/stacks",
-        "port":{
-          "http_property": "yarn.resourcemanager.webapp.address",
-          "http_default_port": "8088",
-          "https_property": "yarn.resourcemanager.webapp.https.address",
-          "https_default_port": "8090",
-          "regex": "\\w*:(\\d+)",
-          "site": "yarn-site"
-        }
-      }
-    ]
-  }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/984d4605/ambari-server/src/main/resources/stacks/PERF/1.0/services/YARN/themes-mapred/theme.json
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/stacks/PERF/1.0/services/YARN/themes-mapred/theme.json
 
b/ambari-server/src/main/resources/stacks/PERF/1.0/services/YARN/themes-mapred/theme.json
deleted file mode 100644
index 5019447..0000000
--- 
a/ambari-server/src/main/resources/stacks/PERF/1.0/services/YARN/themes-mapred/theme.json
+++ /dev/null
@@ -1,132 +0,0 @@
-{
-  "name": "default",
-  "description": "Default theme for MAPREDUCE service",
-  "configuration": {
-    "layouts": [
-      {
-        "name": "default",
-        "tabs": [
-          {
-            "name": "settings",
-            "display-name": "Settings",
-            "layout": {
-              "tab-columns": "1",
-              "tab-rows": "1",
-              "sections": [
-                {
-                  "name": "section-mr-scheduler",
-                  "display-name": "MapReduce",
-                  "row-index": "0",
-                  "column-index": "0",
-                  "row-span": "1",
-                  "column-span": "1",
-                  "section-columns": "3",
-                  "section-rows": "1",
-                  "subsections": [
-                    {
-                      "name": "subsection-mr-scheduler-row1-col1",
-                      "display-name": "MapReduce Framework",
-                      "row-index": "0",
-                      "column-index": "0",
-                      "row-span": "1",
-                      "column-span": "1"
-                    },
-                    {
-                      "name": "subsection-mr-scheduler-row1-col2",
-                      "row-index": "0",
-                      "column-index": "1",
-                      "row-span": "1",
-                      "column-span": "1"
-                    },
-                    {
-                      "name": "subsection-mr-scheduler-row1-col3",
-                      "row-index": "0",
-                      "column-index": "2",
-                      "row-span": "1",
-                      "column-span": "1"
-                    },
-                    {
-                      "name": "subsection-mr-scheduler-row2-col1",
-                      "display-name": "MapReduce AppMaster",
-                      "row-index": "1",
-                      "column-index": "0",
-                      "row-span": "1",
-                      "column-span": "3"
-                    }
-                  ]
-                }
-              ]
-            }
-          }
-        ]
-      }
-    ],
-    "placement": {
-      "configuration-layout": "default",
-      "configs": [
-        {
-          "config": "mapred-site/mapreduce.map.memory.mb",
-          "subsection-name": "subsection-mr-scheduler-row1-col1"
-        },
-        {
-          "config": "mapred-site/mapreduce.reduce.memory.mb",
-          "subsection-name": "subsection-mr-scheduler-row1-col2"
-        },
-        {
-          "config": "mapred-site/yarn.app.mapreduce.am.resource.mb",
-          "subsection-name": "subsection-mr-scheduler-row2-col1"
-        },
-        {
-          "config": "mapred-site/mapreduce.task.io.sort.mb",
-          "subsection-name": "subsection-mr-scheduler-row1-col3"
-        }
-      ]
-    },
-    "widgets": [
-      {
-        "config": "mapred-site/mapreduce.map.memory.mb",
-        "widget": {
-          "type": "slider",
-          "units": [
-            {
-              "unit-name": "GB"
-            }
-          ]
-        }
-      },
-      {
-        "config": "mapred-site/mapreduce.reduce.memory.mb",
-        "widget": {
-          "type": "slider",
-          "units": [
-            {
-              "unit-name": "GB"
-            }
-          ]
-        }
-      },
-      {
-        "config": "mapred-site/yarn.app.mapreduce.am.resource.mb",
-        "widget": {
-          "type": "slider",
-          "units": [
-            {
-              "unit-name": "GB"
-            }
-          ]
-        }
-      },
-      {
-        "config": "mapred-site/mapreduce.task.io.sort.mb",
-        "widget": {
-          "type": "slider",
-          "units": [
-            {
-              "unit-name": "MB"
-            }
-          ]
-        }
-      }
-    ]
-  }
-}

http://git-wip-us.apache.org/repos/asf/ambari/blob/984d4605/ambari-server/src/main/resources/stacks/PERF/1.0/services/YARN/themes/theme.json
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/stacks/PERF/1.0/services/YARN/themes/theme.json
 
b/ambari-server/src/main/resources/stacks/PERF/1.0/services/YARN/themes/theme.json
deleted file mode 100644
index 758cf0c..0000000
--- 
a/ambari-server/src/main/resources/stacks/PERF/1.0/services/YARN/themes/theme.json
+++ /dev/null
@@ -1,250 +0,0 @@
-{
-  "name": "default",
-  "description": "Default theme for YARN service",
-  "configuration": {
-    "layouts": [
-      {
-        "name": "default",
-        "tabs": [
-          {
-            "name": "settings",
-            "display-name": "Settings",
-            "layout": {
-              "tab-columns": "3",
-              "tab-rows": "2",
-              "sections": [
-                {
-                  "name": "section-nm-sizing",
-                  "display-name": "Memory",
-                  "row-index": "0",
-                  "column-index": "0",
-                  "row-span": "1",
-                  "column-span": "2",
-                  "section-columns": "2",
-                  "section-rows": "1",
-                  "subsections": [
-                    {
-                      "name": "subsection-nm-sizing-col1",
-                      "display-name": "Node",
-                      "row-index": "0",
-                      "column-index": "0",
-                      "row-span": "1",
-                      "column-span": "1"
-                    },
-                    {
-                      "name": "subsection-nm-sizing-col2",
-                      "display-name": "Container",
-                      "row-index": "0",
-                      "column-index": "1",
-                      "row-span": "1",
-                      "column-span": "1"
-                    }
-                  ]
-                },
-                {
-                  "name": "section-yarn-platform-features",
-                  "display-name": "YARN Features",
-                  "row-index": "0",
-                  "column-index": "2",
-                  "row-span": "1",
-                  "column-span": "1",
-                  "section-columns": "1",
-                  "section-rows": "1",
-                  "subsections": [
-                    {
-                      "name": "subsection-yarn-platform-features-col1",
-                      "row-index": "0",
-                      "column-index": "0",
-                      "row-span": "1",
-                      "column-span": "1"
-                    }
-                  ]
-                },
-                {
-                  "name": "section-container-sizing",
-                  "display-name": "CPU",
-                  "row-index": "1",
-                  "column-index": "0",
-                  "row-span": "1",
-                  "column-span": "2",
-                  "section-columns": "2",
-                  "section-rows": "1",
-                  "subsections": [
-                    {
-                      "name": "subsection-container-sizing-col1",
-                      "display-name": "Node",
-                      "row-index": "0",
-                      "column-index": "0",
-                      "row-span": "1",
-                      "column-span": "1"
-                    },
-                    {
-                      "name": "subsection-container-sizing-col2",
-                      "display-name": "Container",
-                      "row-index": "0",
-                      "column-index": "1",
-                      "row-span": "1",
-                      "column-span": "1"
-                    }
-                  ]
-                }
-              ]
-            }
-          }
-        ]
-      }
-    ],
-    "placement": {
-      "configuration-layout": "default",
-      "configs": [
-        {
-          "config": "yarn-site/yarn.nodemanager.resource.memory-mb",
-          "subsection-name": "subsection-nm-sizing-col1"
-        },
-        {
-          "config": "yarn-site/yarn.scheduler.minimum-allocation-mb",
-          "subsection-name": "subsection-nm-sizing-col2"
-        },
-        {
-          "config": "yarn-site/yarn.scheduler.maximum-allocation-mb",
-          "subsection-name": "subsection-nm-sizing-col2"
-        },
-        {
-          "config": "yarn-site/yarn.node-labels.enabled",
-          "subsection-name": "subsection-yarn-platform-features-col1"
-        },
-        {
-          "config": "yarn-site/yarn.resourcemanager.scheduler.monitor.enable",
-          "subsection-name": "subsection-yarn-platform-features-col1"
-        },
-        {
-          "config": 
"capacity-scheduler/yarn.scheduler.capacity.resource-calculator",
-          "subsection-name": "subsection-container-sizing-col1"
-        },
-        {
-          "config": "yarn-env/yarn_cgroups_enabled",
-          "subsection-name": "subsection-container-sizing-col1"
-        },
-        {
-          "config": 
"yarn-site/yarn.nodemanager.resource.percentage-physical-cpu-limit",
-          "subsection-name": "subsection-container-sizing-col1"
-        },
-        {
-          "config": "yarn-site/yarn.nodemanager.resource.cpu-vcores",
-          "subsection-name": "subsection-container-sizing-col1"
-        },
-        {
-          "config": "yarn-site/yarn.scheduler.minimum-allocation-vcores",
-          "subsection-name": "subsection-container-sizing-col2"
-        },
-        {
-          "config": "yarn-site/yarn.scheduler.maximum-allocation-vcores",
-          "subsection-name": "subsection-container-sizing-col2"
-        }
-      ]
-    },
-    "widgets": [
-      {
-        "config": "yarn-site/yarn.nodemanager.resource.memory-mb",
-        "widget": {
-          "type": "slider",
-          "units": [
-            {
-              "unit-name": "MB"
-            }
-          ]
-        }
-      },
-      {
-        "config": 
"yarn-site/yarn.nodemanager.resource.percentage-physical-cpu-limit",
-        "widget": {
-          "type": "slider",
-          "units": [
-            {
-              "unit-name": "percent"
-            }
-          ]
-        }
-      },
-      {
-        "config": "yarn-site/yarn.nodemanager.resource.cpu-vcores",
-        "widget": {
-          "type": "slider",
-          "units": [
-            {
-              "unit-name": "int"
-            }
-          ]
-        }
-      },
-      {
-        "config": "yarn-site/yarn.scheduler.minimum-allocation-mb",
-        "widget": {
-          "type": "slider",
-          "units": [
-            {
-              "unit-name": "MB"
-            }
-          ]
-        }
-      },
-      {
-        "config": "yarn-site/yarn.scheduler.maximum-allocation-mb",
-        "widget": {
-          "type": "slider",
-          "units": [
-            {
-              "unit-name": "MB"
-            }
-          ]
-        }
-      },
-      {
-        "config": "yarn-site/yarn.scheduler.minimum-allocation-vcores",
-        "widget": {
-          "type": "slider",
-          "units": [
-            {
-              "unit-name": "int"
-            }
-          ]
-        }
-      },
-      {
-        "config": "yarn-site/yarn.scheduler.maximum-allocation-vcores",
-        "widget": {
-          "type": "slider",
-          "units": [
-            {
-              "unit-name": "int"
-            }
-          ]
-        }
-      },
-      {
-        "config": "yarn-site/yarn.node-labels.enabled",
-        "widget": {
-          "type": "toggle"
-        }
-      },
-      {
-        "config": "yarn-env/yarn_cgroups_enabled",
-        "widget": {
-          "type": "toggle"
-        }
-      },
-      {
-        "config": "yarn-site/yarn.resourcemanager.scheduler.monitor.enable",
-        "widget": {
-          "type": "toggle"
-        }
-      },
-      {
-        "config": 
"capacity-scheduler/yarn.scheduler.capacity.resource-calculator",
-        "widget": {
-          "type": "toggle"
-        }
-      }
-    ]
-  }
-}

http://git-wip-us.apache.org/repos/asf/ambari/blob/984d4605/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/alerts.json
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/alerts.json
 
b/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/alerts.json
deleted file mode 100644
index 4af7ae9..0000000
--- 
a/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/alerts.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-    "ZOOKEEPER": {
-
-        "ZOOKEEPER_SERVER": [
-            {
-                "name": "zookeeper_server_process",
-                "label": "Zookeeper server Process",
-                "description": "Alert for zk server component process status",
-                "interval": 1,
-                "scope": "HOST",
-                "enabled": true,
-                "source": {
-                    "type": "SCRIPT",
-                    "path": 
"PERF/1.0/services/ZOOKEEPER/package/alerts/alert_zk_server_process.py",
-                    "parameters": []
-                }
-            }
-        ]
-    }
-}

http://git-wip-us.apache.org/repos/asf/ambari/blob/984d4605/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/configuration/zk-alert-config.xml
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/configuration/zk-alert-config.xml
 
b/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/configuration/zk-alert-config.xml
deleted file mode 100644
index 392eea7..0000000
--- 
a/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/configuration/zk-alert-config.xml
+++ /dev/null
@@ -1,80 +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 xmlns:xi="http://www.w3.org/2001/XInclude"; 
supports_final="true">
-
-    <property>
-        <name>alert.behavior.type</name>
-        <value>percentage</value>
-        <description>
-            This property describes type of alert behaviour.
-            There are three types percentage, timeout, flip.
-        </description>
-        <on-ambari-upgrade add="false"/>
-    </property>
-
-
-    <property>
-        <name>alert.success.percentage</name>
-        <value>100</value>
-        <description>
-            This property will be actual only when alert.behaviour.type
-            set to "percentage". Here you should set percent of successful
-            alert checks.
-        </description>
-        <on-ambari-upgrade add="false"/>
-    </property>
-
-
-    <property>
-        <name>alert.timeout.return.value</name>
-        <value>false</value>
-        <description>
-            This property will be actual only when alert.behaviour.type
-            set to "timeout". Here you should set result which alert will
-            return after timeout, false|true|none.
-        </description>
-        <on-ambari-upgrade add="false"/>
-    </property>
-
-    <property>
-        <name>alert.timeout.secs</name>
-        <value>120</value>
-        <description>
-            This property will be actual only when alert.behaviour.type
-            set to "timeout". Here you should set number of seconds for
-            alert to sleep.
-        </description>
-        <on-ambari-upgrade add="false"/>
-    </property>
-
-
-    <property>
-        <name>alert.flip.interval.mins</name>
-        <value>3</value>
-        <description>
-            This property will be actual only when alert.behaviour.type
-            set to "flip". Here you should set number of minutes at which
-            the alert should flip from true|false.
-        </description>
-        <on-ambari-upgrade add="false"/>
-    </property>
-
-
-</configuration>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/984d4605/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/kerberos.json
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/kerberos.json
 
b/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/kerberos.json
deleted file mode 100644
index 0a64ea5..0000000
--- 
a/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/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/984d4605/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/metainfo.xml
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/metainfo.xml
 
b/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/metainfo.xml
deleted file mode 100644
index 57667bb..0000000
--- 
a/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/metainfo.xml
+++ /dev/null
@@ -1,54 +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>
-      <version>3.4.6.2.3</version>
-      <extends>common-services/ZOOKEEPER/3.4.6</extends>
-
-      <!-- Overwrite the commandScript for each of the components. -->
-      <components>
-        <component>
-          <name>ZOOKEEPER_SERVER</name>
-          <commandScript>
-            <script>scripts/zookeeper_server.py</script>
-            <scriptType>PYTHON</scriptType>
-            <timeout>1200</timeout>
-          </commandScript>
-        </component>
-
-        <component>
-          <name>ZOOKEEPER_CLIENT</name>
-          <commandScript>
-            <script>scripts/zookeeper_client.py</script>
-            <scriptType>PYTHON</scriptType>
-          </commandScript>
-        </component>
-      </components>
-
-      <configuration-dependencies>
-        <config-type>zk-alert-config</config-type>
-      </configuration-dependencies>
-
-      <!-- No packages to install. -->
-      <osSpecifics></osSpecifics>
-    </service>
-  </services>
-</metainfo>

http://git-wip-us.apache.org/repos/asf/ambari/blob/984d4605/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/package/alerts/alert_zk_server_process.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/package/alerts/alert_zk_server_process.py
 
b/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/package/alerts/alert_zk_server_process.py
deleted file mode 100644
index 55bbbd1..0000000
--- 
a/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/package/alerts/alert_zk_server_process.py
+++ /dev/null
@@ -1,59 +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.
-"""
-
-import logging
-
-from 
resource_management.libraries.functions.simulate_perf_cluster_alert_behaviour 
import simulate_perf_cluster_alert_behaviour
-
-ALERT_BEHAVIOUR_TYPE = "{{zk-alert-config/alert.behavior.type}}"
-
-ALERT_SUCCESS_PERCENTAGE = "{{zk-alert-config/alert.success.percentage}}"
-
-ALERT_TIMEOUT_RETURN_VALUE = "{{zk-alert-config/alert.timeout.return.value}}"
-ALERT_TIMEOUT_SECS = "{{zk-alert-config/alert.timeout.secs}}"
-
-ALERT_FLIP_INTERVAL_MINS = "{{zk-alert-config/alert.flip.interval.mins}}"
-
-logger = logging.getLogger('ambari_alerts')
-
-alert_behaviour_properties = {"alert_behaviour_type" : ALERT_BEHAVIOUR_TYPE, 
"alert_success_percentage" : ALERT_SUCCESS_PERCENTAGE,
-                              "alert_timeout_return_value" : 
ALERT_TIMEOUT_RETURN_VALUE, "alert_timeout_secs" : ALERT_TIMEOUT_SECS,
-                              "alert_flip_interval_mins" : 
ALERT_FLIP_INTERVAL_MINS}
-
-def get_tokens():
-  """
-  Returns a tuple of tokens in the format {{site/property}} that will be used
-  to build the dictionary passed into execute
-  """
-  return (ALERT_BEHAVIOUR_TYPE, ALERT_SUCCESS_PERCENTAGE, 
ALERT_TIMEOUT_RETURN_VALUE, ALERT_TIMEOUT_SECS,
-          ALERT_FLIP_INTERVAL_MINS)
-
-
-def execute(configurations={}, parameters={}, host_name=None):
-  """
-  Returns a tuple containing the result code and a pre-formatted result label
-
-  Keyword arguments:
-  configurations (dictionary): a mapping of configuration key to value
-  parameters (dictionary): a mapping of script parameter key to value
-  host_name (string): the name of this host where the alert is running
-  """
-
-  return simulate_perf_cluster_alert_behaviour(alert_behaviour_properties, 
configurations)
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/984d4605/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/package/scripts/service_check.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/package/scripts/service_check.py
 
b/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/package/scripts/service_check.py
deleted file mode 100644
index 270b082..0000000
--- 
a/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/package/scripts/service_check.py
+++ /dev/null
@@ -1,30 +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.libraries.script.script import Script
-
-class ServiceCheck(Script):
-
-  def service_check(self, env):
-    print "Service Check"
-
-if __name__ == "__main__":
-  ServiceCheck().execute()

http://git-wip-us.apache.org/repos/asf/ambari/blob/984d4605/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/package/scripts/zookeeper_client.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/package/scripts/zookeeper_client.py
 
b/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/package/scripts/zookeeper_client.py
deleted file mode 100644
index 25b2409..0000000
--- 
a/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/package/scripts/zookeeper_client.py
+++ /dev/null
@@ -1,38 +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
-
-"""
-
-# Python Imports
-
-# Local Imports
-from resource_management.libraries.script.dummy import Dummy
-
-
-class ZookeeperClient(Dummy):
-  """
-  Dummy script that simulates a master component.
-  """
-
-  def __init__(self):
-    super(ZookeeperClient, self).__init__()
-    self.component_name = "ZOOKEEPER_CLIENT"
-
-if __name__ == "__main__":
-  ZookeeperClient().execute()

http://git-wip-us.apache.org/repos/asf/ambari/blob/984d4605/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/package/scripts/zookeeper_server.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/package/scripts/zookeeper_server.py
 
b/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/package/scripts/zookeeper_server.py
deleted file mode 100644
index 6ab88bb..0000000
--- 
a/ambari-server/src/main/resources/stacks/PERF/1.0/services/ZOOKEEPER/package/scripts/zookeeper_server.py
+++ /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.
-
-Ambari Agent
-
-"""
-
-# Python Imports
-
-# Local Imports
-from resource_management.libraries.script.dummy import Dummy
-
-
-class ZookeeperServer(Dummy):
-  """
-  Dummy script that simulates a master component.
-  """
-
-  def __init__(self):
-    super(ZookeeperServer, self).__init__()
-    self.component_name = "ZOOKEEPER_SERVER"
-    self.principal_conf_name = "zookeeper-env"
-    self.principal_name = "zookeeper_principal_name"
-    self.keytab_conf_name = "zookeeper-env"
-    self.keytab_name = "zookeeper_keytab_path"
-
-if __name__ == "__main__":
-  ZookeeperServer().execute()

http://git-wip-us.apache.org/repos/asf/ambari/blob/984d4605/ambari-server/src/main/resources/stacks/PERF/1.0/upgrades/config-upgrade.xml
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/stacks/PERF/1.0/upgrades/config-upgrade.xml 
b/ambari-server/src/main/resources/stacks/PERF/1.0/upgrades/config-upgrade.xml
new file mode 100644
index 0000000..9a9c933
--- /dev/null
+++ 
b/ambari-server/src/main/resources/stacks/PERF/1.0/upgrades/config-upgrade.xml
@@ -0,0 +1,34 @@
+<?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.
+-->
+
+<upgrade-config-changes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:noNamespaceSchemaLocation="upgrade-config.xsd">
+  <services>
+    <service name="GRUMPY">
+      <component name="GRUMPY">
+        <changes>
+          <definition xsi:type="configure" id="perf"
+                      summary="perf">
+            <type>storm-site</type>
+            <transfer operation="delete" 
delete-key="storm.topology.submission.notifier.plugin.class" 
if-key="storm.topology.submission.notifier.plugin.class"
+                      if-type="storm-site" if-value=" "/>
+          </definition>
+        </changes>
+      </component>
+    </service>
+  </services>
+</upgrade-config-changes>

http://git-wip-us.apache.org/repos/asf/ambari/blob/984d4605/ambari-server/src/main/resources/stacks/PERF/1.0/upgrades/nonrolling-upgrade-2.0.xml
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/stacks/PERF/1.0/upgrades/nonrolling-upgrade-2.0.xml
 
b/ambari-server/src/main/resources/stacks/PERF/1.0/upgrades/nonrolling-upgrade-2.0.xml
new file mode 100644
index 0000000..2626bc3
--- /dev/null
+++ 
b/ambari-server/src/main/resources/stacks/PERF/1.0/upgrades/nonrolling-upgrade-2.0.xml
@@ -0,0 +1,443 @@
+<?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.
+-->
+
+<upgrade xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:noNamespaceSchemaLocation="upgrade-pack.xsd">
+  <target>2.0.*.*</target>
+  <target-stack>PERF-2.0</target-stack>
+  <type>NON_ROLLING</type>
+  <prerequisite-checks>
+    <configuration>
+      <!-- Configuration properties for all pre-reqs including required 
pre-reqs -->
+      <check-properties 
name="org.apache.ambari.server.checks.HiveDynamicServiceDiscoveryCheck">
+        <property name="min-failure-stack-version">HDP-2.3.0.0</property>
+      </check-properties>
+    </configuration>
+  </prerequisite-checks>
+  <order>
+
+    <group xsi:type="stop" name="STOP_HIGH_LEVEL_SERVICE_COMPONENTS" 
title="Stop Components for High-Level Services">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
+
+      <service name="FAKEYARN">
+        <component>FAKENODEMANAGER</component>
+        <component>FAKERESOURCEMANAGER</component>
+        <component>FAKEAPP_TIMELINE_SERVER</component>
+      </service>
+
+    </group>
+
+
+    <group xsi:type="stop" name="STOP_LOW_LEVEL_SERVICE_COMPONENTS" 
title="Stop Components for Core Services">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
+
+      <service name="FAKEHBASE">
+        <component>FAKEHBASE_REGIONSERVER</component>
+        <component>FAKEHBASE_MASTER</component>
+        <component>FAKEPHOENIX_QUERY_SERVER</component>
+      </service>
+
+      <service name="FAKEHDFS">
+        <component>FAKEDATANODE</component>
+        <component>FAKENAMENODE</component>
+        <component>SECONDARY_FAKENAMENODE</component>
+        <component>FAKEZKFC</component>
+        <component>FAKEJOURNALNODE</component>
+        <component>FAKENFS_GATEWAY</component>
+      </service>
+
+      <service name="FAKEZOOKEEPER">
+        <component>FAKEZOOKEEPER_SERVER</component>
+      </service>
+    </group>
+
+    <!-- After processing this group, will change the effective Stack of the 
UpgradeContext object. -->
+    <group xsi:type="update-stack" name="UPDATE_DESIRED_STACK_ID" 
title="Update Target Stack">
+      <execute-stage title="Update Target Stack">
+        <task xsi:type="server_action" 
class="org.apache.ambari.server.serveraction.upgrades.UpdateDesiredStackAction"/>
+      </execute-stage>
+    </group>
+
+
+    <!--
+    After processing this group, the user-specified Kerberos descriptor will 
be updated to work with
+    the new stack-level Kerberos descriptor.
+    -->
+    <group xsi:type="cluster" name="UPDATE_KERBEROS_DESCRIPTORS" title="Update 
Kerberos Descriptors">
+      <condition xsi:type="security" type="kerberos"/>
+      <execute-stage title="Update the user-specified Kerberos descriptor">
+        <task xsi:type="server_action" 
class="org.apache.ambari.server.serveraction.upgrades.UpgradeUserKerberosDescriptor"/>
+      </execute-stage>
+    </group>
+
+    <!--
+    Invoke "hdp-select set all" to change any components we may have missed
+    that are installed on the hosts but not known by Ambari.
+    -->
+    <group xsi:type="cluster" name="ALL_HOST_OPS" title="Set Version On All 
Hosts">
+      <scope>COMPLETE</scope>
+      <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+
+      <execute-stage title="Update stack to {{version}}">
+        <task xsi:type="execute">
+          <script>scripts/ru_set_all.py</script>
+          <function>actionexecute</function>
+        </task>
+      </execute-stage>
+    </group>
+    
+    <!-- Now, restart all of the services. -->
+    <group xsi:type="restart" name="FAKEZOOKEEPER" title="FAKEZooKeeper">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
+      <service name="FAKEZOOKEEPER">
+        <component>FAKEZOOKEEPER_SERVER</component>
+        <component>FAKEZOOKEEPER_CLIENT</component>
+      </service>
+    </group>
+
+    <group xsi:type="restart" name="FAKEHDFS" title="FAKEHDFS">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
+      <service name="FAKEHDFS">
+        <component>FAKEJOURNALNODE</component>
+        <component>FAKEZKFC</component>
+        <component>FAKENAMENODE</component>
+        <component>SECONDARY_FAKENAMENODE</component>
+        <component>FAKENFS_GATEWAY</component>
+        <component>FAKEHDFS_CLIENT</component>
+      </service>
+    </group>
+
+    <group xsi:type="restart" name="FAKEHDFS_FAKEDATANODES" title="FAKEHDFS 
FAKEDataNodes">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <parallel-scheduler/>
+      <service name="FAKEHDFS">
+        <component>FAKEDATANODE</component>
+      </service>
+    </group>
+
+    <group xsi:type="restart" name="FAKEYARN_AND_MAPR" title="FAKEYARN and 
FAKEMapReduce2">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
+
+      <service name="FAKEMAPREDUCE2">
+        <component>FAKEHISTORYSERVER</component>
+        <component>FAKEMAPREDUCE2_CLIENT</component>
+      </service>
+
+      <service name="FAKEYARN">
+        <component>FAKEAPP_TIMELINE_SERVER</component>
+        <component>FAKERESOURCEMANAGER</component>
+        <component>FAKEYARN_CLIENT</component>
+      </service>
+    </group>
+
+    <group xsi:type="restart" name="FAKEYARN_FAKENODEMANAGERS" title="FAKEYARN 
FAKENodeManagers">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <parallel-scheduler/>
+
+      <service name="FAKEYARN">
+        <component>FAKENODEMANAGER</component>
+      </service>
+    </group>
+
+    <group xsi:type="cluster" name="START_FAKEYARN_QUEUES" title="Start 
FAKEYARN Queues">
+      <direction>UPGRADE</direction>
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <parallel-scheduler/>
+
+      <execute-stage service="FAKEYARN" component="FAKERESOURCEMANAGER" 
title="Start FAKEYARN Queues">
+        <condition xsi:type="config" type="yarn-site" 
property="yarn.resourcemanager.work-preserving-recovery.enabled" value="true" 
comparison="not-equals"/>
+        <task xsi:type="manual">
+          <message>Before continuing, please start all FAKEYARN 
queues.</message>
+        </task>
+      </execute-stage>
+    </group>
+
+    <group xsi:type="restart" name="FAKEHBASE" title="FAKEHBASE">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
+      <service name="FAKEHBASE">
+        <component>FAKEHBASE_MASTER</component>
+        <component>FAKEHBASE_REGIONSERVER</component>
+        <component>FAKEHBASE_CLIENT</component>
+        <component>FAKEPHOENIX_QUERY_SERVER</component>
+      </service>
+    </group>
+
+    <group name="SERVICE_CHECK_1" title="All Service Checks" 
xsi:type="service-check">
+      <direction>UPGRADE</direction>
+      <skippable>true</skippable>
+      <priority>
+        <service>FAKEZOOKEEPER</service>
+        <service>FAKEHDFS</service>
+        <service>FAKEYARN</service>
+        <service>FAKEHBASE</service>
+      </priority>
+    </group>
+
+    <group xsi:type="restart" name="GRUMPY" title="GRUMPY">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
+      <service name="GRUMPY">
+        <component>GRUMPY</component>
+      </service>
+    </group>
+
+    <group xsi:type="restart" name="HAPPY" title="HAPPY">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
+      <service name="HAPPY">
+        <component>HAPPY</component>
+      </service>
+    </group>
+
+    <group name="SERVICE_CHECK_2" title="All Service Checks" 
xsi:type="service-check">
+      <direction>UPGRADE</direction>
+      <skippable>true</skippable>
+      <priority>
+        <service>GRUMPY</service>
+        <service>HAPPY</service>
+      </priority>
+    </group>
+
+    <group xsi:type="restart" name="SLEEPY" title="SLEEPY">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
+      <service name="SLEEPY">
+        <component>SLEEPY</component>
+      </service>
+    </group>
+
+    <group xsi:type="restart" name="SNOW" title="SNOW">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
+      <service name="SNOW">
+        <component>SNOW</component>
+      </service>
+    </group>
+
+    <group name="SERVICE_CHECK_3" title="All Service Checks" 
xsi:type="service-check">
+      <direction>UPGRADE</direction>
+      <skippable>true</skippable>
+      <priority>
+        <service>SLEEPY</service>
+        <service>SNOW</service>
+      </priority>
+    </group>
+
+    <group xsi:type="cluster" name="FINALIZE_PRE_CHECK" title="Finalize 
{{direction.text.proper}} Pre-Check">
+      <direction>UPGRADE</direction>
+      
+      <execute-stage title="Check Component Versions">
+        <task xsi:type="server_action" 
class="org.apache.ambari.server.serveraction.upgrades.ComponentVersionCheckAction"
 />
+      </execute-stage>
+    </group>
+
+    <group xsi:type="cluster" name="POST_CLUSTER" title="Finalize 
{{direction.text.proper}}">
+      <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+
+      <execute-stage title="Confirm Finalize">
+        <direction>UPGRADE</direction>
+        <task xsi:type="manual">
+          <message>Please confirm you are ready to finalize.</message>
+        </task>
+      </execute-stage>
+
+      <execute-stage service="FAKEHDFS" component="FAKENAMENODE" 
title="Execute FAKEHDFS Finalize">
+        <task xsi:type="execute" hosts="master">
+          <script>scripts/namenode.py</script>
+          <function>finalize_non_rolling_upgrade</function>
+        </task>
+      </execute-stage>
+
+      <execute-stage title="Save Cluster State">
+        <task xsi:type="server_action" 
class="org.apache.ambari.server.serveraction.upgrades.FinalizeUpgradeAction">
+        </task>
+      </execute-stage>
+
+    </group>
+  </order>
+
+  <processing>
+    <service name="FAKEZOOKEEPER">
+      <component name="FAKEZOOKEEPER_SERVER">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="FAKEZOOKEEPER_CLIENT">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+    </service>
+
+    <service name="FAKEHDFS">
+      <component name="FAKENAMENODE">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="SECONDARY_FAKENAMENODE">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="FAKEDATANODE">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="FAKEHDFS_CLIENT">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="FAKEJOURNALNODE">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="FAKEZKFC">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="FAKENFS_GATEWAY">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+    </service>
+
+    <service name="FAKEYARN">
+      <component name="FAKEAPP_TIMELINE_SERVER">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="FAKERESOURCEMANAGER">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="FAKENODEMANAGER">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="FAKEYARN_CLIENT">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+    </service>
+
+    <service name="FAKEHBASE">
+      <component name="FAKEHBASE_MASTER">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="FAKEHBASE_REGIONSERVER">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="FAKEHBASE_CLIENT">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+    </service>
+
+
+    <service name="GRUMPY">
+      <component name="GRUMPY">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+    </service>
+
+    <service name="HAPPY">
+      <component name="HAPPY">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+    </service>
+
+    <service name="SLEEPY">
+      <component name="SLEEPY">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+    </service>
+
+    <service name="SNOW">
+      <component name="SNOW_WHITE">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+    </service>
+
+  </processing>
+</upgrade>

http://git-wip-us.apache.org/repos/asf/ambari/blob/984d4605/ambari-server/src/main/resources/stacks/PERF/1.0/upgrades/upgrade-2.0.xml
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/stacks/PERF/1.0/upgrades/upgrade-2.0.xml 
b/ambari-server/src/main/resources/stacks/PERF/1.0/upgrades/upgrade-2.0.xml
new file mode 100644
index 0000000..99746d6
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/PERF/1.0/upgrades/upgrade-2.0.xml
@@ -0,0 +1,331 @@
+<?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.
+-->
+
+<upgrade xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:noNamespaceSchemaLocation="upgrade-pack.xsd">
+  <target>2.0.*.*</target>
+  <target-stack>PERF-2.0</target-stack>
+  <skip-failures>false</skip-failures>
+  <skip-service-check-failures>false</skip-service-check-failures>
+  <type>ROLLING</type>
+  <prerequisite-checks>
+
+    <!-- List of additional pre-req checks to run in addition to the required 
pre-reqs -->
+  </prerequisite-checks>
+
+  <order>
+
+    <group name="FAKEZOOKEEPER" title="FAKEZooKeeper">
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <service name="FAKEZOOKEEPER">
+        <component>FAKEZOOKEEPER_SERVER</component>
+      </service>
+    </group>
+
+
+    <group name="CORE_MASTER" title="Core Masters">
+      <service-check>false</service-check>
+      <service name="FAKEHDFS">
+        <component>FAKENAMENODE</component>
+        <component>FAKEJOURNALNODE</component>
+        <component>FAKEZKFC</component>
+      </service>
+
+      <service name="FAKEYARN">
+        <component>FAKEAPP_TIMELINE_SERVER</component>
+        <component>FAKERESOURCEMANAGER</component>
+      </service>
+
+      <service name="FAKEHBASE">
+        <component>FAKEHBASE_MASTER</component>
+      </service>
+    </group>
+
+    <group name="SERVICE_CHECK_1" title="All Service Checks" 
xsi:type="service-check">
+      <direction>UPGRADE</direction>
+      <skippable>true</skippable>
+      <priority>
+        <service>FAKEZOOKEEPER</service>
+        <service>FAKEHDFS</service>
+        <service>FAKEYARN</service>
+        <service>GRUMPY</service>
+        <service>HAPPY</service>
+        <service>FAKEHBASE</service>
+        <service>SLEEPY</service>
+        <service>SNOW</service>
+      </priority>
+    </group>
+
+    <group name="CORE_SLAVES" title="Core Slaves" xsi:type="colocated">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <service name="FAKEHDFS">
+        <component>FAKEDATANODE</component>
+        <component>FAKENFS_GATEWAY</component>
+      </service>
+
+      <service name="FAKEHBASE">
+        <component>FAKEHBASE_REGIONSERVER</component>
+        <component>FAKEPHOENIX_QUERY_SERVER</component>
+      </service>
+
+      <service name="FAKEYARN">
+        <component>FAKENODEMANAGER</component>
+      </service>
+
+      <batch>
+        <percent>20</percent>
+        <summary>Verification Required</summary>
+        <message>The initial batch of {{components}} hosts have been 
{{direction.past}}. You are advised to check the hosts and perform 
cluster/workload-specific tests against your cluster to ensure proper operation 
before proceeding with {{direction.text}} of the remaining services.</message>
+      </batch>
+    </group>
+
+    <group name="SERVICE_CHECK_2" title="All Service Checks" 
xsi:type="service-check">
+      <direction>UPGRADE</direction>
+      <skippable>true</skippable>
+      <priority>
+        <service>FAKEZOOKEEPER</service>
+        <service>FAKEHDFS</service>
+        <service>FAKEYARN</service>
+        <service>GRUMPY</service>
+        <service>HAPPY</service>
+        <service>FAKEHBASE</service>
+        <service>SLEEPY</service>
+        <service>SNOW</service>
+      </priority>
+    </group>
+
+    <group name="CLIENTS" title="Client Components">
+      <service-check>false</service-check>
+      <service name="FAKEZOOKEEPER">
+        <component>FAKEZOOKEEPER_CLIENT</component>
+      </service>
+
+      <service name="FAKEHDFS">
+        <component>FAKEHDFS_CLIENT</component>
+      </service>
+
+      <service name="FAKEYARN">
+        <component>FAKEYARN_CLIENT</component>
+      </service>
+
+      <service name="FAKEHBASE">
+        <component>FAKEHBASE_CLIENT</component>
+      </service>
+
+    </group>
+
+    <group name="SERVICE_CHECK_3" title="All Service Checks" 
xsi:type="service-check">
+      <direction>UPGRADE</direction>
+      <skippable>true</skippable>
+      <priority>
+        <service>FAKEZOOKEEPER</service>
+        <service>FAKEHDFS</service>
+        <service>FAKEYARN</service>
+        <service>GRUMPY</service>
+        <service>HAPPY</service>
+        <service>FAKEHBASE</service>
+        <service>SLEEPY</service>
+        <service>SNOW</service>
+      </priority>
+    </group>
+
+    <group xsi:type="cluster" name="ALL_HOST_OPS" title="Finalize Hosts">
+      <execute-stage title="Update remaining HDP stack to {{version}}">
+        <task xsi:type="execute">
+          <script>scripts/ru_set_all.py</script>
+          <function>actionexecute</function>
+        </task>
+      </execute-stage>
+    </group>
+
+    <group xsi:type="cluster" name="FINALIZE_PRE_CHECK" title="Finalize 
{{direction.text.proper}} Pre-Check">
+      <direction>UPGRADE</direction>
+
+      <execute-stage title="Check Component Versions">
+        <task xsi:type="server_action" 
class="org.apache.ambari.server.serveraction.upgrades.ComponentVersionCheckAction"
 />
+      </execute-stage>
+    </group>
+
+    <group xsi:type="cluster" name="POST_CLUSTER" title="Finalize 
{{direction.text.proper}}">
+      <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+
+      <execute-stage title="Confirm Finalize">
+        <direction>UPGRADE</direction>
+        <task xsi:type="manual">
+          <message>Please confirm you are ready to finalize.</message>
+        </task>
+      </execute-stage>
+
+      <execute-stage service="FAKEHDFS" component="FAKENAMENODE" 
title="Execute FAKEHDFS Finalize">
+        <task xsi:type="execute" hosts="master">
+          <script>scripts/namenode.py</script>
+          <function>finalize_rolling_upgrade</function>
+        </task>
+      </execute-stage>
+
+      <execute-stage title="Save Cluster State">
+        <task xsi:type="server_action" 
class="org.apache.ambari.server.serveraction.upgrades.FinalizeUpgradeAction" />
+      </execute-stage>
+
+    </group>
+  </order>
+
+  <processing>
+    <service name="FAKEZOOKEEPER">
+      <component name="FAKEZOOKEEPER_SERVER">
+        <upgrade>
+          <task xsi:type="restart-task" />
+        </upgrade>
+      </component>
+
+      <component name="FAKEZOOKEEPER_CLIENT">
+        <upgrade>
+          <task xsi:type="restart-task" />
+        </upgrade>
+      </component>
+    </service>
+
+    <service name="FAKEHDFS">
+      <component name="FAKENAMENODE">
+        <upgrade>
+          <!-- Namenode does not advertise version. That is a hack to make 
Rolling Upgrade possible.
+          Otherwise, Rolling Upgrade code uses master host resolver to query 
namenode JMX regarding active/standby
+          namenode, and fails to generate restart tasks for Namenode. -->
+          <task xsi:type="restart-task" />
+        </upgrade>
+      </component>
+
+      <component name="FAKEDATANODE">
+        <upgrade>
+          <task xsi:type="restart-task" />
+        </upgrade>
+      </component>
+
+      <component name="FAKENFS_GATEWAY">
+        <upgrade>
+          <task xsi:type="restart-task" />
+        </upgrade>
+      </component>
+
+      <component name="FAKEHDFS_CLIENT">
+        <upgrade>
+          <task xsi:type="restart-task" />
+        </upgrade>
+      </component>
+
+      <component name="FAKEJOURNALNODE">
+        <upgrade>
+          <task xsi:type="restart-task" />
+        </upgrade>
+      </component>
+
+      <component name="FAKEZKFC">
+        <upgrade>
+          <task xsi:type="restart-task" />
+        </upgrade>
+      </component>
+    </service>
+
+    <service name="FAKEYARN">
+      <component name="FAKEAPP_TIMELINE_SERVER">
+        <upgrade>
+          <task xsi:type="restart-task" />
+        </upgrade>
+      </component>
+
+      <component name="FAKERESOURCEMANAGER">
+        <upgrade>
+          <task xsi:type="restart-task" />
+        </upgrade>
+      </component>
+
+      <component name="FAKENODEMANAGER">
+        <upgrade>
+          <task xsi:type="restart-task" />
+        </upgrade>
+      </component>
+
+      <component name="FAKEYARN_CLIENT">
+        <upgrade>
+          <task xsi:type="restart-task" />
+        </upgrade>
+      </component>
+    </service>
+
+    <service name="FAKEHBASE">
+      <component name="FAKEHBASE_MASTER">
+
+        <upgrade>
+          <task xsi:type="restart-task" />
+        </upgrade>
+      </component>
+
+      <component name="FAKEHBASE_REGIONSERVER">
+        <upgrade>
+          <task xsi:type="restart-task" />
+        </upgrade>
+      </component>
+
+      <component name="FAKEHBASE_CLIENT">
+        <upgrade>
+          <task xsi:type="restart-task" />
+        </upgrade>
+      </component>
+
+      <component name="FAKEPHOENIX_QUERY_SERVER">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+    </service>
+
+    <service name="GRUMPY">
+      <component name="GRUMPY">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+    </service>
+
+    <service name="HAPPY">
+      <component name="HAPPY">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+    </service>
+
+    <service name="SLEEPY">
+      <component name="SLEEPY">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+    </service>
+
+    <service name="SNOW">
+      <component name="SNOW_WHITE">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+    </service>
+
+  </processing>
+</upgrade>

http://git-wip-us.apache.org/repos/asf/ambari/blob/984d4605/ambari-server/src/main/resources/stacks/PERF/2.0/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/PERF/2.0/metainfo.xml 
b/ambari-server/src/main/resources/stacks/PERF/2.0/metainfo.xml
new file mode 100644
index 0000000..6240446
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/PERF/2.0/metainfo.xml
@@ -0,0 +1,23 @@
+<?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>
+  <versions>
+    <active>false</active>
+  </versions>
+  <extends>1.0</extends>
+</metainfo>

http://git-wip-us.apache.org/repos/asf/ambari/blob/984d4605/ambari-server/src/main/resources/stacks/PERF/2.0/repos/repoinfo.xml
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/stacks/PERF/2.0/repos/repoinfo.xml 
b/ambari-server/src/main/resources/stacks/PERF/2.0/repos/repoinfo.xml
new file mode 100644
index 0000000..5c3b40b
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/PERF/2.0/repos/repoinfo.xml
@@ -0,0 +1,33 @@
+<?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.
+-->
+<reposinfo>
+  <os family="redhat6">
+    <repo>
+      <baseurl>http://foo-2.0.0.0-1</baseurl>
+      <repoid>PERF-2.0</repoid>
+      <reponame>PERF</reponame>
+      <unique>true</unique>
+    </repo>
+    <repo>
+      <baseurl>http://foo2</baseurl>
+      <repoid>PERF-UTILS-2.0</repoid>
+      <reponame>PERF-UTILS</reponame>
+      <unique>false</unique>
+    </repo>
+  </os>
+</reposinfo>

http://git-wip-us.apache.org/repos/asf/ambari/blob/984d4605/ambari-server/src/main/resources/stacks/PERF/PythonExecutor.sed
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/PERF/PythonExecutor.sed 
b/ambari-server/src/main/resources/stacks/PERF/PythonExecutor.sed
new file mode 100644
index 0000000..a9004d3
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/PERF/PythonExecutor.sed
@@ -0,0 +1,5 @@
+/    command_env = dict(os.environ)/{i\
+    command_env = dict(os.environ)\
+    command_env['PATH'] = command_env['PATH'] + ':' + "AMBARI_AGENT_HOST_DIR" 
+ self.config.get('agent', 'prefix') + ':' + "AMBARI_AGENT_CACHE_DIR" + 
self.config.get('agent', 'cache_dir')
+d
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/984d4605/ambari-server/src/main/resources/stacks/PERF/install_packages.sed
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/PERF/install_packages.sed 
b/ambari-server/src/main/resources/stacks/PERF/install_packages.sed
new file mode 100644
index 0000000..81c3e7c
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/PERF/install_packages.sed
@@ -0,0 +1,11 @@
+/actionexecute/{i\
+  def actionexecute(self, env):\
+    # Parse parameters\
+    config = Script.get_config()\
+    repository_version = config['roleParams']['repository_version']\
+    (stack_selector_name, stack_selector_path, stack_selector_package) = 
stack_tools.get_stack_tool(stack_tools.STACK_SELECTOR_NAME)\
+    command = 'ambari-python-wrap {0} install {1}'.format(stack_selector_path, 
repository_version)\
+    Execute(command)\
+  def actionexecute_old(self, env):
+d
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/984d4605/contrib/utils/perf/deploy-gce-perf-cluster.py
----------------------------------------------------------------------
diff --git a/contrib/utils/perf/deploy-gce-perf-cluster.py 
b/contrib/utils/perf/deploy-gce-perf-cluster.py
index 8ba7e42..565a36d 100644
--- a/contrib/utils/perf/deploy-gce-perf-cluster.py
+++ b/contrib/utils/perf/deploy-gce-perf-cluster.py
@@ -334,6 +334,8 @@ def create_server_script(server_host_name):
   "mkdir /home ; cd /home ; git clone https://github.com/apache/ambari.git ; 
cd ambari ; git checkout branch-2.5\n" + \
   "cp -r /home/ambari/ambari-server/src/main/resources/stacks/PERF 
/var/lib/ambari-server/resources/stacks/PERF\n" + \
   "cp -r /home/ambari/ambari-server/src/main/resources/stacks/PERF 
/var/lib/ambari-agent/cache/stacks/PERF\n" + \
+  "sed -i -f 
/home/ambari/ambari-server/src/main/resources/stacks/PERF/install_packages.sed 
/var/lib/ambari-server/resources/custom_actions/scripts/install_packages.py\n" 
+ \
+  "sed -i -f 
/home/ambari/ambari-server/src/main/resources/stacks/PERF/install_packages.sed 
/var/lib/ambari-agent/cache/custom_actions/scripts/install_packages.py\n" + \
   "\n" + \
   "\n" + \
   "yum install mysql-connector-java* -y\n" + \
@@ -358,6 +360,7 @@ def create_server_script(server_host_name):
   "sed -i -e 's/local.database.user=postgres//g' 
/etc/ambari-server/conf/ambari.properties\n" + \
   "sed -i -e 's/server.jdbc.postgres.schema=ambari//g' 
/etc/ambari-server/conf/ambari.properties\n" + \
   "sed -i -e 's/false/true/g' 
/var/lib/ambari-server/resources/stacks/PERF/1.0/metainfo.xml\n" + \
+  "sed -i -e 's/false/true/g' 
/var/lib/ambari-server/resources/stacks/PERF/2.0/metainfo.xml\n" + \
   "sed -i -e 's/-Xmx2048m/-Xmx16384m/g' 
/var/lib/ambari-server/ambari-env.sh\n" + \
   "\n" + \
   "echo 'server.jdbc.driver=com.mysql.jdbc.Driver' >> 
/etc/ambari-server/conf/ambari.properties\n" + \
@@ -389,6 +392,7 @@ def create_agent_script(server_host_name):
   "yum clean all; yum install krb5-workstation git ambari-agent -y\n" + \
   "mkdir /home ; cd /home; git clone https://github.com/apache/ambari.git ; cd 
ambari ; git checkout branch-2.5\n" + \
   "cp -r /home/ambari/ambari-server/src/main/resources/stacks/PERF 
/var/lib/ambari-agent/cache/stacks/PERF\n" + \
+  "sed -i -f /var/lib/ambari-agent/cache/stacks/PERF/PythonExecutor.sed 
/usr/lib/python2.6/site-packages/ambari_agent/PythonExecutor.py\n" + \
   "sed -i -e 's/hostname=localhost/hostname={0}/g' 
/etc/ambari-agent/conf/ambari-agent.ini\n".format(server_host_name) + \
   "sed -i -e 
's/agent]/agent]\\nhostname_script={0}\\npublic_hostname_script={1}\\n/1' 
/etc/ambari-agent/conf/ambari-agent.ini\n".format(hostname_script, 
public_hostname_script) + \
   "python /home/ambari/ambari-agent/conf/unix/agent-multiplier.py start\n" + \

Reply via email to