You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jo...@apache.org on 2014/11/11 21:43:12 UTC

[09/17] ambari git commit: AMBARI-8276 - Alerts: Remove Nagios Service From The Stack (jonathanhurley)

http://git-wip-us.apache.org/repos/asf/ambari/blob/e4ededeb/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/files/mm_wrapper.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/files/mm_wrapper.py b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/files/mm_wrapper.py
deleted file mode 100644
index 8923e6c..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/files/mm_wrapper.py
+++ /dev/null
@@ -1,335 +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 sys
-import subprocess
-import os
-
-N_SGN = 'NAGIOS_SERVICEGROUPNAME'
-N_SD = 'NAGIOS__SERVICEHOST_COMPONENT'
-N_HOST = 'NAGIOS_HOSTNAME'
-
-LIST_SEPARATOR = "--"
-HOSTNAME_PLACEHOLDER = "^^"
-IGNORE_DAT_FILE = "/var/nagios/ignore.dat"
-
-# Mode constants
-OR = 0
-AND = 1
-ENV_ONLY = 2
-FILTER_MM = 3
-LEGACY_CHECK_WRAPPER = 4
-MODES = ['or', 'and', 'env_only', 'filter_mm', 'legacy_check_wrapper']
-
-
-def ignored_host_list(service, component):
-  """
-  :param service: current service
-  :param component: current component
-  :return: all hosts where specified host component is in ignored state
-  """
-  def str_norm(s):
-    return s.strip().upper()
-
-  result = []
-
-  try:
-    with open(IGNORE_DAT_FILE, 'r') as f:
-      lines = filter(None, f.read().split(os.linesep))
-  except IOError:
-    return result
-
-  if lines:
-    for l in lines:
-      tokens = l.split(' ')
-      if len(tokens) == 3 and str_norm(tokens[1]) == str_norm(service)\
-                          and str_norm(tokens[2]) == str_norm(component):
-        result.append(tokens[0])
-  return result
-
-
-def get_real_service():
-  try:
-    service = os.environ[N_SGN].strip().upper()  # e.g. 'HBASE'
-  except KeyError:
-    service = ''
-  return service
-
-
-def get_real_component():
-  try:
-    comp_name = os.environ[N_SD].strip()
-  except KeyError:
-    comp_name = ''
-  mapping = {
-    'HBASEMASTER': 'HBASE_MASTER',
-    'REGIONSERVER': 'HBASE_REGIONSERVER',
-    'JOBHISTORY': 'HISTORYSERVER',
-    'HIVE-METASTORE': 'HIVE_METASTORE',
-    'HIVE-SERVER': 'HIVE_SERVER',
-    'FLUME': 'FLUME_HANDLER',
-    'HUE': 'HUE_SERVER',
-    'WEBHCAT': 'WEBHCAT_SERVER',
-  }
-  if comp_name in mapping:
-    comp_name = mapping.get(comp_name)
-  return comp_name
-
-
-def check_output(*popenargs, **kwargs):
-  """
-  Imitate subprocess.check_output() for python 2.6
-  """
-  process = subprocess.Popen(stdout=subprocess.PIPE, stderr=subprocess.PIPE,
-                             *popenargs, **kwargs)
-  output, unused_err = process.communicate()
-  retcode = process.poll()
-  if retcode:
-    cmd = kwargs.get("args")
-    if cmd is None:
-      cmd = popenargs[0]
-    err = subprocess.CalledProcessError(retcode, cmd)
-    # Monkey-patching for python 2.6
-    err.output = output
-    raise err
-  return output
-
-
-def print_usage():
-  """
-  Prints usage and exits with a non-zero exit code
-  """
-  print "Usage: mm_wrapper.py MODE HOST1 HOST2 .. HOSTN %s command arg1 arg2 .. argN" % LIST_SEPARATOR
-  print "MODE is one of the following: or, and, env_only, filter_mm, legacy_check_wrapper"
-  print "%s is a separator between list of hostnames and command with args" % LIST_SEPARATOR
-  print "%s is used as a hostname placeholder at command args" % HOSTNAME_PLACEHOLDER
-  print "Also script provides $MM_HOSTS shell variable to commands"
-  print "NOTE: Script makes use of Nagios-populated env vars %s and %s" % (N_SGN, N_SD)
-  print "For more info, please see docstrings at %s" % os.path.realpath(__file__)
-  sys.exit(1)
-
-
-def parse_args(args):
-  # ToDo: re-organize params parsing, possibly use standard python class for that?
-  if not args or not LIST_SEPARATOR in args or args[0] not in MODES:
-    print_usage()
-  else:
-    mode = MODES.index(args[0])  # identify operation mode
-    args = args[1:]  # Shift args left
-    hostnames = []
-    command_line = []
-    # Parse command line args
-    passed_separator = False  # True if met LIST_SEPARATOR
-    for arg in args:
-      if not passed_separator:
-        if arg != LIST_SEPARATOR:
-          #check if was passed list of hosts instead of one
-          if ',' in arg:
-            hostnames += arg.split(',')
-          else:
-            hostnames.append(arg)
-        else:
-          passed_separator = True
-      else:
-        if arg != LIST_SEPARATOR:
-          command_line.append(arg)
-        else:  # Something definitely goes wrong
-          print "Could not parse arguments: " \
-                "There is more than one %s argument." % LIST_SEPARATOR
-          print_usage()
-
-    if not command_line:
-      print "No command provided."
-      print_usage()
-    return mode, hostnames, command_line
-
-
-def do_work(mode, hostnames, command_line):
-  # Execute commands
-  ignored_hosts = ignored_host_list(get_real_service(), get_real_component())
-  empty_check_result = {
-    'message': 'No checks have been run (no hostnames provided)',
-    'retcode': -1,
-    'real_retcode': None
-  }
-  custom_env = os.environ.copy()
-  if ignored_hosts:
-    custom_env['MM_HOSTS'] = \
-      reduce(lambda a, b: "%s %s" % (a, b), ignored_hosts)
-  if mode == OR:
-    check_result = work_in_or_mode(hostnames, ignored_hosts, command_line, custom_env, empty_check_result)
-  elif mode == AND:
-    check_result = work_in_and_mode(hostnames, ignored_hosts, command_line, custom_env, empty_check_result)
-  elif mode == ENV_ONLY:
-    check_result = work_in_env_only_mode(hostnames, command_line, custom_env)
-  elif mode == FILTER_MM:
-    check_result = work_in_filter_mm_mode(hostnames, ignored_hosts, command_line, custom_env, empty_check_result)
-  else:  # mode == LEGACY_CHECK_WRAPPER:
-    check_result = work_in_legacy_check_wrapper_mode(ignored_hosts, command_line, custom_env)
-  # Build the final output
-  final_output = []
-  output = check_result.get('message')
-  if output is not None:
-    for string in output.splitlines():
-      final_output.append(string.strip())
-  real_retcode = check_result.get('real_retcode')
-  if real_retcode:
-    # This string is used at check_aggregate.php when aggregating alerts
-    final_output.append("AMBARIPASSIVE=%s" % real_retcode)
-  return final_output, check_result.get('retcode')
-
-
-def work_in_or_mode(hostnames, ignored_hosts, command_line, custom_env, empty_check_result):
-  check_result = empty_check_result
-  for hostname in hostnames:
-    concrete_command_line = map(  # Substitute hostname where needed
-                                  lambda x: hostname if x == HOSTNAME_PLACEHOLDER else x,
-                                  command_line)
-    try:
-      returncode = 0
-      real_retcode = None
-      message = check_output(concrete_command_line, env=custom_env)
-    except subprocess.CalledProcessError, e:
-      if hostname not in ignored_hosts:
-        returncode = e.returncode
-      else:  # Host is in MM
-        real_retcode = e.returncode
-      message = e.output
-    really_positive_result = hostname not in ignored_hosts and returncode == 0
-    if check_result.get('retcode') <= returncode or really_positive_result:
-      check_result = {
-        'message': message,
-        'retcode': returncode,
-        'real_retcode': real_retcode  # Real (not suppressed) program retcode
-      }
-    if really_positive_result:
-      break  # Exit on first real success
-  return check_result
-
-
-def work_in_and_mode(hostnames, ignored_hosts, command_line, custom_env, empty_check_result):
-  check_result = empty_check_result
-  for hostname in hostnames:
-    concrete_command_line = map(  # Substitute hostname where needed
-                                  lambda x: hostname if x == HOSTNAME_PLACEHOLDER else x,
-                                  command_line)
-    try:
-      returncode = 0
-      real_retcode = None
-      message = check_output(concrete_command_line, env=custom_env)
-    except subprocess.CalledProcessError, e:
-      if hostname not in ignored_hosts:
-        returncode = e.returncode
-      else:
-        real_retcode = e.returncode
-      message = e.output
-    if check_result.get('retcode') <= returncode:
-      check_result = {
-        'message': message,
-        'retcode': returncode,
-        'real_retcode': real_retcode  # Real (not suppressed) program retcode
-      }
-  return check_result
-
-
-def work_in_env_only_mode(hostnames, command_line, custom_env):
-  concrete_command_line = []
-  for item in command_line:
-    if item == HOSTNAME_PLACEHOLDER:
-      concrete_command_line.extend(hostnames)
-    else:
-      concrete_command_line.append(item)
-  try:
-    returncode = 0
-    message = check_output(concrete_command_line, env=custom_env)
-  except subprocess.CalledProcessError, e:
-    returncode = e.returncode
-    message = e.output
-  check_result = {
-    'message': message,
-    'retcode': returncode,
-    'real_retcode': None  # Real (not suppressed) program retcode
-  }
-  return check_result
-
-
-def work_in_filter_mm_mode(hostnames, ignored_hosts, command_line, custom_env, empty_check_result):
-  not_mm_hosts = [hostname for hostname in hostnames if hostname not in ignored_hosts]
-  if not not_mm_hosts:  # All hosts have been filtered
-    return empty_check_result
-  else:
-    return work_in_env_only_mode(not_mm_hosts, command_line, custom_env)
-
-
-def work_in_legacy_check_wrapper_mode(ignored_hosts, command_line, custom_env):
-  host = os.environ[N_HOST]
-  result = work_in_env_only_mode([host], command_line, custom_env)
-  real_retcode = result['retcode']
-  if host in ignored_hosts and real_retcode != 0:  # Ignore fail
-    result['retcode'] = 0
-    result['real_retcode'] = real_retcode
-  return result
-
-
-def main():
-  """
-  This script allows to run nagios service check commands for host components
-  located at different hosts.
-  Also script passes to every command a $MM_HOSTS shell variable with a list of
-  hosts that are in MM
-
-  or mode: return 0 exit code if at least one service check succeeds.
-  Command exits on a first success.
-  Failures for host components that are in MM are suppressed (return code
-  is set to 0).
-  If command fails for all provided hostnames, script returns alert with the
-  greatest exit code value.
-
-  and mode:
-  Perform checks of all host components (effectively ignoring negative results
-  for MM components). If service check is successful for all hosts, script
-  also returns zero exit code. Otherwise alert with the greatest exit code is
-  returned.
-
-  env_only mode:
-  Pass list of all hosts to command and run it once. The only role of
-  mm_wrapper script in this mode is to provide properly initialized
-  $MM_HOSTS env variable to command being run. All duties of ignoring failures
-  of MM host components are delegated to a command being run.
-
-  filter_mm
-  Similar to env_only mode. The only difference is that hostnames for
-  host components that are in MM are filtered (not passed to command at all)
-
-  legacy_check_wrapper
-  Designed as a drop-in replacement for check_wrapper.sh . It reads $NAGIOS_HOSTNAME
-  env var and ignores check results if host component on this host is in MM.
-  When host subtitution symbol is encountered, hostname defined by $NAGIOS_HOSTNAME
-  is substituted,
-  """
-  args = sys.argv[1:]  # Shift args left
-  mode, hostnames, command_line = parse_args(args)
-  output, ret_code = do_work(mode, hostnames, command_line)
-  for line in output:
-    print line
-  sys.exit(ret_code)
-
-
-if __name__ == "__main__":
-  main()

http://git-wip-us.apache.org/repos/asf/ambari/blob/e4ededeb/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/files/nagios_alerts.php
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/files/nagios_alerts.php b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/files/nagios_alerts.php
deleted file mode 100644
index c7aa517..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/files/nagios_alerts.php
+++ /dev/null
@@ -1,515 +0,0 @@
-<?php
-/*
- * 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.
- */
-
-/** Constants. */
-define("HDP_MON_RESPONSE_OPTION_KEY__PROPERTIES", "Properties");
-define("HDP_MON_RESPONSE_OPTION_KEY__TYPE", "Type");
-
-define("HDP_MON_RESPONSE_OPTION_VALUE__PROPERTIES_UNCACHEABLE", "Uncacheable");
-define("HDP_MON_RESPONSE_OPTION_VALUE__TYPE_JSON", "JSON");
-define("HDP_MON_RESPONSE_OPTION_VALUE__TYPE_JAVASCRIPT", "JAVASCRIPT");
-
-define("HDP_MON_QUERY_ARG__JSONP", "jsonp");
-
-/** Spits out appropriate response headers, as per the options passed in. */
-function hdp_mon_generate_response_headers( $response_options )
-{
-  if( $response_options[HDP_MON_RESPONSE_OPTION_KEY__PROPERTIES] == HDP_MON_RESPONSE_OPTION_VALUE__PROPERTIES_UNCACHEABLE )
-  {
-    // Make the response uncache-able.
-    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
-    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // Always modified
-    header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
-    header("Pragma: no-cache"); // HTTP/1.0
-  }
-
-  switch( $response_options[HDP_MON_RESPONSE_OPTION_KEY__TYPE] )
-  {
-    case HDP_MON_RESPONSE_OPTION_VALUE__TYPE_JSON:
-      {
-        header('Content-type: application/json');
-      }
-      break;
-
-    case HDP_MON_RESPONSE_OPTION_VALUE__TYPE_JAVASCRIPT:
-      {
-        header('Content-type: application/javascript');
-      }
-      break;
-  }
-}
-
-/** Given $response_data (which we expect to be a JSON string), generate an
- *  HTTP response, which includes emitting the necessary HTTP response headers
- *  followed by the response body (that is either plain ol' $response_data,
- *  or a JSONP wrapper around it).
- */
-function hdp_mon_generate_response( $response_data )
-{
-  $jsonpFunctionName = NULL;
-  if (isset($_GET[HDP_MON_QUERY_ARG__JSONP])) {
-    $jsonpFunctionName = $_GET[HDP_MON_QUERY_ARG__JSONP];
-  }
-
-  hdp_mon_generate_response_headers( array
-  ( HDP_MON_RESPONSE_OPTION_KEY__PROPERTIES => HDP_MON_RESPONSE_OPTION_VALUE__PROPERTIES_UNCACHEABLE,
-  HDP_MON_RESPONSE_OPTION_KEY__TYPE =>
-  isset( $jsonpFunctionName )  && $jsonpFunctionName != "" ?
-  HDP_MON_RESPONSE_OPTION_VALUE__TYPE_JAVASCRIPT :
-  HDP_MON_RESPONSE_OPTION_VALUE__TYPE_JSON ) );
-
-  if( isset( $jsonpFunctionName ) )
-  {
-    echo "$jsonpFunctionName( $response_data );";
-  }
-  else
-  {
-    echo $response_data;
-  }
-}
-
-  /* alert_type { ok, non-ok, warning, critical, all } */
-  define ("all", "-2");
-  define ("nok", "-1");
-  define ("ok", "0");
-  define ("warn", "1");
-  define ("critical", "2");
-
-  define ("HDFS_SERVICE_CHECK", "NAMENODE::NameNode process down");
-  define ("MAPREDUCE_SERVICE_CHECK", "JOBTRACKER::JobTracker process down");
-  define ("HBASE_SERVICE_CHECK", "HBASEMASTER::HBaseMaster process down");
-  define ("ZOOKEEPER_SERVICE_CHECK", "ZOOKEEPER::Percent ZooKeeper Servers down");
-  define ("HIVE_SERVICE_CHECK", "HIVE-METASTORE::Hive Metastore status check");
-  define ("OOZIE_SERVICE_CHECK", "OOZIE::Oozie Server status check");
-  define ("WEBHCAT_SERVICE_CHECK", "WEBHCAT::WebHCat Server status check");
-  define ("PUPPET_SERVICE_CHECK", "PUPPET::Puppet agent down");
-
-  // on SUSE, some versions of Nagios stored data in /var/lib
-  $status_file = "/var/nagios/status.dat";
-  if (!file_exists($status_file) && file_exists("/etc/SuSE-release")) {
-    $status_file = "/var/lib/nagios/status.dat";
-  }
-  
-  $q1="";
-  if (array_key_exists('q1', $_GET)) {
-    $q1=$_GET["q1"];
-  }
-  $q2="";
-  if (array_key_exists('q2', $_GET)) {
-    $q2=$_GET["q2"];
-  }
-  $alert_type="";
-  if (array_key_exists('alert_type', $_GET)) {
-    $alert_type=$_GET["alert_type"];
-  }
-  $host="";
-  if (array_key_exists('host_name', $_GET)) {
-    $host=$_GET["host_name"];
-  }
-  $indent="";
-  if (array_key_exists('indent', $_GET)) {
-    $indent=$_GET["indent"];
-  }
-
-  $result = array();
-  $status_file_content = file_get_contents($status_file);
-
-  if ($q1 == "alerts") {
-    /* Add the service status object to result array */
-    $result['alerts'] = query_alerts ($status_file_content, $alert_type, $host);
-  }
-
-  if ($q2 == "hosts") {
-    /* Add the service status object to result array */
-    $result['hosts'] = query_hosts ($status_file_content, $alert_type, $host);
-  }
-
-  /* Add host count object to the results */
-  $result['hostcounts'] = query_host_count ($status_file_content);
-
-  /* Add services runtime states */
-  $result['servicestates'] = query_service_states ($status_file_content);
-
-  /* Return results */
-  if ($indent == "true") {
-    hdp_mon_generate_response(indent(json_encode($result)));
-  } else {
-    hdp_mon_generate_response(json_encode($result));
-  }
-
-  # Functions
-  /* Query service states */
-  function query_service_states ($status_file_content) {
-    $num_matches = preg_match_all("/servicestatus \{([\S\s]*?)\}/", $status_file_content, $matches, PREG_PATTERN_ORDER);
-    $services_object = array ();
-    $services_object["PUPPET"] = 0;
-    foreach ($matches[0] as $object) {
-
-      if (getParameter($object, "service_description") == HDFS_SERVICE_CHECK) {
-        $services_object["HDFS"] = getParameter($object, "last_hard_state");
-        if ($services_object["HDFS"] >= 1) {
-          $services_object["HDFS"] = 1;
-        }
-        continue;
-      }
-      if (getParameter($object, "service_description") == MAPREDUCE_SERVICE_CHECK) {
-        $services_object["MAPREDUCE"] = getParameter($object, "last_hard_state");
-        if ($services_object["MAPREDUCE"] >= 1) {
-          $services_object["MAPREDUCE"] = 1;
-        }
-        continue;
-      }
-      if (getParameter($object, "service_description") == HBASE_SERVICE_CHECK) {
-        $services_object["HBASE"] = getParameter($object, "last_hard_state");
-        if ($services_object["HBASE"] >= 1) {
-          $services_object["HBASE"] = 1;
-        }
-        continue;
-      }
-      if (getParameter($object, "service_description") == HIVE_SERVICE_CHECK) {
-        $services_object["HIVE"] = getParameter($object, "last_hard_state");
-        if ($services_object["HIVE"] >= 1) {
-          $services_object["HIVE"] = 1;
-        }
-        continue;
-      }
-      if (getParameter($object, "service_description") == OOZIE_SERVICE_CHECK) {
-        $services_object["OOZIE"] = getParameter($object, "last_hard_state");
-        if ($services_object["OOZIE"] >= 1) {
-          $services_object["OOZIE"] = 1;
-        }
-        continue;
-      }
-      if (getParameter($object, "service_description") == WEBHCAT_SERVICE_CHECK) {
-        $services_object["WEBHCAT"] = getParameter($object, "last_hard_state");
-        if ($services_object["WEBHCAT"] >= 1) {
-          $services_object["WEBHCAT"] = 1;
-        }
-        continue;
-      }
-      /* In case of zookeeper, service is treated running if alert is ok or warning (i.e partial
-       * instances of zookeepers are running
-       */
-      if (getParameter($object, "service_description") == ZOOKEEPER_SERVICE_CHECK) {
-        $services_object["ZOOKEEPER"] = getParameter($object, "last_hard_state");
-        if ($services_object["ZOOKEEPER"] <= 1) {
-          $services_object["ZOOKEEPER"] = 0;
-        }
-        continue;
-      }
-      if (getParameter($object, "service_description") == PUPPET_SERVICE_CHECK) {
-        $state = getParameter($object, "last_hard_state");
-        if ($state >= 1) {
-          $services_object["PUPPET"]++;
-        }
-        continue;
-      }
-    }
-    if ($services_object["PUPPET"] >= 1) {
-      $services_object["PUPPET"] = 1;
-    }
-    $services_object = array_map('strval', $services_object);
-    return $services_object;
-  }
-
-  /* Query host count */
-  function query_host_count ($status_file_content) {
-    $num_matches = preg_match_all("/hoststatus \{([\S\s]*?)\}/", $status_file_content, $matches, PREG_PATTERN_ORDER);
-    $hostcounts_object = array ();
-    $up_hosts = 0;
-    $down_hosts = 0;
-
-    foreach ($matches[0] as $object) {
-      if (getParameter($object, "last_hard_state") != ok) {
-        $down_hosts++;
-      } else {
-        $up_hosts++;
-      }
-    }
-    $hostcounts_object['up_hosts'] = $up_hosts;
-    $hostcounts_object['down_hosts'] = $down_hosts;
-    $hostcounts_object = array_map('strval', $hostcounts_object);
-    return $hostcounts_object;
-  }
-
-  /* Query Hosts */
-  function query_hosts ($status_file_content, $alert_type, $host) {
-    $hoststatus_attributes = array ("host_name", "current_state", "last_hard_state",
-                              "plugin_output", "last_check", "current_attempt",
-                              "last_hard_state_change", "last_time_up", "last_time_down",
-                              "last_time_unreachable", "is_flapping", "last_check");
-
-    $num_matches = preg_match_all("/hoststatus \{([\S\s]*?)\}/", $status_file_content, $matches, PREG_PATTERN_ORDER);
-    $hosts_objects = array ();
-    $i = 0;
-    foreach ($matches[0] as $object) {
-      $hoststatus = array ();
-      $chost = getParameter($object, "host_name");
-      if (empty($host) || $chost == $host) {
-        foreach ($hoststatus_attributes as $attrib) {
-          $hoststatus[$attrib] = htmlentities(getParameter($object, $attrib), ENT_COMPAT);
-        }
-        $hoststatus['alerts'] = query_alerts ($status_file_content, $alert_type, $chost);
-        if (!empty($host)) {
-          $hosts_objects[$i] = $hoststatus;
-          $i++;
-          break;
-        }
-      }
-      if (!empty($hoststatus)) {
-        $hosts_objects[$i] = $hoststatus;
-        $i++;
-      }
-    }
-    /* echo "COUNT : " . count ($services_objects) . "\n"; */
-    return $hosts_objects;
-  }
-
-  /* Query Alerts */
-  function query_alerts ($status_file_content, $alert_type, $host) {
-
-    $servicestatus_attributes = array ("service_description", "host_name", "current_attempt",
-                                       "current_state", "plugin_output", "last_hard_state_change", "last_hard_state",
-                                       "last_time_ok", "last_time_warning", "last_time_unknown",
-                                       "last_time_critical", "is_flapping", "last_check",
-                                       "long_plugin_output");
-
-    $num_matches = preg_match_all("/servicestatus \{([\S\s]*?)\}/", $status_file_content, $matches, PREG_PATTERN_ORDER);
-    #echo $matches[0][0] . ", " . $matches[0][1] . "\n";
-    #echo $matches[1][0] . ", " . $matches[1][1] . "\n";
-    $services_objects = array ();
-    $i = 0;
-    foreach ($matches[1] as $object) {      
-      $servicestatus = getParameterMap($object, $servicestatus_attributes);
-      switch ($alert_type) {
-      case "all":
-        if (empty($host) || $servicestatus['host_name'] == $host) {
-          $servicestatus['service_type'] = get_service_type($servicestatus['service_description']);
-          $srv_desc = explode ("::",$servicestatus['service_description'],2);
-
-          $servicestatus['service_description'] = $srv_desc[1];
-        }
-        break;
-      case "nok":
-        if (getParameterMapValue($map, "last_hard_state") != ok &&
-           (empty($host) || getParameterMapValue($map, "host_name") == $host)) {
-          foreach ($servicestatus_attributes as $attrib) {
-            $servicestatus[$attrib] = htmlentities(getParameterMapValue($map, $attrib), ENT_COMPAT);
-          }
-          $servicestatus['service_type'] = get_service_type($servicestatus['service_description']);
-          $srv_desc = explode ("::",$servicestatus['service_description'],2);
-          $servicestatus['service_description'] = $srv_desc[1];
-        }
-        break;
-      case "ok":
-        if (getParameterMapValue($map, "last_hard_state") == ok &&
-           (empty($host) || getParameterMapValue($map, "host_name") == $host)) {
-          foreach ($servicestatus_attributes as $attrib) {
-            $servicestatus[$attrib] = htmlentities(getParameterMapValue($map, $attrib), ENT_COMPAT);
-          }
-          $servicestatus['service_type'] = get_service_type($servicestatus['service_description']);
-          $srv_desc = explode ("::",$servicestatus['service_description'],2);
-          $servicestatus['service_description'] = $srv_desc[1];
-        }
-        break;
-      case "warn":
-        if (getParameterMapValue($map, "last_hard_state") == warn &&
-           (empty($host) || getParameterMapValue($map, "host_name") == $host)) {
-          foreach ($servicestatus_attributes as $attrib) {
-            $servicestatus[$attrib] = htmlentities(getParameterMapValue($map, $attrib), ENT_COMPAT);
-          }
-          $servicestatus['service_type'] = get_service_type($servicestatus['service_description']);
-          $srv_desc = explode ("::",$servicestatus['service_description'],2);
-          $servicestatus['service_description'] = $srv_desc[1];
-        }
-        break;
-      case "critical":
-        if (getParameterMapValue($map, "last_hard_state") == critical &&
-           (empty($host) || getParameterMapValue($map, "host_name") == $host)) {
-          foreach ($servicestatus_attributes as $attrib) {
-            $servicestatus[$attrib] = htmlentities(getParameterMapValue($map, $attrib), ENT_COMPAT);
-          }
-          $servicestatus['service_type'] = get_service_type($servicestatus['service_description']);
-          $srv_desc = explode ("::",$servicestatus['service_description'],2);
-          $servicestatus['service_description'] = $srv_desc[1];
-        }
-        break;
-      }
-      
-      if (!empty($servicestatus)) {
-        $services_objects[$i] = $servicestatus;
-        $i++;
-      }
-    }
-
-    // echo "COUNT : " . count ($services_objects) . "\n";
-    return $services_objects;
-  }
-
-  function get_service_type($service_description)
-  {
-    $pieces = explode("::", $service_description);
-    switch ($pieces[0]) {
-	  case "DATANODE":
-      case "NAMENODE":
-      case "JOURNALNODE":
-        $pieces[0] = "HDFS";
-        break;
-      case "JOBTRACKER":
-	  case "TASKTRACKER":
-        $pieces[0] = "MAPREDUCE";
-        break;
-      case "HBASEMASTER":
-      case "REGIONSERVER":
-        $pieces[0] = "HBASE";
-        break;
-      case "HIVE-METASTORE":
-      case "HIVE-SERVER":
-      case "WEBHCAT":
-        $pieces[0] = "HIVE";
-        break;
-      case "ZKSERVERS":
-	    $pieces[0] = "ZOOKEEPER";
-        break;
-      case "AMBARI":
-	    $pieces[0] = "AMBARI";
-      break;
-      case "FLUME":
-            $pieces[0] = "FLUME";
-      break;      
-      case "JOBHISTORY":
-        $pieces[0] = "MAPREDUCE2";
-        break;
-      case "RESOURCEMANAGER":
-      case "APP_TIMELINE_SERVER":
-      case "NODEMANAGER":
-        $pieces[0] = "YARN";
-        break;
-      case "STORM_UI_SERVER":
-      case "NIMBUS":
-      case "DRPC_SERVER":
-      case "SUPERVISOR":
-      case "STORM_REST_API":
-        $pieces[0] = "STORM";
-        break;
-      case "NAGIOS":
-      case "HDFS":
-      case "MAPREDUCE":
-      case "HBASE":
-      case "ZOOKEEPER":
-      case "OOZIE":
-      case "GANGLIA":
-      case "STORM":
-      case "FALCON":
-      case "KNOX":
-      case "KAFKA":
-      case "PUPPET":
-        break;
-      default:
-        $pieces[0] = "UNKNOWN";
-    }
-    return $pieces[0];
-  }
-
-  function getParameter($object, $key)
-  {
-    $pattern="/\s" . $key . "[\s= ]*([\S, ]*)\n/";
-    $num_mat = preg_match($pattern, $object, $matches);
-    $value = "";
-    if ($num_mat) {
-      $value = $matches[1];
-    }
-    return $value;
-  }
-
-  function getParameterMapValue($map, $key) {
-    $value = $map[$key];
-
-    if (!is_null($value))
-      return "" . $value;
-
-    return "";
-  }
-
-
-  function getParameterMap($object, $keynames) {
-
-    $cnt = preg_match_all('/\t([\S]*)=[\n]?[\t]?([\S= ]*)/', $object, $matches, PREG_PATTERN_ORDER);
-
-    $tmpmap = array_combine($matches[1], $matches[2]);
-
-    $map = array();
-    foreach ($keynames as $key) {
-      $map[$key] = htmlentities($tmpmap[$key], ENT_COMPAT);
-    }
-
-    return $map;
-  }
-  
-function indent($json) {
-
-    $result      = '';
-    $pos         = 0;
-    $strLen      = strlen($json);
-    $indentStr   = '  ';
-    $newLine     = "\n";
-    $prevChar    = '';
-    $outOfQuotes = true;
-
-    for ($i=0; $i<=$strLen; $i++) {
-
-        // Grab the next character in the string.
-        $char = substr($json, $i, 1);
-
-        // Are we inside a quoted string?
-        if ($char == '"' && $prevChar != '\\') {
-            $outOfQuotes = !$outOfQuotes;
-
-        // If this character is the end of an element,
-        // output a new line and indent the next line.
-        } else if(($char == '}' || $char == ']') && $outOfQuotes) {
-            $result .= $newLine;
-            $pos --;
-            for ($j=0; $j<$pos; $j++) {
-                $result .= $indentStr;
-            }
-        }
-
-        // Add the character to the result string.
-        $result .= $char;
-
-        // If the last character was the beginning of an element,
-        // output a new line and indent the next line.
-        if (($char == ',' || $char == '{' || $char == '[') && $outOfQuotes) {
-            $result .= $newLine;
-            if ($char == '{' || $char == '[') {
-                $pos ++;
-            }
-
-            for ($j = 0; $j < $pos; $j++) {
-                $result .= $indentStr;
-            }
-        }
-
-        $prevChar = $char;
-    }
-
-    return $result;
-}
-?>

http://git-wip-us.apache.org/repos/asf/ambari/blob/e4ededeb/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/files/sys_logger.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/files/sys_logger.py b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/files/sys_logger.py
deleted file mode 100644
index 6683342..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/files/sys_logger.py
+++ /dev/null
@@ -1,197 +0,0 @@
-#!/usr/bin/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 sys
-import syslog
-
-# dictionary of state->severity mappings
-severities = {'UP':'OK', 'DOWN':'Critical', 'UNREACHABLE':'Critical', 'OK':'OK',
-              'WARNING':'Warning', 'UNKNOWN':'Warning', 'CRITICAL':'Critical'}
-
-# List of services which can result in events at the Degraded severity
-degraded_alert_services = ['HBASEMASTER::HBaseMaster CPU utilization',
-                           'HDFS::Namenode RPC Latency',
-                           'MAPREDUCE::JobTracker RPC Latency',
-                           'JOBTRACKER::Jobtracker CPU utilization']
-
-# List of services which can result in events at the Fatal severity
-fatal_alert_services = ['NAMENODE::Namenode Process down',
-                        'NAMENODE::NameNode process']
-
-# dictionary of service->msg_id mappings
-msg_ids = {'Host::Ping':'host_down',
-           'HBASEMASTER::HBaseMaster CPU utilization':'master_cpu_utilization',
-           'HDFS::HDFS Capacity utilization':'hdfs_percent_capacity',
-           'HDFS::Corrupt/Missing blocks':'hdfs_block',
-           'NAMENODE::Namenode Edit logs directory status':'namenode_edit_log_write',
-           'HDFS::Percent DataNodes down':'datanode_down',
-           'DATANODE::Process down':'datanode_process_down',
-           'HDFS::Percent DataNodes storage full':'datanodes_percent_storage_full',
-           'NAMENODE::Namenode Process down':'namenode_process_down',
-           'HDFS::Namenode RPC Latency':'namenode_rpc_latency',
-           'DATANODE::Storage full':'datanodes_storage_full',
-           'JOBTRACKER::Jobtracker Process down':'jobtracker_process_down',
-           'MAPREDUCE::JobTracker RPC Latency':'jobtracker_rpc_latency',
-           'MAPREDUCE::Percent TaskTrackers down':'tasktrackers_down',
-           'TASKTRACKER::Process down':'tasktracker_process_down',
-           'HBASEMASTER::HBaseMaster Process down':'hbasemaster_process_down',
-           'REGIONSERVER::Process down':'regionserver_process_down',
-           'HBASE::Percent region servers down':'regionservers_down',
-           'HIVE-METASTORE::HIVE-METASTORE status check':'hive_metastore_process_down',
-           'ZOOKEEPER::Percent zookeeper servers down':'zookeepers_down',
-           'ZKSERVERS::ZKSERVERS Process down':'zookeeper_process_down',
-           'OOZIE::Oozie status check':'oozie_down',
-           'TEMPLETON::Templeton status check':'templeton_down',
-           'PUPPET::Puppet agent down':'puppet_down',
-           'NAGIOS::Nagios status log staleness':'nagios_status_log_stale',
-           'GANGLIA::Ganglia [gmetad] Process down':'ganglia_process_down',
-           'GANGLIA::Ganglia collector [gmond] Process down alert for hbasemaster':'ganglia_collector_process_down',
-           'GANGLIA::Ganglia collector [gmond] Process down alert for jobtracker':'ganglia_collector_process_down',
-           'GANGLIA::Ganglia collector [gmond] Process down alert for namenode':'ganglia_collector_process_down',
-           'GANGLIA::Ganglia collector [gmond] Process down alert for slaves':'ganglia_collector_process_down',
-           'NAMENODE::Secondary Namenode Process down':'secondary_namenode_process_down',
-           'JOBTRACKER::Jobtracker CPU utilization':'jobtracker_cpu_utilization',
-           'HBASEMASTER::HBase Web UI down':'hbase_ui_down',
-           'NAMENODE::Namenode Web UI down':'namenode_ui_down',
-           'JOBTRACKER::JobHistory Web UI down':'jobhistory_ui_down',
-           'JOBTRACKER::JobTracker Web UI down':'jobtracker_ui_down',
-
-           'HBASEMASTER::HBase Master CPU utilization':'master_cpu_utilization',
-           'HDFS::HDFS capacity utilization':'hdfs_percent_capacity',
-           'NAMENODE::NameNode edit logs directory status':'namenode_edit_log_write',
-           'DATANODE::DataNode process down':'datanode_process_down',
-           'NAMENODE::NameNode process down':'namenode_process_down',
-           'HDFS::NameNode RPC latency':'namenode_rpc_latency',
-           'DATANODE::DataNode storage full':'datanodes_storage_full',
-           'JOBTRACKER::JobTracker process down':'jobtracker_process_down',
-           'MAPREDUCE::JobTracker RPC latency':'jobtracker_rpc_latency',
-           'TASKTRACKER::TaskTracker process down':'tasktracker_process_down',
-           'HBASEMASTER::HBase Master process down':'hbasemaster_process_down',
-           'REGIONSERVER::RegionServer process down':'regionserver_process_down',
-           'HBASE::Percent RegionServers down':'regionservers_down',
-           'HIVE-METASTORE::Hive Metastore status check':'hive_metastore_process_down',
-           'HIVE-METASTORE::Hive Metastore process':'hive_metastore_process_down',
-           'ZOOKEEPER::Percent ZooKeeper Servers down':'zookeepers_down',
-           'ZOOKEEPER::ZooKeeper Server process down':'zookeeper_process_down',
-           'OOZIE::Oozie Server status check':'oozie_down',
-           'WEBHCAT::WebHCat Server status check':'templeton_down',
-           'GANGLIA::Ganglia [gmetad] process down':'ganglia_process_down',
-           'GANGLIA::Ganglia Collector [gmond] process down alert for HBase Master':'ganglia_collector_process_down',
-           'GANGLIA::Ganglia Collector [gmond] process down alert for JobTracker':'ganglia_collector_process_down',
-           'GANGLIA::Ganglia Collector [gmond] process down alert for NameNode':'ganglia_collector_process_down',
-           'GANGLIA::Ganglia Collector [gmond] process down alert for slaves':'ganglia_collector_process_down',
-           'NAMENODE::Secondary NameNode process down':'secondary_namenode_process_down',
-           'JOBTRACKER::JobTracker CPU utilization':'jobtracker_cpu_utilization',
-           'HBASEMASTER::HBase Master Web UI down':'hbase_ui_down',
-           'NAMENODE::NameNode Web UI down':'namenode_ui_down',
-           'Oozie status check':'oozie_down',
-           'WEBHCAT::WebHcat status check':'templeton_down',
-
-           # Ambari Nagios service check descriptions
-           'DATANODE::DataNode process':'datanode_process',
-           'NAMENODE::NameNode process':'namenode_process',
-           'NAMENODE::Secondary NameNode process':'secondary_namenode_process',
-           'JOURNALNODE::JournalNode process':'journalnode_process',
-           'ZOOKEEPER::ZooKeeper Server process':'zookeeper_process_down',
-           'JOBTRACKER::JobTracker process':'jobtracker_process',
-           'TASKTRACKER::TaskTracker process':'tasktracker_process',
-           'GANGLIA::Ganglia Server process':'ganglia_server_process',
-           'GANGLIA::Ganglia Monitor process for Slaves':'ganglia_monitor_process',
-           'GANGLIA::Ganglia Monitor process for NameNode':'ganglia_monitor_process',
-           'GANGLIA::Ganglia Monitor process for JobTracker':'ganglia_monitor_process',
-           'GANGLIA::Ganglia Monitor process for HBase Master':'ganglia_monitor_process',
-           'GANGLIA::Ganglia Monitor process for ResourceManager':'ganglia_monitor_process',
-           'GANGLIA::Ganglia Monitor process for HistoryServer':'ganglia_monitor_process',
-           'HBASEMASTER::HBase Master process':'hbase_master_process',
-           'HBASE::Percent RegionServers live':'regionservers_down',
-           'REGIONSERVER::RegionServer process':'regionserver_process',
-           'NAGIOS::Nagios status log freshness':'nagios_process',
-           'FLUME::Flume Agent process':'flume_agent_process',
-           'OOZIE::Oozie Server status':'oozie_down',
-           'HIVE-METASTORE::Hive Metastore status':'hive_metastore_process',
-           'WEBHCAT::WebHCat Server status':'webhcat_down',
-           'RESOURCEMANAGER::ResourceManager process':'resourcemanager_process_down',
-           'RESOURCEMANAGER::ResourceManager RPC latency':'resourcemanager_rpc_latency',
-           'RESOURCEMANAGER::ResourceManager CPU utilization':'resourcemanager_cpu_utilization',
-           'RESOURCEMANAGER::ResourceManager Web UI':'recourcemanager_ui',
-           'NODEMANAGER::NodeManager process':'nodemanager_process_down',
-           'NODEMANAGER::NodeManager health':'nodemanager_health',
-           'NODEMANAGER::Percent NodeManagers live':'nodemanagers_down',
-           'APP_TIMELINE_SERVER::App Timeline Server process':'timelineserver_process',
-           'JOBHISTORY::HistoryServer RPC latency':'historyserver_rpc_latency',
-           'JOBHISTORY::HistoryServer CPU utilization':'historyserver_cpu_utilization',
-           'JOBHISTORY::HistoryServer Web UI':'historyserver_ui',
-           'JOBHISTORY::HistoryServer process':'historyserver_process'}
-
-# Determine the severity of the TVI alert based on the Nagios alert state.
-def determine_severity(state, service):
-    if severities.has_key(state):
-        severity = severities[state]
-    else: severity = 'Warning'
-
-    # For some alerts, warning should be converted to Degraded
-    if severity == 'Warning' and service in degraded_alert_services:
-        severity = 'Degraded'
-    elif severity != 'OK' and service in fatal_alert_services:
-        severity = 'Fatal'
-
-    return severity
-
-
-# Determine the msg id for the TVI alert from based on the service which generates the Nagios alert.
-# The msg id is used to correlate a log msg to a TVI rule.
-def determine_msg_id(service, severity):
-  for k, v in msg_ids.iteritems():
-    if(k in service):
-      msg_id = v
-      if severity == 'OK':
-        msg_id = '{0}_ok'.format(msg_id)
-      return msg_id
-  return 'HADOOP_UNKNOWN_MSG'
-
-
-# Determine the domain.  Currently the domain is always 'Hadoop'.
-def determine_domain():
-    return 'Hadoop'
-
-
-# log the TVI msg to the syslog
-def log_tvi_msg(msg):
-    syslog.openlog('nagios', syslog.LOG_PID)
-    syslog.syslog(msg)
-
-
-# generate a tvi log msg from a Hadoop alert
-def generate_tvi_log_msg(alert_type, attempt, state, service, msg):
-    # Determine the TVI msg contents
-    severity = determine_severity(state, service)  # The TVI alert severity.
-    domain   = determine_domain()                  # The domain specified in the TVI alert.
-    msg_id   = determine_msg_id(service, severity) # The msg_id used to correlate to a TVI rule.
-
-    # Only log HARD alerts
-    if alert_type == 'HARD':
-        # Format and log msg
-        log_tvi_msg('{0}: {1}: {2}# {3}'.format(severity, domain, msg_id, msg))
-
-
-# main method which is called when invoked on the command line
-def main():
-    generate_tvi_log_msg(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4], sys.argv[5])
-
-
-# run the main method
-if __name__ == '__main__':
-    main()
-    sys.exit(0)
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/e4ededeb/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/scripts/functions.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/scripts/functions.py b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/scripts/functions.py
deleted file mode 100644
index 7252f8f..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/scripts/functions.py
+++ /dev/null
@@ -1,47 +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.
-
-Ambari Agent
-
-"""
-from resource_management import *
-
-# Gets if the java version is greater than 6
-def is_jdk_greater_6(java64_home):
-  import os
-  import re
-  java_bin = os.path.join(java64_home, 'bin', 'java')
-  ver_check = shell.call([java_bin, '-version'])
-
-  ver = ''
-  if 0 != ver_check[0]:
-    # java is not local, try the home name as a fallback
-    ver = java64_home
-  else:
-    ver = ver_check[1]
-
-  regex = re.compile('"1\.([0-9]*)\.0_([0-9]*)"', re.IGNORECASE)
-  r = regex.search(ver)
-  if r:
-    strs = r.groups()
-    if 2 == len(strs):
-      minor = int(strs[0])
-      if minor > 6:
-        return True
-
-  return False

http://git-wip-us.apache.org/repos/asf/ambari/blob/e4ededeb/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/scripts/nagios.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/scripts/nagios.py b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/scripts/nagios.py
deleted file mode 100644
index a63ea38..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/scripts/nagios.py
+++ /dev/null
@@ -1,109 +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.
-
-Ambari Agent
-
-"""
-
-from resource_management import *
-from nagios_server_config import nagios_server_config
-
-def nagios():
-  import params
-
-  File( params.nagios_httpd_config_file,
-    owner = params.nagios_user,
-    group = params.nagios_group,
-    content = Template("nagios.conf.j2"),
-    mode   = 0644
-  )
-  
-  Directory( params.conf_dir,
-    owner = params.nagios_user,
-    group = params.nagios_group
-  )
-
-  Directory( [params.plugins_dir, params.nagios_obj_dir])
-
-  Directory( params.nagios_pid_dir,
-    owner = params.nagios_user,
-    group = params.nagios_group,
-    mode = 0755,
-    recursive = True
-  )
-
-  Directory( [params.nagios_var_dir, params.check_result_path, params.nagios_rw_dir, params.ambarinagios_php_dir],
-    owner = params.nagios_user,
-    group = params.nagios_group,
-    recursive = True
-  )
-  
-  Directory( [params.nagios_log_dir, params.nagios_log_archives_dir],
-    owner = params.nagios_user,
-    group = params.nagios_group,
-    mode = 0755
-  )
-
-  nagios_server_config()
-
-  set_web_permisssions()
-
-  File( format("{conf_dir}/command.cfg"),
-    owner = params.nagios_user,
-    group = params.nagios_group
-  )
-
-  File( format("{ambarinagios_php_dir}/{ambarinagios_php_filename}"),
-    content = StaticFile(params.ambarinagios_php_filename),
-  )
-
-  File( params.hdp_mon_nagios_addons_path,
-    content = StaticFile("hdp_mon_nagios_addons.conf"),
-  )
-
-  File(format("{nagios_var_dir}/ignore.dat"),
-    owner = params.nagios_user,
-    group = params.nagios_group,
-    mode = 0664)
-  
-  if System.get_instance().os_family == "ubuntu":
-    Link(params.ubuntu_stylesheets_desired_location,
-         to = params.ubuntu_stylesheets_real_location
-    )
-  
-  
-def set_web_permisssions():
-  import params
-
-  cmd = format("{htpasswd_cmd} -c -b  {conf_dir}/htpasswd.users {nagios_web_login} {nagios_web_password!p}")
-  Execute(cmd)
-
-  File( format("{conf_dir}/htpasswd.users"),
-    owner = params.nagios_user,
-    group = params.nagios_group,
-    mode  = 0640
-  )
-
-  if System.get_instance().os_family == "suse":
-    command = format("usermod -G {nagios_group} wwwrun")
-  elif System.get_instance().os_family == "ubuntu":
-    command = format("usermod -G {nagios_group} www-data") # check -a ???
-  elif System.get_instance().os_family == "redhat":
-    command = format("usermod -a -G {nagios_group} apache")
-  
-  Execute( command)

http://git-wip-us.apache.org/repos/asf/ambari/blob/e4ededeb/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/scripts/nagios_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/scripts/nagios_server.py b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/scripts/nagios_server.py
deleted file mode 100644
index da35b34..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/scripts/nagios_server.py
+++ /dev/null
@@ -1,111 +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.
-
-Ambari Agent
-
-"""
-
-import sys
-from resource_management import *
-from nagios import nagios
-from nagios_service import nagios_service
-from nagios_service import update_active_alerts
-
-         
-class NagiosServer(Script):
-  def install(self, env):
-    remove_conflicting_packages()
-    self.install_packages(env)
-    self.configure(env)
-    
-  def configure(self, env):
-    import params
-    env.set_params(params)
-    nagios()
-
-    
-  def start(self, env):
-    import params
-    env.set_params(params)
-
-    update_ignorable(params)
-
-    self.configure(env) # done for updating configs after Security enabled
-    nagios_service(action='start')
-
-    
-  def stop(self, env):
-    import params
-    env.set_params(params)
-    
-    nagios_service(action='stop')
-
-
-  def status(self, env):
-    import status_params
-    env.set_params(status_params)
-    check_process_status(status_params.nagios_pid_file)
-
-    # check for alert structures
-    update_active_alerts()
-
-    
-def remove_conflicting_packages():  
-  Package('hdp_mon_nagios_addons', action = "remove")
-
-  Package('nagios-plugins', action = "remove")
-  
-  if System.get_instance().os_family in ["redhat","suse"]:
-    Execute("rpm -e --allmatches --nopostun nagios",
-      path  = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
-      ignore_failures = True)
-
-def update_ignorable(params):
-  if not params.config.has_key('passiveInfo'):
-    return
-  else:
-    buf = ""
-    count = 0
-    for define in params.config['passiveInfo']:
-      try:
-        host = str(define['host'])
-        service = str(define['service'])
-        component = str(define['component'])
-        buf += host + " " + service + " " + component + "\n"
-        count += 1
-      except KeyError:
-        pass
-
-    f = None
-    try:
-      f = open('/var/nagios/ignore.dat', 'w')
-      f.write(buf)
-      if 1 == count:
-        Logger.info("Persisted '/var/nagios/ignore.dat' with 1 entry")
-      elif count > 1:
-        Logger.info("Persisted '/var/nagios/ignore.dat' with " + str(count) + " entries")
-    except:
-      Logger.info("Could not persist '/var/nagios/ignore.dat'")
-      pass
-    finally:
-      if f is not None:
-        f.close()
-
-
-if __name__ == "__main__":
-  NagiosServer().execute()

http://git-wip-us.apache.org/repos/asf/ambari/blob/e4ededeb/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/scripts/nagios_server_config.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/scripts/nagios_server_config.py b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/scripts/nagios_server_config.py
deleted file mode 100644
index 883442c..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/scripts/nagios_server_config.py
+++ /dev/null
@@ -1,99 +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.
-
-Ambari Agent
-
-"""
-
-from resource_management import *
-
-def nagios_server_config():
-  import params
-  
-  nagios_server_configfile( 'nagios.cfg', 
-                            config_dir = params.conf_dir, 
-                            group = params.nagios_group
-  )
-  nagios_server_configfile( 'resource.cfg', 
-                            config_dir = params.conf_dir, 
-                            group = params.nagios_group
-  )
-  nagios_server_configfile( 'hadoop-hosts.cfg')
-  nagios_server_configfile( 'hadoop-hostgroups.cfg')
-  nagios_server_configfile( 'hadoop-servicegroups.cfg')
-  nagios_server_configfile( 'hadoop-services.cfg')
-  nagios_server_configfile( 'hadoop-commands.cfg')
-  nagios_server_configfile( 'contacts.cfg')
-  
-  if System.get_instance().os_family != "suse":
-    nagios_server_configfile( 'nagios',
-                              config_dir = '/etc/init.d',
-                              mode = 0755, 
-                              owner = 'root', 
-                              group = 'root'
-    )
-
-  nagios_server_check( 'check_cpu.pl')
-  nagios_server_check( 'check_cpu.php')
-  nagios_server_check( 'check_cpu_ha.php')
-  nagios_server_check( 'check_datanode_storage.php')
-  nagios_server_check( 'check_aggregate.php')
-  nagios_server_check( 'check_hdfs_blocks.php')
-  nagios_server_check( 'check_hdfs_capacity.php')
-  nagios_server_check( 'check_rpcq_latency.php')
-  nagios_server_check( 'check_rpcq_latency_ha.php')
-  nagios_server_check( 'check_webui.sh')
-  nagios_server_check( 'check_webui_ha.sh')
-  nagios_server_check( 'check_name_dir_status.php')
-  nagios_server_check( 'check_oozie_status.sh')
-  nagios_server_check( 'check_templeton_status.sh')
-  nagios_server_check( 'check_hive_metastore_status.sh')
-  nagios_server_check( 'check_hue_status.sh')
-  nagios_server_check( 'check_mapred_local_dir_used.sh')
-  nagios_server_check( 'check_nodemanager_health.sh')
-  nagios_server_check( 'check_namenodes_ha.sh')
-  nagios_server_check( 'hdp_nagios_init.php')
-  nagios_server_check( 'check_checkpoint_time.py' )
-  nagios_server_check( 'sys_logger.py' )
-  nagios_server_check( 'check_ambari_alerts.py' )
-  nagios_server_check( 'mm_wrapper.py' )
-  nagios_server_check( 'check_hive_thrift_port.py' )
-
-def nagios_server_configfile(
-  name,
-  owner = None,
-  group = None,
-  config_dir = None,
-  mode = None
-):
-  import params
-  owner = params.nagios_user if not owner else owner
-  group = params.user_group if not group else group
-  config_dir = params.nagios_obj_dir if not config_dir else config_dir
-  
-  TemplateConfig( format("{config_dir}/{name}"),
-    owner          = owner,
-    group          = group,
-    mode           = mode
-  )
-
-def nagios_server_check(name):
-  File( format("{plugins_dir}/{name}"),
-    content = StaticFile(name), 
-    mode = 0755
-  )

http://git-wip-us.apache.org/repos/asf/ambari/blob/e4ededeb/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/scripts/nagios_service.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/scripts/nagios_service.py b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/scripts/nagios_service.py
deleted file mode 100644
index b7f512b..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/scripts/nagios_service.py
+++ /dev/null
@@ -1,103 +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.
-
-Ambari Agent
-
-"""
-
-import json
-import os
-import signal
-
-from resource_management import *
-from os.path import isfile
-
-
-def nagios_service(action='start'): # start or stop
-  import params
-  
-  nagios_pid_file = format("{nagios_pid_file}")
-
-  if action == 'start':
-    command = format("service {nagios_service_name} start")
-    Execute(command)   
-  elif action == 'stop':
-    # attempt to grab the pid in case we need it later
-    nagios_pid = 0    
-    if isfile(nagios_pid_file):   
-      with open(nagios_pid_file, "r") as file:
-        try:
-          nagios_pid = int(file.read())
-          Logger.info("Nagios is running with a PID of {0}".format(nagios_pid))
-        except:
-          Logger.info("Unable to read PID file {0}".format(nagios_pid_file))
-        finally:
-          file.close()
-
-    command = format("service {nagios_service_name} stop")  
-    Execute(command)
-
-    # on SUSE, there is a bug where Nagios doesn't kill the process 
-    # but this could also affect any OS, so don't restrict this to SUSE
-    if nagios_pid > 0:
-      try:
-        os.kill(nagios_pid, 0)
-      except:
-        Logger.info("The Nagios process has successfully terminated")
-      else:
-        Logger.info("The Nagios process with ID {0} failed to terminate; explicitly killing.".format(nagios_pid))
-        os.kill(nagios_pid, signal.SIGKILL)
-
-    # in the event that the Nagios scripts don't remove the pid file
-    if isfile( nagios_pid_file ):   
-      Execute(format("rm -f {nagios_pid_file}"))
-        
-  MonitorWebserver("restart")
-
-def update_active_alerts():
-  import status_params
-
-  alerts = None
-  if 'alerts' in status_params.config and status_params.config['alerts'] is not None:
-    alerts = status_params.config['alerts']
-
-  if alerts is None:
-    return
-
-  output = {}
-
-  for a in alerts:
-    alert_name = a['name']
-    alert_text = a['text']
-    alert_state = a['state']
-    alert_host = a['host']
-    if not output.has_key(alert_name):
-      output[alert_name] = {}
-
-    if not output[alert_name].has_key(alert_host):
-      output[alert_name][alert_host] = []
-
-    host_items = output[alert_name][alert_host]
-    alert_out = {}
-    alert_out['state'] = alert_state
-    alert_out['text'] = alert_text
-    host_items.append(alert_out)
-
-  with open(os.path.join(status_params.nagios_var_dir, 'ambari.json'), 'w') as f:
-    json.dump(output, f)
-

http://git-wip-us.apache.org/repos/asf/ambari/blob/e4ededeb/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/scripts/params.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/scripts/params.py b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/scripts/params.py
deleted file mode 100644
index 778d830..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/scripts/params.py
+++ /dev/null
@@ -1,363 +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.
-
-Ambari Agent
-
-"""
-
-from functions import is_jdk_greater_6
-from resource_management import *
-import status_params
-
-HADOOP_HTTP_POLICY = "HTTP_ONLY"
-HADOOP_HTTPS_POLICY = "HTTPS_ONLY"
-
-# server configurations
-config = Script.get_config()
-
-if System.get_instance().os_family == "ubuntu":
-  nagios_service_name = "nagios3"
-else:
-  nagios_service_name = "nagios"
-
-conf_dir = format("/etc/{nagios_service_name}")
-nagios_obj_dir = format("{conf_dir}/objects")
-nagios_var_dir = status_params.nagios_var_dir
-nagios_rw_dir = status_params.nagios_rw_dir
-
-# HACK: Stylesheets for Nagios UI on Ubuntu are in wrong place so we have to do a symlink.
-# In future we can fix this directly in the package.
-ubuntu_stylesheets_real_location = "/etc/nagios3/stylesheets"
-ubuntu_stylesheets_desired_location = "/usr/share/nagios3/htdocs/stylesheets"
-
-if System.get_instance().os_family == "ubuntu":
-  host_template = "generic-host"
-  plugins_dir = "/usr/lib/nagios/plugins"
-  nagios_web_dir = "/usr/share/nagios3/htdocs"
-  
-  cfg_files = [
-    format("{conf_dir}/commands.cfg"),
-    format("{conf_dir}/conf.d/contacts_nagios2.cfg"),
-    format("{conf_dir}/conf.d/generic-host_nagios2.cfg"),
-    format("{conf_dir}/conf.d/generic-service_nagios2.cfg"),
-    format("{conf_dir}/conf.d/timeperiods_nagios2.cfg"),
-  ]
-  cgi_dir = "/usr/lib/cgi-bin/nagios3"
-  cgi_weblink = "/cgi-bin/nagios3"
-else:
-  host_template = "linux-server"
-  plugins_dir = "/usr/lib64/nagios/plugins"
-  nagios_web_dir = "/usr/share/nagios"
-  
-  cfg_files = [
-    format("{nagios_obj_dir}/commands.cfg"),
-    format("{nagios_obj_dir}/contacts.cfg"),
-    format("{nagios_obj_dir}/timeperiods.cfg"),
-    format("{nagios_obj_dir}/templates.cfg"),
-  ]
-  
-  cgi_dir = "/usr/lib/nagios/cgi"
-  cgi_weblink = "/nagios/cgi-bin"
-  
-check_result_path = "/var/nagios/spool/checkresults"
-nagios_log_dir = "/var/log/nagios"
-nagios_log_archives_dir = format("{nagios_log_dir}/archives")
-nagios_host_cfg = format("{nagios_obj_dir}/hadoop-hosts.cfg")
-nagios_lookup_daemon_str = "/usr/sbin/nagios"
-nagios_pid_dir = status_params.nagios_pid_dir
-nagios_pid_file = status_params.nagios_pid_file
-nagios_resource_cfg = format("{conf_dir}/resource.cfg")
-nagios_hostgroup_cfg = format("{nagios_obj_dir}/hadoop-hostgroups.cfg")
-nagios_servicegroup_cfg = format("{nagios_obj_dir}/hadoop-servicegroups.cfg")
-nagios_service_cfg = format("{nagios_obj_dir}/hadoop-services.cfg")
-nagios_command_cfg = format("{nagios_obj_dir}/hadoop-commands.cfg")
-eventhandlers_dir = "/usr/lib/nagios/eventhandlers"
-nagios_principal_name = default("/configurations/nagios-env/nagios_principal_name", "nagios")
-
-oozie_server_port = get_port_from_url(config['configurations']['oozie-site']['oozie.base.url'])
-namenode_host = default("/clusterHostInfo/namenode_host", None)
-_rm_host = default("/clusterHostInfo/rm_host", None)
-if type(_rm_host) is list:
-  rm_hosts_in_str = ','.join(_rm_host)
-
-has_namenode = not namenode_host == None
-has_rm = not _rm_host == None
-
-# - test for HDFS or HCFS (glusterfs)
-if 'namenode_host' in config['clusterHostInfo']:
-  ishdfs_value = "HDFS"
-else:
-  ishdfs_value = None
-
-dfs_http_policy = default('/configurations/hdfs-site/dfs.http.policy', HADOOP_HTTP_POLICY)
-yarn_http_policy = default('configurations/yarn-site/yarn.http.policy', HADOOP_HTTP_POLICY)
-mapreduce_http_policy = default('configurations/mapred-site/mapreduce.jobhistory.http.policy', HADOOP_HTTP_POLICY)
-
-hdfs_ssl_enabled = (dfs_http_policy == HADOOP_HTTPS_POLICY)
-yarn_ssl_enabled = (yarn_http_policy == HADOOP_HTTPS_POLICY)
-mapreduce_ssl_enabled = (mapreduce_http_policy == HADOOP_HTTPS_POLICY)
-#
-if has_namenode:
-  if 'dfs.http.policy' in config['configurations']['hdfs-site']:
-    dfs_http_policy = config['configurations']['hdfs-site']['dfs.http.policy']
-  if dfs_http_policy == HADOOP_HTTPS_POLICY:
-    hdfs_ssl_enabled = True
-if has_rm:
-  if 'yarn.http.policy' in config['configurations']['yarn-site']:
-    yarn_http_policy = config['configurations']['yarn-site']['yarn.http.policy']
-
-  if 'mapreduce.jobhistory.http.policy' in config['configurations']['mapred-site']:
-    mapreduce_http_policy = config['configurations']['mapred-site']['mapreduce.jobhistory.http.policy']
-
-if dfs_http_policy == HADOOP_HTTPS_POLICY:
-  hdfs_ssl_enabled = True
-
-if yarn_http_policy == HADOOP_HTTPS_POLICY:
-  yarn_ssl_enabled = True
-
-if mapreduce_http_policy == HADOOP_HTTPS_POLICY:
-  mapreduce_ssl_enabled = True
-
-# set default ports and webui lookup properties
-dfs_namenode_webui_default_port = '50070'
-dfs_snamenode_webui_default_port = '50090'
-yarn_nodemanager_default_port = '8042'
-dfs_namenode_webui_property = 'dfs.namenode.http-address'
-dfs_snamenode_webui_property = 'dfs.namenode.secondary.http-address'
-dfs_datanode_webui_property = 'dfs.datanode.http.address'
-yarn_rm_webui_property = 'yarn.resourcemanager.webapp.address'
-yarn_timeline_service_webui_property = 'yarn.timeline-service.webapp.address'
-yarn_nodemanager_webui_property = 'yarn.nodemanager.webapp.address'
-mapreduce_jobhistory_webui_property = 'mapreduce.jobhistory.webapp.address'
- 
-# if HDFS is protected by SSL, adjust the ports and lookup properties
-if hdfs_ssl_enabled == True:
-  dfs_namenode_webui_default_port = '50470'
-  dfs_snamenode_webui_default_port = '50091'
-  dfs_namenode_webui_property = 'dfs.namenode.https-address'
-  dfs_snamenode_webui_property = 'dfs.namenode.secondary.https-address'
-  dfs_datanode_webui_property = 'dfs.datanode.https.address'
-
-# if YARN is protected by SSL, adjust the ports and lookup properties  
-if yarn_ssl_enabled == True:
-  yarn_rm_webui_property = 'yarn.resourcemanager.webapp.https.address'
-  yarn_nodemanager_webui_property = 'yarn.nodemanager.webapp.https.address'  
-  yarn_timeline_service_webui_property = 'yarn.timeline-service.webapp.https.address'
-
-# if MR is protected by SSL, adjust the ports and lookup properties
-if mapreduce_ssl_enabled == True:
-  mapreduce_jobhistory_webui_property = 'mapreduce.jobhistory.webapp.https.address'
-  
-if has_namenode:
-  # extract NameNode
-  if dfs_namenode_webui_property in config['configurations']['hdfs-site']:
-    namenode_port = get_port_from_url(config['configurations']['hdfs-site'][dfs_namenode_webui_property])
-  else:
-    namenode_port = dfs_namenode_webui_default_port
-
-  # extract Secondary NameNode
-  if dfs_snamenode_webui_property in config['configurations']['hdfs-site']:
-    snamenode_port = get_port_from_url(config['configurations']['hdfs-site'][dfs_snamenode_webui_property])
-  else:
-    snamenode_port = dfs_snamenode_webui_default_port
-
-  if 'dfs.journalnode.http-address' in config['configurations']['hdfs-site']:
-    journalnode_port = get_port_from_url(config['configurations']['hdfs-site']['dfs.journalnode.http-address'])
-    datanode_port = get_port_from_url(config['configurations']['hdfs-site'][dfs_datanode_webui_property])
-
-nm_port = yarn_nodemanager_default_port
-if has_rm:
-  if yarn_nodemanager_webui_property in config['configurations']['yarn-site']:
-    nm_port = get_port_from_url(config['configurations']['yarn-site'][yarn_nodemanager_webui_property])
-  
-flume_port = "4159"
-hbase_master_rpc_port = default('/configurations/hbase-site/hbase.master.port', "60000")
-rm_port = get_port_from_url(config['configurations']['yarn-site'][yarn_rm_webui_property])
-hs_port = get_port_from_url(config['configurations']['mapred-site'][mapreduce_jobhistory_webui_property])
-hive_metastore_port = get_port_from_url(config['configurations']['hive-site']['hive.metastore.uris']) #"9083"
-hive_server_port = default('/configurations/hive-site/hive.server2.thrift.port',"10000")
-templeton_port = config['configurations']['webhcat-site']['templeton.port'] #"50111"
-hbase_master_port = config['configurations']['hbase-site']['hbase.master.info.port'] #"60010"
-hbase_rs_port = config['configurations']['hbase-site']['hbase.regionserver.info.port'] #"60030"
-storm_ui_port = config['configurations']['storm-site']['ui.port']
-drpc_port = config['configurations']['storm-site']['drpc.port']
-nimbus_port = config['configurations']['storm-site']['nimbus.thrift.port']
-supervisor_port = "56431"
-storm_rest_api_port = "8745"
-falcon_port = config['configurations']['falcon-env']['falcon_port']
-ahs_port = get_port_from_url(config['configurations']['yarn-site'][yarn_timeline_service_webui_property])
-knox_gateway_port = config['configurations']['gateway-site']['gateway.port']
-kafka_broker_port = config['configurations']['kafka-broker']['port']
-
-# use sensible defaults for checkpoint as they are required by Nagios and 
-# may not be part of hdfs-site.xml on an upgrade
-if has_namenode:
-  if 'dfs.namenode.checkpoint.period' in config['configurations']['hdfs-site']:
-    dfs_namenode_checkpoint_period = config['configurations']['hdfs-site']['dfs.namenode.checkpoint.period']
-  else:
-    dfs_namenode_checkpoint_period = '21600'
-  
-  if 'dfs.namenode.checkpoint.txns' in config['configurations']['hdfs-site']:
-    dfs_namenode_checkpoint_txns = config['configurations']['hdfs-site']['dfs.namenode.checkpoint.txns']
-  else:
-    dfs_namenode_checkpoint_txns = '1000000'
-
-# this is different for HDP1
-nn_metrics_property = "FSNamesystem"
-clientPort = config['configurations']['zoo.cfg']['clientPort'] #ZK
-
-
-java64_home = config['hostLevelParams']['java_home']
-check_cpu_on = is_jdk_greater_6(java64_home)
-security_enabled = config['configurations']['cluster-env']['security_enabled']
-nagios_keytab_path = default("/configurations/nagios-env/nagios_keytab_path", "/etc/security/keytabs/nagios.service.keytab")
-kinit_path_local = functions.get_kinit_path(["/usr/bin", "/usr/kerberos/bin", "/usr/sbin"])
-
-dfs_ha_enabled = False
-dfs_ha_nameservices = default("/configurations/hdfs-site/dfs.nameservices", None)
-dfs_ha_namenode_ids = default(format("/configurations/hdfs-site/dfs.ha.namenodes.{dfs_ha_nameservices}"), None)
-if dfs_ha_namenode_ids:
-  dfs_ha_namemodes_ids_list = dfs_ha_namenode_ids.split(",")
-  dfs_ha_namenode_ids_array_len = len(dfs_ha_namemodes_ids_list)
-  if dfs_ha_namenode_ids_array_len > 1:
-    dfs_ha_enabled = True
-
-nn_ha_host_port_map = {}
-if dfs_ha_enabled:
-  for nn_id in dfs_ha_namemodes_ids_list:
-    nn_host = config['configurations']['hdfs-site'][format('dfs.namenode.rpc-address.{dfs_ha_nameservices}.{nn_id}')]
-    nn_ha_host_port_map[nn_host.split(":")[0]] = nn_host.split(":")[1]
-else:
-  if 'namenode_host' in config['clusterHostInfo']:
-    namenode_metadata_port = get_port_from_url(config['configurations']['core-site']['fs.defaultFS'])
-    nn_ha_host_port_map[config['clusterHostInfo']['namenode_host'][0]] = namenode_metadata_port
-  else:
-    namenode_metadata_port = '8020'
-    
-os_family = System.get_instance().os_family
-
-ganglia_port = "8651"
-ganglia_collector_slaves_port = "8660"
-ganglia_collector_namenode_port = "8661"
-ganglia_collector_jobtracker_port = "8662"
-ganglia_collector_hbase_port = "8663"
-ganglia_collector_rm_port = "8664"
-ganglia_collector_nm_port = "8660"
-ganglia_collector_hs_port = "8666"
-  
-all_ping_ports = config['clusterHostInfo']['all_ping_ports']
-
-if System.get_instance().os_family == "suse":
-  nagios_p1_pl = "/usr/lib/nagios/p1.pl"
-  htpasswd_cmd = "htpasswd2"
-  web_conf_dir = "/etc/apache2/conf.d"
-elif System.get_instance().os_family == "ubuntu":
-  nagios_p1_pl = "/usr/lib/nagios3/p1.pl"
-  htpasswd_cmd = "htpasswd"
-  web_conf_dir = "/etc/apache2/conf.d"
-elif System.get_instance().os_family == "redhat":
-  nagios_p1_pl = "/usr/bin/p1.pl"
-  htpasswd_cmd = "htpasswd"
-  web_conf_dir = "/etc/httpd/conf.d"
-
-nagios_httpd_config_file = format("{web_conf_dir}/{nagios_service_name}.conf")
-hdp_mon_nagios_addons_path = format("{web_conf_dir}/hdp_mon_nagios_addons.conf")
-
-ambarinagios_php_dir = "/usr/share/hdp/nagios/"
-ambarinagios_php_filename = "nagios_alerts.php"
-
-nagios_user = config['configurations']['nagios-env']['nagios_user']
-nagios_group = config['configurations']['nagios-env']['nagios_group']
-nagios_web_login = config['configurations']['nagios-env']['nagios_web_login']
-nagios_web_password = config['configurations']['nagios-env']['nagios_web_password']
-user_group = config['configurations']['cluster-env']['user_group']
-nagios_contact = config['configurations']['nagios-env']['nagios_contact']
-
-
-_snamenode_host = default("/clusterHostInfo/snamenode_host", None)
-_jtnode_host = default("/clusterHostInfo/jtnode_host", None)
-_slave_hosts = default("/clusterHostInfo/slave_hosts", None)
-_journalnode_hosts = default("/clusterHostInfo/journalnode_hosts", None)
-_zkfc_hosts = default("/clusterHostInfo/zkfc_hosts", None)
-_rm_host = default("/clusterHostInfo/rm_host", None)
-if type(_rm_host) is list:
-  rm_hosts_in_str = ','.join(_rm_host)
-_nm_hosts = default("/clusterHostInfo/nm_hosts", None)
-_hs_host = default("/clusterHostInfo/hs_host", None)
-_zookeeper_hosts = default("/clusterHostInfo/zookeeper_hosts", None)
-_flume_hosts = default("/clusterHostInfo/flume_hosts", None)
-_nagios_server_host = default("/clusterHostInfo/nagios_server_host",None)
-_ganglia_server_host = default("/clusterHostInfo/ganglia_server_host",None)
-_app_timeline_server_hosts = default("/clusterHostInfo/app_timeline_server_hosts",None)
-_nimbus_host = default("/clusterHostInfo/nimbus_hosts",None)
-_drpc_host = default("/clusterHostInfo/drpc_server_hosts",None)
-_supervisor_hosts = default("/clusterHostInfo/supervisor_hosts",None)
-_storm_ui_host = default("/clusterHostInfo/storm_ui_server_hosts",None)
-_storm_rest_api_hosts = default("/clusterHostInfo/storm_rest_api_hosts",None)
-hbase_master_hosts = default("/clusterHostInfo/hbase_master_hosts",None)
-if type(hbase_master_hosts) is list:
-  hbase_master_hosts_in_str = ','.join(hbase_master_hosts)
-_hive_server_host = default("/clusterHostInfo/hive_server_host",None)
-_oozie_server = default("/clusterHostInfo/oozie_server",None)
-_webhcat_server_host = default("/clusterHostInfo/webhcat_server_host",None)
-_falcon_host = default("/clusterHostInfo/falcon_server_hosts", None)
-# can differ on HDP1
-#_mapred_tt_hosts = _slave_hosts
-#if hbase_rs_hosts not given it is assumed that region servers on same nodes as slaves
-_hbase_rs_hosts = default("/clusterHostInfo/hbase_rs_hosts", _slave_hosts)
-_hue_server_host = default("/clusterHostInfo/hue_server_host", None)
-_knox_gateway_host =  default("/clusterHostInfo/knox_gateway_hosts", None)
-_kafka_broker_host =  default("/clusterHostInfo/kafka_broker_hosts", None)
-all_hosts = config['clusterHostInfo']['all_hosts']
-
-if 'namenode_host' in config['clusterHostInfo']:
-  nn_hosts_string = " ".join(namenode_host)
-else:
-  nn_hosts_string = " ".join(config['clusterHostInfo']['ambari_server_host'])
-
-
-hostgroup_defs = {
-    'namenode' : namenode_host,
-    'snamenode' : _snamenode_host,
-    'slaves' : _slave_hosts,
-    'agent-servers' : all_hosts,
-    'nagios-server' : _nagios_server_host,
-    'jobtracker' : _jtnode_host,
-    'ganglia-server' : _ganglia_server_host,
-    'flume-servers' : _flume_hosts,
-    'zookeeper-servers' : _zookeeper_hosts,
-    'hbasemasters' : hbase_master_hosts,
-    'hiveserver' : _hive_server_host,
-    'region-servers' : _hbase_rs_hosts,
-    'oozie-server' : _oozie_server,
-    'webhcat-server' : _webhcat_server_host,
-    'hue-server' : _hue_server_host,
-    'resourcemanager' : _rm_host,
-    'nodemanagers' : _nm_hosts,
-    'historyserver2' : _hs_host,
-    'journalnodes' : _journalnode_hosts,
-    'nimbus' : _nimbus_host,
-    'drpc-server' : _drpc_host,
-    'storm_ui' : _storm_ui_host,
-    'supervisors' : _supervisor_hosts,
-    'storm_rest_api' : _storm_rest_api_hosts,
-    'falcon-server' : _falcon_host,
-    'ats-servers' : _app_timeline_server_hosts,
-    'knox-gateway' : _knox_gateway_host,
-    'kafka-broker' : _kafka_broker_host
-}

http://git-wip-us.apache.org/repos/asf/ambari/blob/e4ededeb/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/scripts/status_params.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/scripts/status_params.py b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/scripts/status_params.py
deleted file mode 100644
index 11d4aa9..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/scripts/status_params.py
+++ /dev/null
@@ -1,29 +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 resource_management import *
-
-config = Script.get_config()
-
-nagios_pid_dir = "/var/run/nagios"
-nagios_pid_file = format("{nagios_pid_dir}/nagios.pid")
-
-nagios_var_dir = "/var/nagios"
-nagios_rw_dir = "/var/nagios/rw"

http://git-wip-us.apache.org/repos/asf/ambari/blob/e4ededeb/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/templates/contacts.cfg.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/templates/contacts.cfg.j2 b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/templates/contacts.cfg.j2
deleted file mode 100644
index 610b2bd..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/templates/contacts.cfg.j2
+++ /dev/null
@@ -1,109 +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.
-#}
-
-###############################################################################
-# CONTACTS.CFG - SAMPLE CONTACT/CONTACTGROUP DEFINITIONS
-#
-# Last Modified: 05-31-2007
-#
-# NOTES: This config file provides you with some example contact and contact
-#        group definitions that you can reference in host and service
-#        definitions.
-#       
-#        You don't need to keep these definitions in a separate file from your
-#        other object definitions.  This has been done just to make things
-#        easier to understand.
-#
-###############################################################################
-
-#
-#
-# 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.
-#
-#
-#
-
-
-###############################################################################
-###############################################################################
-#
-# CONTACTS
-#
-###############################################################################
-###############################################################################
-
-# Just one contact defined by default - the Nagios admin (that's you)
-# This contact definition inherits a lot of default values from the 'generic-contact' 
-# template which is defined elsewhere.
-
-define contact{
-        contact_name    {{nagios_web_login}}                                        ; Short name of user
-        use             generic-contact                                             ; Inherit default values from generic-contact template (defined above)
-        alias           Nagios Admin                                                ; Full name of user
-
-        email           {{nagios_contact}}	; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
-        }
-
-# Contact which writes all Nagios alerts to the system logger.
-define contact{
-        contact_name                    sys_logger         ; Short name of user
-        use                             generic-contact    ; Inherit default values from generic-contact template (defined above)
-        alias                           System Logger      ; Full name of user
-        host_notifications_enabled      1
-        service_notifications_enabled   1
-        service_notification_period     24x7
-        host_notification_period        24x7
-        service_notification_options    w,u,c,r,s
-        host_notification_options       d,u,r,s
-        can_submit_commands             1
-        retain_status_information       1
-        service_notification_commands   service_sys_logger
-        host_notification_commands      host_sys_logger
-        }
-
-###############################################################################
-###############################################################################
-#
-# CONTACT GROUPS
-#
-###############################################################################
-###############################################################################
-
-# We only have one contact in this simple configuration file, so there is
-# no need to create more than one contact group.
-
-define contactgroup {
-        contactgroup_name       admins
-        alias                   Nagios Administrators
-        members                 {{nagios_web_login}},sys_logger
-}