You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by nc...@apache.org on 2016/02/08 15:03:21 UTC

[01/12] ambari git commit: AMBARI-14911: Populate hawq_site properties when YARN is installed after HAWQ. (adenissov via jaoki)

Repository: ambari
Updated Branches:
  refs/heads/branch-dev-patch-upgrade c11a41138 -> d3db8dadd


AMBARI-14911: Populate hawq_site properties when YARN is installed after HAWQ. (adenissov via jaoki)


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

Branch: refs/heads/branch-dev-patch-upgrade
Commit: 31309e28b470f45f4a9c44ad7e0393dd31eb2dd6
Parents: f57f9b2
Author: Jun Aoki <ja...@apache.org>
Authored: Fri Feb 5 15:47:56 2016 -0800
Committer: Jun Aoki <ja...@apache.org>
Committed: Fri Feb 5 15:47:56 2016 -0800

----------------------------------------------------------------------
 .../HAWQ/2.0.0/configuration/hawq-site.xml      | 12 +++++
 .../stacks/HDP/2.3/services/stack_advisor.py    | 37 +++++++++++---
 .../stacks/2.3/common/test_stack_advisor.py     | 51 +++++++++++++++++++-
 3 files changed, 93 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/31309e28/ambari-server/src/main/resources/common-services/HAWQ/2.0.0/configuration/hawq-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HAWQ/2.0.0/configuration/hawq-site.xml b/ambari-server/src/main/resources/common-services/HAWQ/2.0.0/configuration/hawq-site.xml
index f034749..f195215 100644
--- a/ambari-server/src/main/resources/common-services/HAWQ/2.0.0/configuration/hawq-site.xml
+++ b/ambari-server/src/main/resources/common-services/HAWQ/2.0.0/configuration/hawq-site.xml
@@ -153,6 +153,12 @@
     <description>
       The address of YARN resource manager server.
     </description>
+    <depends-on>
+      <property>
+        <type>yarn-site</type>
+        <name>yarn.resourcemanager.address</name>
+      </property>
+    </depends-on>
   </property>
 
   <property>
@@ -161,6 +167,12 @@
     <description>
       The address of YARN scheduler server.
     </description>
+    <depends-on>
+      <property>
+        <type>yarn-site</type>
+        <name>yarn.resourcemanager.scheduler.address</name>
+      </property>
+    </depends-on>
   </property>
 
   <property>

http://git-wip-us.apache.org/repos/asf/ambari/blob/31309e28/ambari-server/src/main/resources/stacks/HDP/2.3/services/stack_advisor.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.3/services/stack_advisor.py b/ambari-server/src/main/resources/stacks/HDP/2.3/services/stack_advisor.py
index dae3e8a..b354378 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.3/services/stack_advisor.py
+++ b/ambari-server/src/main/resources/stacks/HDP/2.3/services/stack_advisor.py
@@ -678,19 +678,32 @@ class HDP23StackAdvisor(HDP22StackAdvisor):
 
 
   def recommendHAWQConfigurations(self, configurations, clusterData, services, hosts):
+    if "hawq-site" not in services["configurations"]:
+      return
+    hawq_site = services["configurations"]["hawq-site"]["properties"]
     putHawqSiteProperty = self.putProperty(configurations, "hawq-site", services)
-    if self.isHawqMasterComponentOnAmbariServer(services):
-      if "hawq-site" in services["configurations"] and "hawq_master_address_port" in services["configurations"]["hawq-site"]["properties"]:
-        putHawqSiteProperty('hawq_master_address_port', '')
-    # calculate optimal number of virtual segments
     componentsListList = [service["components"] for service in services["services"]]
     componentsList = [item["StackServiceComponents"] for sublist in componentsListList for item in sublist]
+    servicesList = [service["StackServices"]["service_name"] for service in services["services"]]
+
+    # remove master port when master is colocated with Ambari server
+    if self.isHawqMasterComponentOnAmbariServer(services) and "hawq_master_address_port" in hawq_site:
+        putHawqSiteProperty('hawq_master_address_port', '')
+
+    # calculate optimal number of virtual segments
     numSegments = len(self.__getHosts(componentsList, "HAWQSEGMENT"))
     # update default if segments are deployed
-    if numSegments and "hawq-site" in services["configurations"] and "default_segment_num" in services["configurations"]["hawq-site"]["properties"]:
+    if numSegments and "default_segment_num" in hawq_site:
       factor = 6 if numSegments < 50 else 4
       putHawqSiteProperty('default_segment_num', numSegments * factor)
-          
+
+    # update YARN RM urls with the values from yarn-site if YARN is installed
+    if "YARN" in servicesList and "yarn-site" in services["configurations"]:
+      yarn_site = services["configurations"]["yarn-site"]["properties"]
+      for hs_prop, ys_prop in self.getHAWQYARNPropertyMapping().items():
+        if hs_prop in hawq_site and ys_prop in yarn_site:
+          putHawqSiteProperty(hs_prop, yarn_site[ys_prop])
+
   def getServiceConfigurationValidators(self):
     parentValidators = super(HDP23StackAdvisor, self).getServiceConfigurationValidators()
     childValidators = {
@@ -946,8 +959,20 @@ class HDP23StackAdvisor(HDP22StackAdvisor):
     display_name = 'HAWQ Segment temp directory'
     self.validateIfRootDir (properties, validationItems, prop_name, display_name)
 
+    # 3. Check YARN RM address properties
+    servicesList = [service["StackServices"]["service_name"] for service in services["services"]]
+    if "YARN" in servicesList and "yarn-site" in configurations:
+      yarn_site = getSiteProperties(configurations, "yarn-site")
+      for hs_prop, ys_prop in self.getHAWQYARNPropertyMapping().items():
+        if hs_prop in hawq_site and ys_prop in yarn_site and hawq_site[hs_prop] != yarn_site[ys_prop]:
+          message = "Expected value: {0} (this property should have the same value as the property {1} in yarn-site)".format(yarn_site[ys_prop], ys_prop)
+          validationItems.append({"config-name": hs_prop, "item": self.getWarnItem(message)})
+
     return self.toConfigurationValidationProblems(validationItems, "hawq-site")
   
   
   def isComponentUsingCardinalityForLayout(self, componentName):
     return componentName in ['NFS_GATEWAY', 'PHOENIX_QUERY_SERVER', 'SPARK_THRIFTSERVER']
+
+  def getHAWQYARNPropertyMapping(self):
+    return { "hawq_rm_yarn_address": "yarn.resourcemanager.address", "hawq_rm_yarn_scheduler_address": "yarn.resourcemanager.scheduler.address" }

http://git-wip-us.apache.org/repos/asf/ambari/blob/31309e28/ambari-server/src/test/python/stacks/2.3/common/test_stack_advisor.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.3/common/test_stack_advisor.py b/ambari-server/src/test/python/stacks/2.3/common/test_stack_advisor.py
index 965ce98..72e7718 100644
--- a/ambari-server/src/test/python/stacks/2.3/common/test_stack_advisor.py
+++ b/ambari-server/src/test/python/stacks/2.3/common/test_stack_advisor.py
@@ -1323,8 +1323,14 @@ class TestHDP23StackAdvisor(TestCase):
     componentsListList = [service["components"] for service in services["services"]]
     componentsList = [item for sublist in componentsListList for item in sublist]
     hawqSegmentComponent = [component["StackServiceComponents"] for component in componentsList if component["StackServiceComponents"]["component_name"] == "HAWQSEGMENT"][0]
-    services["configurations"]["hawq-site"] = {"properties": {"default_segment_num": "24"}}
 
+    # setup default configuration values
+    services["configurations"]["hawq-site"] = {"properties": {"default_segment_num": "24",
+                                                              "hawq_rm_yarn_address": "localhost:8032",
+                                                              "hawq_rm_yarn_scheduler_address": "localhost:8030"}}
+    services["configurations"]["yarn-site"] = {"properties": {"yarn.resourcemanager.address": "host1:8050",
+                                                              "yarn.resourcemanager.scheduler.address": "host1:8030"}}
+    services["services"].append({"StackServices" : {"service_name" : "YARN"}, "components":[]})
     configurations = {}
     clusterData = {}
 
@@ -1333,6 +1339,10 @@ class TestHDP23StackAdvisor(TestCase):
     self.stackAdvisor.recommendHAWQConfigurations(configurations, clusterData, services, None)
     self.assertEquals(configurations["hawq-site"]["properties"]["default_segment_num"], str(3 * 6))
 
+    # check derived properties
+    self.assertEquals(configurations["hawq-site"]["properties"]["hawq_rm_yarn_address"], "host1:8050")
+    self.assertEquals(configurations["hawq-site"]["properties"]["hawq_rm_yarn_scheduler_address"], "host1:8030")
+
     # Test 2 - with 49 segments
     hawqSegmentComponent["hostnames"] = ["host" + str(i) for i in range(49)]
     self.stackAdvisor.recommendHAWQConfigurations(configurations, clusterData, services, None)
@@ -1345,6 +1355,7 @@ class TestHDP23StackAdvisor(TestCase):
 
     # Test 4 - with no segments
     configurations = {}
+    services["configurations"]["hawq-site"] = {"properties":{'hawq-site': {'properties': {}}}}
     hawqSegmentComponent["hostnames"] = []
     self.stackAdvisor.recommendHAWQConfigurations(configurations, clusterData, services, None)
     self.assertEquals(configurations, {'hawq-site': {'properties': {}}})
@@ -1616,3 +1627,41 @@ class TestHDP23StackAdvisor(TestCase):
     services["configurations"]["hdfs-site"]["properties"]["dfs.allow.truncate"] = "false"
     problems = self.stackAdvisor.validateHDFSConfigurations(properties, recommendedDefaults, configurations, services, hosts)
     self.assertEqual(len(problems), 0)
+
+  def test_validateHAWQConfigurations(self):
+    services = self.load_json("services-hawq-3-hosts.json")
+    # setup default configuration values
+    configurations = services["configurations"]
+    configurations["hawq-site"] = {"properties": {"hawq_rm_yarn_address": "localhost:8032",
+                                                  "hawq_rm_yarn_scheduler_address": "localhost:8030"}}
+    configurations["yarn-site"] = {"properties": {"yarn.resourcemanager.address": "host1:8050",
+                                                  "yarn.resourcemanager.scheduler.address": "host1:8030"}}
+    services["services"].append({"StackServices" : {"service_name" : "YARN"}, "components":[]})
+    properties = configurations["hawq-site"]["properties"]
+    defaults = {}
+    hosts = {}
+
+    expected_warnings = {
+      'hawq_rm_yarn_address': {
+        'config-type': 'hawq-site',
+        'message': 'Expected value: host1:8050 (this property should have the same value as the property yarn.resourcemanager.address in yarn-site)',
+        'type': 'configuration',
+        'config-name': 'hawq_rm_yarn_address',
+        'level': 'WARN'
+      },
+      'hawq_rm_yarn_scheduler_address': {
+        'config-type': 'hawq-site',
+        'message': 'Expected value: host1:8030 (this property should have the same value as the property yarn.resourcemanager.scheduler.address in yarn-site)',
+        'type': 'configuration',
+        'config-name': 'hawq_rm_yarn_scheduler_address',
+        'level': 'WARN'
+      }
+    }
+
+    problems = self.stackAdvisor.validateHAWQConfigurations(properties, defaults, configurations, services, hosts)
+    problems_dict = {}
+    for problem in problems:
+      problems_dict[problem['config-name']] = problem
+    self.assertEqual(len(problems), 2)
+    self.assertEqual(problems_dict, expected_warnings)
+


[05/12] ambari git commit: AMBARI-14952 Support https for Grafana (dsen)

Posted by nc...@apache.org.
AMBARI-14952 Support https for Grafana (dsen)


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

Branch: refs/heads/branch-dev-patch-upgrade
Commit: 817ca06309472927447f803bcd90e7d786c7445d
Parents: d10b876
Author: Dmytro Sen <ds...@apache.org>
Authored: Mon Feb 8 12:00:33 2016 +0200
Committer: Dmytro Sen <ds...@apache.org>
Committed: Mon Feb 8 12:00:33 2016 +0200

----------------------------------------------------------------------
 .../0.1.0/configuration/ams-grafana-ini.xml     | 542 ++++++++++---------
 .../0.1.0/package/scripts/params.py             |   5 +
 2 files changed, 288 insertions(+), 259 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/817ca063/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-grafana-ini.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-grafana-ini.xml b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-grafana-ini.xml
index ac1f7fc..0a1ff32 100644
--- a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-grafana-ini.xml
+++ b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-grafana-ini.xml
@@ -19,264 +19,288 @@
   -->
 
 <configuration>
-    <property>
-        <name>content</name>
-        <value>
-            ##################### Grafana Configuration Example #####################
-            #
-            # Everything has defaults so you only need to uncomment things you want to
-            # change
-
-            # possible values : production, development
-            ; app_mode = production
-
-            #################################### Paths ####################################
-            [paths]
-            # Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used)
-            #
-            ;data = /var/lib/grafana
-            data = /var/lib/ambari-metrics-grafana
-            #
-            # Directory where grafana can store logs
-            #
-            ;logs = /var/log/grafana
-            logs = /var/log/ambari-metrics-grafana
-
-
-            #################################### Server ####################################
-            [server]
-            # Protocol (http or https)
-            ;protocol = http
-
-            # The ip address to bind to, empty will bind to all interfaces
-            ;http_addr =
-
-            # The http port  to use
-            ;http_port = 3000
-
-            # The public facing domain name used to access grafana from a browser
-            ;domain = localhost
-
-            # Redirect to correct domain if host header does not match domain
-            # Prevents DNS rebinding attacks
-            ;enforce_domain = false
-
-            # The full public facing url
-            ;root_url = %(protocol)s://%(domain)s:%(http_port)s/
-
-            # Log web requests
-            ;router_logging = false
-
-            # the path relative working path
-            ;static_root_path = public
-            static_root_path = /usr/lib/ambari-metrics-grafana/public
-
-            # enable gzip
-            ;enable_gzip = false
-
-            # https certs &amp; key file
-            ;cert_file =
-            ;cert_key =
-
-            #################################### Database ####################################
-            [database]
-            # Either "mysql", "postgres" or "sqlite3", it's your choice
-            ;type = sqlite3
-            ;host = 127.0.0.1:3306
-            ;name = grafana
-            ;user = root
-            ;password =
-
-            # For "postgres" only, either "disable", "require" or "verify-full"
-            ;ssl_mode = disable
-
-            # For "sqlite3" only, path relative to data_path setting
-            ;path = grafana.db
-
-            #################################### Session ####################################
-            [session]
-            # Either "memory", "file", "redis", "mysql", "postgres", default is "file"
-            ;provider = file
-
-            # Provider config options
-            # memory: not have any config yet
-            # file: session dir path, is relative to grafana data_path
-            # redis: config like redis server e.g. `addr=127.0.0.1:6379,pool_size=100,db=grafana`
-            # mysql: go-sql-driver/mysql dsn config string, e.g. `user:password@tcp(127.0.0.1:3306)/database_name`
-            # postgres: user=a password=b host=localhost port=5432 dbname=c sslmode=disable
-            ;provider_config = sessions
-
-            # Session cookie name
-            ;cookie_name = grafana_sess
-
-            # If you use session in https only, default is false
-            ;cookie_secure = false
-
-            # Session life time, default is 86400
-            ;session_life_time = 86400
-
-            #################################### Analytics ####################################
-            [analytics]
-            # Server reporting, sends usage counters to stats.grafana.org every 24 hours.
-            # No ip addresses are being tracked, only simple counters to track
-            # running instances, dashboard and error counts. It is very helpful to us.
-            # Change this option to false to disable reporting.
-            ;reporting_enabled = true
-
-            # Google Analytics universal tracking code, only enabled if you specify an id here
-            ;google_analytics_ua_id =
-
-            #################################### Security ####################################
-            [security]
-            # default admin user, created on startup
-            ;admin_user = admin
-
-            # default admin password, can be changed before first start of grafana,  or in profile settings
-            ;admin_password = admin
-
-            # used for signing
-            ;secret_key = SW2YcwTIb9zpOOhoPsMm
-
-            # Auto-login remember days
-            ;login_remember_days = 7
-            ;cookie_username = grafana_user
-            ;cookie_remember_name = grafana_remember
-
-            # disable gravatar profile images
-            ;disable_gravatar = false
-
-            # data source proxy whitelist (ip_or_domain:port seperated by spaces)
-            ;data_source_proxy_whitelist =
-
-            #################################### Users ####################################
-            [users]
-            # disable user signup / registration
-            ;allow_sign_up = true
-
-            # Allow non admin users to create organizations
-            ;allow_org_create = true
-
-            # Set to true to automatically assign new users to the default organization (id 1)
-            ;auto_assign_org = true
-
-            # Default role new users will be automatically assigned (if disabled above is set to true)
-            ;auto_assign_org_role = Viewer
-
-            # Background text for the user field on the login page
-            ;login_hint = email or username
-
-            #################################### Anonymous Auth ##########################
-            [auth.anonymous]
-            # enable anonymous access
-            enabled = true
-
-            # specify organization name that should be used for unauthenticated users
-            org_name = Main Org.
-
-            # specify role for unauthenticated users
-            org_role = Admin
-
-            #################################### Github Auth ##########################
-            [auth.github]
-            ;enabled = false
-            ;allow_sign_up = false
-            ;client_id = some_id
-            ;client_secret = some_secret
-            ;scopes = user:email,read:org
-            ;auth_url = https://github.com/login/oauth/authorize
-            ;token_url = https://github.com/login/oauth/access_token
-            ;api_url = https://api.github.com/user
-            ;team_ids =
-            ;allowed_organizations =
-
-            #################################### Google Auth ##########################
-            [auth.google]
-            ;enabled = false
-            ;allow_sign_up = false
-            ;client_id = some_client_id
-            ;client_secret = some_client_secret
-            ;scopes = https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email
-            ;auth_url = https://accounts.google.com/o/oauth2/auth
-            ;token_url = https://accounts.google.com/o/oauth2/token
-            ;api_url = https://www.googleapis.com/oauth2/v1/userinfo
-            ;allowed_domains =
-
-            #################################### Auth Proxy ##########################
-            [auth.proxy]
-            ;enabled = false
-            ;header_name = X-WEBAUTH-USER
-            ;header_property = username
-            ;auto_sign_up = true
-
-            #################################### Basic Auth ##########################
-            [auth.basic]
-            ;enabled = true
-
-            #################################### Auth LDAP ##########################
-            [auth.ldap]
-            ;enabled = false
-            ;config_file = /etc/grafana/ldap.toml
-
-            #################################### SMTP / Emailing ##########################
-            [smtp]
-            ;enabled = false
-            ;host = localhost:25
-            ;user =
-            ;password =
-            ;cert_file =
-            ;key_file =
-            ;skip_verify = false
-            ;from_address = admin@grafana.localhost
-
-            [emails]
-            ;welcome_email_on_sign_up = false
-
-            #################################### Logging ##########################
-            [log]
-            # Either "console", "file", default is "console"
-            # Use comma to separate multiple modes, e.g. "console, file"
-            ;mode = console, file
-
-            # Buffer length of channel, keep it as it is if you don't know what it is.
-            ;buffer_len = 10000
-
-            # Either "Trace", "Debug", "Info", "Warn", "Error", "Critical", default is "Trace"
-            ;level = Info
-
-            # For "console" mode only
-            [log.console]
-            ;level =
-
-            # For "file" mode only
-            [log.file]
-            ;level =
-            # This enables automated log rotate(switch of following options), default is true
-            ;log_rotate = true
-
-            # Max line number of single file, default is 1000000
-            ;max_lines = 1000000
-
-            # Max size shift of single file, default is 28 means 1 &lt;&lt; 28, 256MB
-            ;max_lines_shift = 28
-
-            # Segment log daily, default is true
-            ;daily_rotate = true
-
-            # Expired days of log file(delete after max days), default is 7
-            ;max_days = 7
-
-            #################################### AMPQ Event Publisher ##########################
-            [event_publisher]
-            ;enabled = false
-            ;rabbitmq_url = amqp://localhost/
-            ;exchange = grafana_events
-
-            ;#################################### Dashboard JSON files ##########################
-            [dashboards.json]
-            ;enabled = false
-            ;path = /var/lib/grafana/dashboards
-            path = /usr/lib/ambari-metrics-grafana/public/dashboards
-        </value>
-    </property>
+  <property>
+    <name>port</name>
+    <value>3000</value>
+    <description>The http port to use</description>
+  </property>
+  <property>
+    <name>protocol</name>
+    <value>http</value>
+    <description>Protocol (http or https)</description>
+  </property>
+  <property>
+    <name>cert_file</name>
+    <value>/etc/ambari-metrics-grafana/conf/ams-grafana.crt</value>
+    <description>Path to grafana certificate (.crt) file.</description>
+  </property>
+  <property>
+    <name>cert_key</name>
+    <value>/etc/ambari-metrics-grafana/conf/ams-grafana.key</value>
+    <description>Path to grafana certificate key (.key) file.</description>
+  </property>
+
+  <property>
+    <name>content</name>
+    <value>
+##################### Grafana Configuration Example #####################
+#
+# Everything has defaults so you only need to uncomment things you want to
+# change
+
+# possible values : production, development
+; app_mode = production
+
+#################################### Paths ####################################
+[paths]
+# Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used)
+#
+;data = /var/lib/grafana
+data = /var/lib/ambari-metrics-grafana
+#
+# Directory where grafana can store logs
+#
+;logs = /var/log/grafana
+logs = {{ams_grafana_log_dir}}
+
+
+#################################### Server ####################################
+[server]
+# Protocol (http or https)
+;protocol = http
+protocol = {{ams_grafana_protocol}}
+# The ip address to bind to, empty will bind to all interfaces
+;http_addr =
+
+# The http port  to use
+;http_port = 3000
+http_port = {{ams_grafana_port}}
+
+# The public facing domain name used to access grafana from a browser
+;domain = localhost
+
+# Redirect to correct domain if host header does not match domain
+# Prevents DNS rebinding attacks
+;enforce_domain = false
+
+# The full public facing url
+;root_url = %(protocol)s://%(domain)s:%(http_port)s/
+
+# Log web requests
+;router_logging = false
+
+# the path relative working path
+;static_root_path = public
+static_root_path = /usr/lib/ambari-metrics-grafana/public
+
+# enable gzip
+;enable_gzip = false
+
+# https certs &amp; key file
+;cert_file =
+;cert_key =
+cert_file = {{ams_grafana_cert_file}}
+cert_key = {{ams_grafana_cert_key}}
+
+#################################### Database ####################################
+[database]
+# Either "mysql", "postgres" or "sqlite3", it's your choice
+;type = sqlite3
+;host = 127.0.0.1:3306
+;name = grafana
+;user = root
+;password =
+
+# For "postgres" only, either "disable", "require" or "verify-full"
+;ssl_mode = disable
+
+# For "sqlite3" only, path relative to data_path setting
+;path = grafana.db
+
+#################################### Session ####################################
+[session]
+# Either "memory", "file", "redis", "mysql", "postgres", default is "file"
+;provider = file
+
+# Provider config options
+# memory: not have any config yet
+# file: session dir path, is relative to grafana data_path
+# redis: config like redis server e.g. `addr=127.0.0.1:6379,pool_size=100,db=grafana`
+# mysql: go-sql-driver/mysql dsn config string, e.g. `user:password@tcp(127.0.0.1:3306)/database_name`
+# postgres: user=a password=b host=localhost port=5432 dbname=c sslmode=disable
+;provider_config = sessions
+
+# Session cookie name
+;cookie_name = grafana_sess
+
+# If you use session in https only, default is false
+;cookie_secure = false
+
+# Session life time, default is 86400
+;session_life_time = 86400
+
+#################################### Analytics ####################################
+[analytics]
+# Server reporting, sends usage counters to stats.grafana.org every 24 hours.
+# No ip addresses are being tracked, only simple counters to track
+# running instances, dashboard and error counts. It is very helpful to us.
+# Change this option to false to disable reporting.
+;reporting_enabled = true
+
+# Google Analytics universal tracking code, only enabled if you specify an id here
+;google_analytics_ua_id =
+
+#################################### Security ####################################
+[security]
+# default admin user, created on startup
+;admin_user = admin
+
+# default admin password, can be changed before first start of grafana,  or in profile settings
+;admin_password = admin
+
+# used for signing
+;secret_key = SW2YcwTIb9zpOOhoPsMm
+
+# Auto-login remember days
+;login_remember_days = 7
+;cookie_username = grafana_user
+;cookie_remember_name = grafana_remember
+
+# disable gravatar profile images
+;disable_gravatar = false
+
+# data source proxy whitelist (ip_or_domain:port seperated by spaces)
+;data_source_proxy_whitelist =
+
+#################################### Users ####################################
+[users]
+# disable user signup / registration
+;allow_sign_up = true
+
+# Allow non admin users to create organizations
+;allow_org_create = true
+
+# Set to true to automatically assign new users to the default organization (id 1)
+;auto_assign_org = true
+
+# Default role new users will be automatically assigned (if disabled above is set to true)
+;auto_assign_org_role = Viewer
+
+# Background text for the user field on the login page
+;login_hint = email or username
+
+#################################### Anonymous Auth ##########################
+[auth.anonymous]
+# enable anonymous access
+enabled = true
+
+# specify organization name that should be used for unauthenticated users
+org_name = Main Org.
+
+# specify role for unauthenticated users
+org_role = Admin
+
+#################################### Github Auth ##########################
+[auth.github]
+;enabled = false
+;allow_sign_up = false
+;client_id = some_id
+;client_secret = some_secret
+;scopes = user:email,read:org
+;auth_url = https://github.com/login/oauth/authorize
+;token_url = https://github.com/login/oauth/access_token
+;api_url = https://api.github.com/user
+;team_ids =
+;allowed_organizations =
+
+#################################### Google Auth ##########################
+[auth.google]
+;enabled = false
+;allow_sign_up = false
+;client_id = some_client_id
+;client_secret = some_client_secret
+;scopes = https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email
+;auth_url = https://accounts.google.com/o/oauth2/auth
+;token_url = https://accounts.google.com/o/oauth2/token
+;api_url = https://www.googleapis.com/oauth2/v1/userinfo
+;allowed_domains =
+
+#################################### Auth Proxy ##########################
+[auth.proxy]
+;enabled = false
+;header_name = X-WEBAUTH-USER
+;header_property = username
+;auto_sign_up = true
+
+#################################### Basic Auth ##########################
+[auth.basic]
+;enabled = true
+
+#################################### Auth LDAP ##########################
+[auth.ldap]
+;enabled = false
+;config_file = /etc/grafana/ldap.toml
+
+#################################### SMTP / Emailing ##########################
+[smtp]
+;enabled = false
+;host = localhost:25
+;user =
+;password =
+;cert_file =
+;key_file =
+;skip_verify = false
+;from_address = admin@grafana.localhost
+
+[emails]
+;welcome_email_on_sign_up = false
+
+#################################### Logging ##########################
+[log]
+# Either "console", "file", default is "console"
+# Use comma to separate multiple modes, e.g. "console, file"
+;mode = console, file
+
+# Buffer length of channel, keep it as it is if you don't know what it is.
+;buffer_len = 10000
+
+# Either "Trace", "Debug", "Info", "Warn", "Error", "Critical", default is "Trace"
+;level = Info
+
+# For "console" mode only
+[log.console]
+;level =
+
+# For "file" mode only
+[log.file]
+;level =
+# This enables automated log rotate(switch of following options), default is true
+;log_rotate = true
+
+# Max line number of single file, default is 1000000
+;max_lines = 1000000
+
+# Max size shift of single file, default is 28 means 1 &lt;&lt; 28, 256MB
+;max_lines_shift = 28
+
+# Segment log daily, default is true
+;daily_rotate = true
+
+# Expired days of log file(delete after max days), default is 7
+;max_days = 7
+
+#################################### AMPQ Event Publisher ##########################
+[event_publisher]
+;enabled = false
+;rabbitmq_url = amqp://localhost/
+;exchange = grafana_events
+
+;#################################### Dashboard JSON files ##########################
+[dashboards.json]
+;enabled = false
+;path = /var/lib/grafana/dashboards
+path = /usr/lib/ambari-metrics-grafana/public/dashboards
+    </value>
+  </property>
 
 </configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/817ca063/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/params.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/params.py b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/params.py
index d8a19ce..8193737 100644
--- a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/params.py
+++ b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/params.py
@@ -79,6 +79,11 @@ ams_grafana_pid_dir = status_params.ams_grafana_pid_dir
 ams_grafana_conf_dir = '/etc/ambari-metrics-grafana/conf'
 ams_grafana_data_dir = default("/configurations/ams-grafana-env/metrics_grafana_data_dir", '/var/lib/ambari-metrics-grafana')
 
+ams_grafana_port = default("/configurations/ams-grafana-ini/port", 3000)
+ams_grafana_protocol = default("/configurations/ams-grafana-ini/protocol", 'http')
+ams_grafana_cert_file = default("/configurations/ams-grafana-ini/cert_file", '/etc/ambari-metrics/conf/ams-grafana.crt')
+ams_grafana_cert_key = default("/configurations/ams-grafana-ini/cert_key", '/etc/ambari-metrics/conf/ams-grafana.key')
+
 ams_hbase_home_dir = "/usr/lib/ams-hbase/"
 
 ams_hbase_normalizer_enabled = default("/configurations/ams-hbase-site/hbase.normalizer.enabled", None)


[02/12] ambari git commit: AMBARI-14909: Add a clean data dir confirmation pop-up to HAWQ add slave wizard (nalex via jaoki)

Posted by nc...@apache.org.
AMBARI-14909: Add a clean data dir confirmation pop-up to HAWQ add slave wizard (nalex via jaoki)


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

Branch: refs/heads/branch-dev-patch-upgrade
Commit: 60adfbcf8f88ec4429a5fd444491af39ff9173fe
Parents: 31309e2
Author: Jun Aoki <ja...@apache.org>
Authored: Fri Feb 5 15:52:18 2016 -0800
Committer: Jun Aoki <ja...@apache.org>
Committed: Fri Feb 5 15:52:18 2016 -0800

----------------------------------------------------------------------
 .../hawq/addStandby/step3_controller.js         | 23 ++++++++++++++++----
 ambari-web/app/messages.js                      |  2 ++
 2 files changed, 21 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/60adfbcf/ambari-web/app/controllers/main/admin/highAvailability/hawq/addStandby/step3_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/highAvailability/hawq/addStandby/step3_controller.js b/ambari-web/app/controllers/main/admin/highAvailability/hawq/addStandby/step3_controller.js
index 0cb256d..513a519 100644
--- a/ambari-web/app/controllers/main/admin/highAvailability/hawq/addStandby/step3_controller.js
+++ b/ambari-web/app/controllers/main/admin/highAvailability/hawq/addStandby/step3_controller.js
@@ -33,6 +33,8 @@ App.AddHawqStandbyWizardStep3Controller = Em.Controller.extend({
 
   selectedService: null,
 
+  hawqProps: null,
+
   hideDependenciesInfoBar: true,
 
   versionLoaded: true,
@@ -107,7 +109,8 @@ App.AddHawqStandbyWizardStep3Controller = Em.Controller.extend({
     this.setDynamicConfigValues(params, data);
     this.setProperties({
       selectedService: params,
-      isLoaded: true
+      isLoaded: true,
+      hawqProps: data
     });
   },
 
@@ -134,11 +137,23 @@ App.AddHawqStandbyWizardStep3Controller = Em.Controller.extend({
     }, this);
   },
 
+
   submit: function () {
     if (!this.get('isSubmitDisabled')) {
-      App.get('router.mainAdminKerberosController').getKDCSessionState(function() {
-        App.router.send("next");
-      });
+      dataDir = this.get('hawqProps').items[0].properties['hawq_master_directory'];
+      hawqStandby = this.get('hawqProps').items[0].properties['hawq_standby_address_host']
+      App.showConfirmationPopup(
+        function() {
+          App.get('router.mainAdminKerberosController').getKDCSessionState(function() {
+            App.router.send("next");
+          });
+        },
+        Em.I18n.t('admin.addHawqStandby.wizard.step3.confirm.dataDir.body').format(dataDir, hawqStandby),
+        null,
+        Em.I18n.t('admin.addHawqStandby.wizard.step3.confirm.dataDir.title'),
+        "Confirm",
+        false
+      );
     }
   },
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/60adfbcf/ambari-web/app/messages.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index 9be6d86..b14f9f7 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -2910,6 +2910,8 @@ Em.I18n.translations = {
       '</div>',
   'admin.addHawqStandby.wizard.step3.hawqMaster': 'Current HAWQ Master',
   'admin.addHawqStandby.wizard.step3.newHawqStandby': 'New HAWQ Standby Master',
+  'admin.addHawqStandby.wizard.step3.confirm.dataDir.title': 'HAWQ Standby Master Directory Confirmation',
+  'admin.addHawqStandby.wizard.step3.confirm.dataDir.body': 'Please confirm that the HAWQ data directory <b>{0}</b> on the Standby Master <b>{1}</b> does not exist or is empty.</br>If there is pre-existing data then HAWQ Standby will get initialized with stale data.',
   'admin.addHawqStandby.step4.save.configuration.note': 'This configuration is created by Add HAWQ Standby wizard',
   'admin.addHawqStandby.wizard.step4.header': 'Configure Components',
   'admin.addHawqStandby.wizard.step4.task0.title': 'Stop HAWQ Service',


[03/12] ambari git commit: AMBARI-14931: HAWQ service checks failing for single node clusters (nalex via jaoki)

Posted by nc...@apache.org.
AMBARI-14931: HAWQ service checks failing for single node clusters (nalex via jaoki)


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

Branch: refs/heads/branch-dev-patch-upgrade
Commit: b95d52e986d90b4f2e98d3da566a1a3d4731107b
Parents: 60adfbc
Author: Jun Aoki <ja...@apache.org>
Authored: Fri Feb 5 16:14:46 2016 -0800
Committer: Jun Aoki <ja...@apache.org>
Committed: Fri Feb 5 16:14:46 2016 -0800

----------------------------------------------------------------------
 .../common-services/HAWQ/2.0.0/package/scripts/utils.py        | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/b95d52e9/ambari-server/src/main/resources/common-services/HAWQ/2.0.0/package/scripts/utils.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HAWQ/2.0.0/package/scripts/utils.py b/ambari-server/src/main/resources/common-services/HAWQ/2.0.0/package/scripts/utils.py
index e607a28..51a38d1 100644
--- a/ambari-server/src/main/resources/common-services/HAWQ/2.0.0/package/scripts/utils.py
+++ b/ambari-server/src/main/resources/common-services/HAWQ/2.0.0/package/scripts/utils.py
@@ -82,7 +82,7 @@ def exec_ssh_cmd(hostname, cmd):
   import params
   # Only gpadmin should be allowed to run command via ssh, thus not exposing user as a parameter
   if params.hostname != hostname:
-    cmd = "su - {0} -c \"ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null {1} \\\"{2} \\\" \"".format(hawq_constants.hawq_user, hostname, cmd)
+    cmd = "su - {0} -c 'ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null {1} \"{2} \" '".format(hawq_constants.hawq_user, hostname, cmd)
   else:
     cmd = "su - {0} -c \"{1}\"".format(hawq_constants.hawq_user, cmd)
   Logger.info("Command executed: {0}".format(cmd))
@@ -97,9 +97,9 @@ def exec_psql_cmd(command, host, port, db="template1", tuples_only=True):
   """
   src_cmd = "export PGPORT={0} && source {1}".format(port, hawq_constants.hawq_greenplum_path_file)
   if tuples_only:
-    cmd = src_cmd + " && psql -d {0} -c \\\\\\\"{1};\\\\\\\"".format(db, command)
+    cmd = src_cmd + " && psql -d {0} -c \\\"{1};\\\"".format(db, command)
   else:
-    cmd = src_cmd + " && psql -t -d {0} -c \\\\\\\"{1};\\\\\\\"".format(db, command)
+    cmd = src_cmd + " && psql -t -d {0} -c \\\"{1};\\\"".format(db, command)
   retcode, out, err = exec_ssh_cmd(host, cmd)
   if retcode:
     Logger.error("SQL command executed failed: {0}\nReturncode: {1}\nStdout: {2}\nStderr: {3}".format(cmd, retcode, out, err))


[10/12] ambari git commit: AMBARI-14942 Reinstallation of a failed component should ask for Kerberos password 2. (ababiichuk)

Posted by nc...@apache.org.
AMBARI-14942 Reinstallation of a failed component should ask for Kerberos password 2. (ababiichuk)


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

Branch: refs/heads/branch-dev-patch-upgrade
Commit: 91897d970150a36a41eb5e04b76186d88b885266
Parents: cff8348
Author: ababiichuk <ab...@hortonworks.com>
Authored: Mon Feb 8 12:55:59 2016 +0200
Committer: ababiichuk <ab...@hortonworks.com>
Committed: Mon Feb 8 14:43:13 2016 +0200

----------------------------------------------------------------------
 .../main/host/bulk_operations_controller.js     | 25 +++++++++++---------
 1 file changed, 14 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/91897d97/ambari-web/app/controllers/main/host/bulk_operations_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/host/bulk_operations_controller.js b/ambari-web/app/controllers/main/host/bulk_operations_controller.js
index 13b7d96..b0ea13b 100644
--- a/ambari-web/app/controllers/main/host/bulk_operations_controller.js
+++ b/ambari-web/app/controllers/main/host/bulk_operations_controller.js
@@ -233,18 +233,21 @@ App.BulkOperationsController = Em.Controller.extend({
    * @param {Ember.Enumerable} hosts - list of affected hosts
    */
   bulkOperationForHostsReinstall: function (operationData, hosts) {
-    return App.ajax.send({
-      name: 'common.host_components.update',
-      sender: this,
-      data: {
-        HostRoles: {
-          state: 'INSTALLED'
+    var self = this;
+    App.get('router.mainAdminKerberosController').getKDCSessionState(function () {
+      return App.ajax.send({
+        name: 'common.host_components.update',
+        sender: self,
+        data: {
+          HostRoles: {
+            state: 'INSTALLED'
+          },
+          query: 'HostRoles/host_name.in(' + hosts.mapProperty('hostName').join(',') + ')&HostRoles/state=INSTALL_FAILED',
+          context: operationData.message,
+          noOpsMessage: Em.I18n.t('hosts.host.maintainance.reinstallFailedComponents.context')
         },
-        query: 'HostRoles/host_name.in(' + hosts.mapProperty('hostName').join(',') + ')&HostRoles/state=INSTALL_FAILED',
-        context: operationData.message,
-        noOpsMessage: Em.I18n.t('hosts.host.maintainance.reinstallFailedComponents.context')
-      },
-      success: 'bulkOperationForHostComponentsSuccessCallback'
+        success: 'bulkOperationForHostComponentsSuccessCallback'
+      });
     });
   },
 


[12/12] ambari git commit: Merge branch 'trunk' into branch-dev-patch-upgrade

Posted by nc...@apache.org.
Merge branch 'trunk' into branch-dev-patch-upgrade


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

Branch: refs/heads/branch-dev-patch-upgrade
Commit: d3db8daddcdae75f5ccff2760b7bd646e7d63bce
Parents: c11a411 f60472d
Author: Nate Cole <nc...@hortonworks.com>
Authored: Mon Feb 8 09:03:13 2016 -0500
Committer: Nate Cole <nc...@hortonworks.com>
Committed: Mon Feb 8 09:03:13 2016 -0500

----------------------------------------------------------------------
 ambari-agent/conf/unix/ambari-agent             |   8 +-
 ambari-agent/conf/unix/install-helper.sh        |  26 +-
 ambari-agent/src/packages/tarball/all.xml       |   5 -
 .../src/main/python/ambari_commons/os_check.py  |  27 +-
 .../ambari_commons/resources/os_family.json     |  10 +-
 .../core/providers/__init__.py                  |   3 +
 .../libraries/providers/__init__.py             |   3 +
 ambari-common/src/main/unix/ambari-python-wrap  |   8 +-
 .../HDP/2.0.1/services/GANGLIA/metainfo.xml     |   4 +-
 .../stacks/HDP/2.0.1/services/HDFS/metainfo.xml |   2 +-
 .../stacks/HDP/2.0.1/services/HIVE/metainfo.xml |   4 +-
 .../HDP/2.0.1/services/OOZIE/metainfo.xml       |   2 +-
 .../HDP/2.0.5/services/GANGLIA/metainfo.xml     |   4 +-
 .../stacks/HDP/2.0.5/services/HDFS/metainfo.xml |   2 +-
 .../stacks/HDP/2.0.5/services/HIVE/metainfo.xml |   4 +-
 .../HDP/2.0.5/services/OOZIE/metainfo.xml       |   2 +-
 .../stacks/HDP/2.0.7/services/HIVE/metainfo.xml |   4 +-
 .../2.1.1/services/AMBARI_METRICS/metainfo.xml  |   2 +-
 ambari-server/conf/unix/ambari-env.sh           |   1 +
 ambari-server/conf/unix/install-helper.sh       |  24 +-
 ambari-server/sbin/ambari-server                |   7 +-
 ambari-server/src/main/assemblies/server.xml    |   5 -
 .../src/main/python/ambari_server/utils.py      |   5 +-
 .../0.1.0/configuration/ams-grafana-ini.xml     | 542 ++++++++++---------
 .../AMBARI_METRICS/0.1.0/metainfo.xml           |   2 +-
 .../0.1.0/package/scripts/params.py             |   5 +
 .../common-services/GANGLIA/3.5.0/metainfo.xml  |   4 +-
 .../HAWQ/2.0.0/configuration/hawq-site.xml      |  12 +
 .../HAWQ/2.0.0/package/scripts/utils.py         |   6 +-
 .../common-services/HDFS/2.1.0.2.0/metainfo.xml |   2 +-
 .../HIVE/0.12.0.2.0/metainfo.xml                |   4 +-
 .../KERBEROS/1.10.3-10/metainfo.xml             |   2 +-
 .../OOZIE/4.0.0.2.0/metainfo.xml                |   2 +-
 .../stacks/HDP/2.1/services/HIVE/metainfo.xml   |   4 +-
 .../stacks/HDP/2.1/services/OOZIE/metainfo.xml  |   2 +-
 .../resources/stacks/HDP/2.2/repos/repoinfo.xml |  12 +
 .../stacks/HDP/2.2/services/FALCON/metainfo.xml |   2 +-
 .../stacks/HDP/2.2/services/FLUME/metainfo.xml  |   2 +-
 .../stacks/HDP/2.2/services/HBASE/metainfo.xml  |   2 +-
 .../stacks/HDP/2.2/services/HDFS/metainfo.xml   |   2 +-
 .../stacks/HDP/2.2/services/HIVE/metainfo.xml   |   6 +-
 .../stacks/HDP/2.2/services/KAFKA/metainfo.xml  |   2 +-
 .../stacks/HDP/2.2/services/KNOX/metainfo.xml   |   2 +-
 .../stacks/HDP/2.2/services/OOZIE/metainfo.xml  |   2 +-
 .../stacks/HDP/2.2/services/PIG/metainfo.xml    |   2 +-
 .../stacks/HDP/2.2/services/RANGER/metainfo.xml |   2 +-
 .../stacks/HDP/2.2/services/SLIDER/metainfo.xml |   2 +-
 .../stacks/HDP/2.2/services/SPARK/metainfo.xml  |   2 +-
 .../stacks/HDP/2.2/services/SQOOP/metainfo.xml  |   2 +-
 .../stacks/HDP/2.2/services/STORM/metainfo.xml  |   2 +-
 .../stacks/HDP/2.2/services/TEZ/metainfo.xml    |   2 +-
 .../stacks/HDP/2.2/services/YARN/metainfo.xml   |   4 +-
 .../HDP/2.3.ECS/services/ZOOKEEPER/metainfo.xml |   2 +-
 .../resources/stacks/HDP/2.3/repos/repoinfo.xml |  12 +
 .../HDP/2.3/services/ACCUMULO/metainfo.xml      |   2 +-
 .../stacks/HDP/2.3/services/ATLAS/metainfo.xml  |   2 +-
 .../stacks/HDP/2.3/services/HDFS/metainfo.xml   |   2 +-
 .../stacks/HDP/2.3/services/HIVE/metainfo.xml   |   6 +-
 .../stacks/HDP/2.3/services/KAFKA/widgets.json  | 182 +++++++
 .../stacks/HDP/2.3/services/OOZIE/metainfo.xml  |   2 +-
 .../stacks/HDP/2.3/services/PIG/metainfo.xml    |   2 +-
 .../HDP/2.3/services/RANGER_KMS/metainfo.xml    |   2 +-
 .../stacks/HDP/2.3/services/STORM/widgets.json  | 127 +++++
 .../HDP/2.3/services/ZOOKEEPER/metainfo.xml     |   2 +-
 .../stacks/HDP/2.3/services/stack_advisor.py    |  37 +-
 .../resources/stacks/HDP/2.4/repos/repoinfo.xml |  12 +
 .../stacks/2.3/common/test_stack_advisor.py     |  51 +-
 ambari-web/app/assets/test/tests.js             |   1 -
 .../hawq/addStandby/step3_controller.js         |  23 +-
 .../main/host/bulk_operations_controller.js     |  25 +-
 ambari-web/app/controllers/main/host/details.js |  44 +-
 ambari-web/app/controllers/main/service/item.js |   7 +-
 ambari-web/app/data/service_graph_config.js     |  15 -
 ambari-web/app/messages.js                      |  30 +-
 .../mixins/common/chart/storm_linear_time.js    |  74 ---
 .../app/mixins/common/widgets/widget_mixin.js   |   2 +-
 .../configs/add_component_config_initializer.js |  13 +-
 ambari-web/app/views.js                         |   9 -
 .../app/views/common/chart/linear_time.js       |  20 -
 .../service/info/metrics/kafka/broker_topic.js  |  50 --
 .../info/metrics/kafka/controller_status.js     |  49 --
 .../info/metrics/kafka/kafka_controller.js      |  41 --
 .../info/metrics/kafka/replica_fetcher.js       |  41 --
 .../info/metrics/kafka/replica_manager.js       |  46 --
 .../info/metrics/storm/executors_metric.js      |  34 --
 .../info/metrics/storm/slots_number_metric.js   |  42 --
 .../service/info/metrics/storm/tasks_metric.js  |  34 --
 .../info/metrics/storm/topologies_metric.js     |  34 --
 .../test/controllers/main/host/details_test.js  |  97 +++-
 .../common/chart/storm_linear_time_test.js      |  80 ---
 .../resources/ui/scripts/init-ambari-view.js    |   5 +-
 docs/src/site/apt/index.apt                     |   2 +-
 docs/src/site/apt/whats-new.apt                 |  24 +-
 docs/src/site/site.xml                          |   2 +
 94 files changed, 1052 insertions(+), 1034 deletions(-)
----------------------------------------------------------------------



[08/12] ambari git commit: AMBARI-14940. Tez Ambari View: Improve host configuration logic. (SREENATH SOMARAJAPURAM via dbhowmick)

Posted by nc...@apache.org.
AMBARI-14940. Tez Ambari View: Improve host configuration logic. (SREENATH SOMARAJAPURAM via dbhowmick)


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

Branch: refs/heads/branch-dev-patch-upgrade
Commit: cff83481348b7e6def8403b344f83f51ef6d2d91
Parents: 268ae5b
Author: Dipayan Bhowmick <di...@gmail.com>
Authored: Mon Feb 8 17:56:00 2016 +0530
Committer: Dipayan Bhowmick <di...@gmail.com>
Committed: Mon Feb 8 18:03:03 2016 +0530

----------------------------------------------------------------------
 .../views/tez/src/main/resources/ui/scripts/init-ambari-view.js | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/cff83481/contrib/views/tez/src/main/resources/ui/scripts/init-ambari-view.js
----------------------------------------------------------------------
diff --git a/contrib/views/tez/src/main/resources/ui/scripts/init-ambari-view.js b/contrib/views/tez/src/main/resources/ui/scripts/init-ambari-view.js
index b45fef0..c246536 100644
--- a/contrib/views/tez/src/main/resources/ui/scripts/init-ambari-view.js
+++ b/contrib/views/tez/src/main/resources/ui/scripts/init-ambari-view.js
@@ -143,7 +143,10 @@ function scheduleChangeHandler(arguments) {
 }
 
 function setConfigs() {
-  var host = window.location.origin,
+  var host = window.location.protocol +
+      "//" +
+      window.location.hostname +
+      (window.location.port ? ':' + window.location.port: ''),
       urlParts = location.pathname.split('/'),
       resourcesPrefix = 'api/v1/views/%@/versions/%@/instances/%@/resources/'.fmt(
         urlParts[2],


[04/12] ambari git commit: Updated website for 2.2.1 release.

Posted by nc...@apache.org.
Updated website for 2.2.1 release.


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

Branch: refs/heads/branch-dev-patch-upgrade
Commit: d10b8767a3c61544850722b298171e6d4aa95c99
Parents: b95d52e
Author: Robert Levas <rl...@hortonworks.com>
Authored: Sun Feb 7 13:49:18 2016 -0500
Committer: Robert Levas <rl...@hortonworks.com>
Committed: Sun Feb 7 13:50:41 2016 -0500

----------------------------------------------------------------------
 docs/src/site/apt/index.apt     |  2 +-
 docs/src/site/apt/whats-new.apt | 24 +++++++-----------------
 docs/src/site/site.xml          |  2 ++
 3 files changed, 10 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/d10b8767/docs/src/site/apt/index.apt
----------------------------------------------------------------------
diff --git a/docs/src/site/apt/index.apt b/docs/src/site/apt/index.apt
index ba98c8d..ab3f107 100644
--- a/docs/src/site/apt/index.apt
+++ b/docs/src/site/apt/index.apt
@@ -52,7 +52,7 @@ Introduction
 
 Getting Started with Ambari
 
-  Follow the {{{https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.2.0} installation guide for Ambari 2.2.0}}.
+  Follow the {{{https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.2.1} installation guide for Ambari 2.2.1}}.
 
   Note: Ambari currently supports the 64-bit version of the following Operating Systems:
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/d10b8767/docs/src/site/apt/whats-new.apt
----------------------------------------------------------------------
diff --git a/docs/src/site/apt/whats-new.apt b/docs/src/site/apt/whats-new.apt
index 3af6c5fc..d7100fa 100644
--- a/docs/src/site/apt/whats-new.apt
+++ b/docs/src/site/apt/whats-new.apt
@@ -16,27 +16,17 @@
 
 What's New with Ambari?
 
-  * The latest release of Ambari is Ambari 2.2.0
+  * The latest release of Ambari is Ambari 2.2.1
 
-  * Ambari 2.2.0 added the following features:
+  * Ambari 2.2.1 added the following features:
 
-    * Express Upgrade
+    * The ability to set rack_info within a Blueprint
 
-    * Rolling Upgrade resiliency
+    * Updates to the Spark stack definition to support Spark 1.6
 
-    * Guided Configs for Apache Ranger
+    * Service check for Spark service
 
-    * Ability to retain KDC Admin credentials
-
-    * Blueprint support for Kerberos
-
-    * Blueprint support for Apache Ranger service (including HA)
-
-    * Blueprint integration with stack advisor
-
-    * Encryption of password properties of stack components exposed via Ambari API
-
-    * Ability to set/change timezone for the graphs on the UI
+    * The ability to set time ranges for graphs in dashboard widgets
 
 Getting Ambari Source
 
@@ -51,7 +41,7 @@ JIRA
 
 User Guide
 
-  Take a look at {{{https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.2.0} how to install a Hadoop cluster using Ambari 2.2.0}}.
+  Take a look at {{{https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.2.1} how to install a Hadoop cluster using Ambari 2.2.1}}.
 
 Stay Tuned
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/d10b8767/docs/src/site/site.xml
----------------------------------------------------------------------
diff --git a/docs/src/site/site.xml b/docs/src/site/site.xml
index d73aa90..bc47fa5 100644
--- a/docs/src/site/site.xml
+++ b/docs/src/site/site.xml
@@ -107,6 +107,7 @@
       <item name="Quick Start Guide" href="https://cwiki.apache.org/confluence/display/AMBARI/Quick+Start+Guide"/>
       <item name="Features + Roadmap" href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=30755705"/>
       <item name="API Reference" href="https://github.com/apache/ambari/blob/trunk/ambari-server/docs/api/v1/index.md"/>
+      <item name="Install Guide for 2.2.1" href="https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.2.1"/>
       <item name="Install Guide for 2.2.0" href="https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.2.0"/>
       <item name="Install Guide for 2.1.2" href="https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.1.2"/>
       <item name="Install Guide for 2.1.1" href="https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.1.1"/>
@@ -133,6 +134,7 @@
     </menu>
 
     <menu name="Releases">
+      <item name="2.2.1" href="http://www.apache.org/dyn/closer.cgi/ambari/ambari-2.2.1"/>
       <item name="2.2.0" href="http://www.apache.org/dyn/closer.cgi/ambari/ambari-2.2.0"/>
       <item name="2.1.2" href="http://www.apache.org/dyn/closer.cgi/ambari/ambari-2.1.2"/>
       <item name="2.1.1" href="http://www.apache.org/dyn/closer.cgi/ambari/ambari-2.1.1"/>


[11/12] ambari git commit: AMBARI-14955 Add error message when remove service failed. (ababiichuk)

Posted by nc...@apache.org.
AMBARI-14955 Add error message when remove service failed. (ababiichuk)


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

Branch: refs/heads/branch-dev-patch-upgrade
Commit: f60472d5fa3705f31a0b024d4fb93c0d96048a10
Parents: 7051ef6
Author: ababiichuk <ab...@hortonworks.com>
Authored: Mon Feb 8 14:39:58 2016 +0200
Committer: ababiichuk <ab...@hortonworks.com>
Committed: Mon Feb 8 14:43:13 2016 +0200

----------------------------------------------------------------------
 ambari-web/app/controllers/main/service/item.js | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/f60472d5/ambari-web/app/controllers/main/service/item.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/service/item.js b/ambari-web/app/controllers/main/service/item.js
index 1aae7cd..0b8d5d7 100644
--- a/ambari-web/app/controllers/main/service/item.js
+++ b/ambari-web/app/controllers/main/service/item.js
@@ -1174,7 +1174,8 @@ App.MainServiceItemController = Em.Controller.extend(App.SupportClientConfigsDow
         serviceName : serviceToDeleteNow,
         servicesToDeleteNext: servicesToDeleteNext
       },
-      success : 'deleteServiceCallSuccessCallback'
+      success : 'deleteServiceCallSuccessCallback',
+      error: 'deleteServiceCallErrorCallback'
     });
   },
 
@@ -1184,6 +1185,10 @@ App.MainServiceItemController = Em.Controller.extend(App.SupportClientConfigsDow
     } else {
       window.location.reload();
     }
+  },
+
+  deleteServiceCallErrorCallback: function (jqXHR, ajaxOptions, error, opt) {
+    App.ajax.defaultErrorHandler(jqXHR, opt.url, opt.method, jqXHR.status);
   }
 
 });


[06/12] ambari git commit: AMBARI-14941 Convert Storm and Kafka to use enhanced dashboard widgets. (atkach)

Posted by nc...@apache.org.
AMBARI-14941 Convert Storm and Kafka to use enhanced dashboard widgets. (atkach)


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

Branch: refs/heads/branch-dev-patch-upgrade
Commit: 74eb20a8a3f665175a6be10cbc69886b14923aa1
Parents: 817ca06
Author: Andrii Tkach <at...@hortonworks.com>
Authored: Fri Feb 5 16:39:32 2016 +0200
Committer: Andrii Tkach <at...@hortonworks.com>
Committed: Mon Feb 8 13:27:44 2016 +0200

----------------------------------------------------------------------
 .../stacks/HDP/2.3/services/KAFKA/widgets.json  | 182 +++++++++++++++++++
 .../stacks/HDP/2.3/services/STORM/widgets.json  | 127 +++++++++++++
 ambari-web/app/assets/test/tests.js             |   1 -
 ambari-web/app/data/service_graph_config.js     |  15 --
 ambari-web/app/messages.js                      |  28 ---
 .../mixins/common/chart/storm_linear_time.js    |  74 --------
 .../app/mixins/common/widgets/widget_mixin.js   |   2 +-
 ambari-web/app/views.js                         |   9 -
 .../app/views/common/chart/linear_time.js       |  20 --
 .../service/info/metrics/kafka/broker_topic.js  |  50 -----
 .../info/metrics/kafka/controller_status.js     |  49 -----
 .../info/metrics/kafka/kafka_controller.js      |  41 -----
 .../info/metrics/kafka/replica_fetcher.js       |  41 -----
 .../info/metrics/kafka/replica_manager.js       |  46 -----
 .../info/metrics/storm/executors_metric.js      |  34 ----
 .../info/metrics/storm/slots_number_metric.js   |  42 -----
 .../service/info/metrics/storm/tasks_metric.js  |  34 ----
 .../info/metrics/storm/topologies_metric.js     |  34 ----
 .../common/chart/storm_linear_time_test.js      |  80 --------
 19 files changed, 310 insertions(+), 599 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/74eb20a8/ambari-server/src/main/resources/stacks/HDP/2.3/services/KAFKA/widgets.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.3/services/KAFKA/widgets.json b/ambari-server/src/main/resources/stacks/HDP/2.3/services/KAFKA/widgets.json
new file mode 100644
index 0000000..7237236
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/2.3/services/KAFKA/widgets.json
@@ -0,0 +1,182 @@
+{
+  "layouts": [
+    {
+      "layout_name": "default_kafka_dashboard",
+      "display_name": "Standard Kafka Dashboard",
+      "section_name": "KAFKA_SUMMARY",
+      "widgetLayoutInfo": [
+        {
+          "widget_name": "Broker Topics",
+          "description": "Broker Topics",
+          "widget_type": "GRAPH",
+          "is_visible": true,
+          "metrics": [
+            {
+              "name": "kafka.server.BrokerTopicMetrics.BytesInPerSec.1MinuteRate",
+              "metric_path": "metrics/kafka/server/BrokerTopicMetrics/AllTopicsBytesInPerSec/1MinuteRate",
+              "service_name": "KAFKA",
+              "component_name": "KAFKA_BROKER"
+            },
+            {
+              "name": "kafka.server.BrokerTopicMetrics.BytesOutPerSec.1MinuteRate",
+              "metric_path": "metrics/kafka/server/BrokerTopicMetrics/AllTopicsBytesOutPerSec/1MinuteRate",
+              "service_name": "KAFKA",
+              "component_name": "KAFKA_BROKER"
+            },
+            {
+              "name": "kafka.server.BrokerTopicMetrics.MessagesInPerSec.1MinuteRate",
+              "metric_path": "metrics/kafka/server/BrokerTopicMetrics/AllTopicsMessagesInPerSec/1MinuteRate",
+              "service_name": "KAFKA",
+              "component_name": "KAFKA_BROKER"
+            }
+          ],
+          "values": [
+            {
+              "name": "Bytes In",
+              "value": "${kafka.server.BrokerTopicMetrics.BytesInPerSec.1MinuteRate}"
+            },
+            {
+              "name": "Bytes Out",
+              "value": "${kafka.server.BrokerTopicMetrics.BytesOutPerSec.1MinuteRate}"
+            },
+            {
+              "name": "Messages In",
+              "value": "${kafka.server.BrokerTopicMetrics.MessagesInPerSec.1MinuteRate}"
+            }
+          ],
+          "properties": {
+            "graph_type": "LINE",
+            "time_range": "1"
+          }
+        },
+        {
+          "widget_name": "Active Controller Count",
+          "description": "Active Controller Count",
+          "widget_type": "GRAPH",
+          "is_visible": true,
+          "metrics": [
+            {
+              "name": "kafka.controller.KafkaController.ActiveControllerCount",
+              "metric_path": "metrics/kafka/controller/KafkaController/ActiveControllerCount",
+              "service_name": "KAFKA",
+              "component_name": "KAFKA_BROKER"
+            }
+          ],
+          "values": [
+            {
+              "name": "Active Controller Count",
+              "value": "${kafka.controller.KafkaController.ActiveControllerCount}"
+            }
+          ],
+          "properties": {
+            "graph_type": "LINE",
+            "time_range": "1"
+          }
+        },
+        {
+          "widget_name": "Controller Status",
+          "description": "Controller Status",
+          "widget_type": "GRAPH",
+          "is_visible": true,
+          "metrics": [
+            {
+              "name": "kafka.controller.ControllerStats.LeaderElectionRateAndTimeMs.1MinuteRate",
+              "metric_path": "metrics/kafka/controller/ControllerStats/LeaderElectionRateAndTimeMs/1MinuteRate",
+              "service_name": "KAFKA",
+              "component_name": "KAFKA_BROKER"
+            },
+            {
+              "name": "kafka.controller.ControllerStats.UncleanLeaderElectionsPerSec.1MinuteRate",
+              "metric_path": "metrics/kafka/controller/ControllerStats/UncleanLeaderElectionsPerSec/1MinuteRate",
+              "service_name": "KAFKA",
+              "component_name": "KAFKA_BROKER"
+            }
+          ],
+          "values": [
+            {
+              "name": "Leader Election Rate And Time",
+              "value": "${kafka.controller.ControllerStats.LeaderElectionRateAndTimeMs.1MinuteRate}"
+            },
+            {
+              "name": "Unclean Leader Election",
+              "value": "${kafka.controller.ControllerStats.UncleanLeaderElectionsPerSec.1MinuteRate}"
+            }
+          ],
+          "properties": {
+            "graph_type": "LINE",
+            "time_range": "1"
+          }
+        },
+        {
+          "widget_name": "Replica MaxLag",
+          "description": "Replica MaxLag",
+          "widget_type": "GRAPH",
+          "is_visible": true,
+          "metrics": [
+            {
+              "name": "kafka.server.ReplicaFetcherManager.MaxLag.clientId.Replica",
+              "metric_path": "metrics/kafka/server/ReplicaFetcherManager/Replica-MaxLag",
+              "service_name": "KAFKA",
+              "component_name": "KAFKA_BROKER"
+            }
+          ],
+          "values": [
+            {
+              "name": "Replica MaxLag",
+              "value": "${kafka.server.ReplicaFetcherManager.MaxLag.clientId.Replica}"
+            }
+          ],
+          "properties": {
+            "graph_type": "LINE",
+            "time_range": "1"
+          }
+        },
+        {
+          "widget_name": "Replica Manager",
+          "description": "Replica Manager",
+          "widget_type": "GRAPH",
+          "is_visible": true,
+          "metrics": [
+            {
+              "name": "kafka.server.ReplicaManager.PartitionCount",
+              "metric_path": "metrics/kafka/server/ReplicaManager/PartitionCount",
+              "service_name": "KAFKA",
+              "component_name": "KAFKA_BROKER"
+            },
+            {
+              "name": "kafka.server.ReplicaManager.UnderReplicatedPartitions",
+              "metric_path": "metrics/kafka/server/ReplicaManager/UnderReplicatedPartitions",
+              "service_name": "KAFKA",
+              "component_name": "KAFKA_BROKER"
+            },
+            {
+              "name": "kafka.server.ReplicaManager.LeaderCount",
+              "metric_path": "metrics/kafka/server/ReplicaManager/LeaderCount",
+              "service_name": "KAFKA",
+              "component_name": "KAFKA_BROKER"
+            }
+          ],
+          "values": [
+            {
+              "name": "Partitions count",
+              "value": "${kafka.server.ReplicaManager.PartitionCount}"
+            },
+            {
+              "name": "Under Replicated Partitions",
+              "value": "${kafka.server.ReplicaManager.UnderReplicatedPartitions}"
+            },
+            {
+              "name": "Leader Count",
+              "value": "${kafka.server.ReplicaManager.LeaderCount}"
+            }
+          ],
+          "properties": {
+            "graph_type": "LINE",
+            "time_range": "1"
+          }
+        }
+
+      ]
+    }
+  ]
+}

http://git-wip-us.apache.org/repos/asf/ambari/blob/74eb20a8/ambari-server/src/main/resources/stacks/HDP/2.3/services/STORM/widgets.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.3/services/STORM/widgets.json b/ambari-server/src/main/resources/stacks/HDP/2.3/services/STORM/widgets.json
new file mode 100644
index 0000000..d22a1ed
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/2.3/services/STORM/widgets.json
@@ -0,0 +1,127 @@
+{
+  "layouts": [
+    {
+      "layout_name": "default_storm_dashboard",
+      "display_name": "Standard Storm Dashboard",
+      "section_name": "STORM_SUMMARY",
+      "widgetLayoutInfo": [
+        {
+          "widget_name": "Number of Slots",
+          "description": "Number of Slots",
+          "widget_type": "GRAPH",
+          "is_visible": true,
+          "metrics": [
+            {
+              "name": "Used Slots",
+              "metric_path": "metrics/storm/nimbus/usedslots",
+              "service_name": "STORM",
+              "component_name": "NIMBUS"
+            },
+            {
+              "name": "Free Slots",
+              "metric_path": "metrics/storm/nimbus/freeslots",
+              "service_name": "STORM",
+              "component_name": "NIMBUS"
+            },
+            {
+              "name": "Total Slots",
+              "metric_path": "metrics/storm/nimbus/totalslots",
+              "service_name": "STORM",
+              "component_name": "NIMBUS"
+            }
+          ],
+          "values": [
+            {
+              "name": "Used slots",
+              "value": "${Used Slots}"
+            },
+            {
+              "name": "Free slots",
+              "value": "${Free Slots}"
+            },
+            {
+              "name": "Total slots",
+              "value": "${Total Slots}"
+            }
+          ],
+          "properties": {
+            "graph_type": "LINE",
+            "time_range": "1"
+          }
+        },
+        {
+          "widget_name": "Number of executors",
+          "description": "Number of executors",
+          "widget_type": "GRAPH",
+          "is_visible": true,
+          "metrics": [
+            {
+              "name": "Total Executors",
+              "metric_path": "metrics/storm/nimbus/totalexecutors",
+              "service_name": "STORM",
+              "component_name": "NIMBUS"
+            }
+          ],
+          "values": [
+            {
+              "name": "Total executors",
+              "value": "${Total Executors}"
+            }
+          ],
+          "properties": {
+            "graph_type": "LINE",
+            "time_range": "1"
+          }
+        },
+        {
+          "widget_name": "Number of topologies",
+          "description": "Number of topologies",
+          "widget_type": "GRAPH",
+          "is_visible": true,
+          "metrics": [
+            {
+              "name": "Topologies",
+              "metric_path": "metrics/storm/nimbus/topologies",
+              "service_name": "STORM",
+              "component_name": "NIMBUS"
+            }
+          ],
+          "values": [
+            {
+              "name": "Total topologies",
+              "value": "${Topologies}"
+            }
+          ],
+          "properties": {
+            "graph_type": "LINE",
+            "time_range": "1"
+          }
+        },
+        {
+          "widget_name": "Number of tasks",
+          "description": "Number of tasks",
+          "widget_type": "GRAPH",
+          "is_visible": true,
+          "metrics": [
+            {
+              "name": "Total Tasks",
+              "metric_path": "metrics/storm/nimbus/totaltasks",
+              "service_name": "STORM",
+              "component_name": "NIMBUS"
+            }
+          ],
+          "values": [
+            {
+              "name": "Total tasks",
+              "value": "${Total Tasks}"
+            }
+          ],
+          "properties": {
+            "graph_type": "LINE",
+            "time_range": "1"
+          }
+        }
+      ]
+    }
+  ]
+}

http://git-wip-us.apache.org/repos/asf/ambari/blob/74eb20a8/ambari-web/app/assets/test/tests.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/assets/test/tests.js b/ambari-web/app/assets/test/tests.js
index e82a27e..ecf55f7 100644
--- a/ambari-web/app/assets/test/tests.js
+++ b/ambari-web/app/assets/test/tests.js
@@ -142,7 +142,6 @@ var files = [
   'test/mixins/common/configs/config_recommendation_parser_test',
   'test/mixins/common/configs/configs_saver_test',
   'test/mixins/common/configs/toggle_isrequired_test',
-  'test/mixins/common/chart/storm_linear_time_test',
   'test/mixins/common/widgets/export_metrics_mixin_test',
   'test/mixins/common/widgets/time_range_mixin_test',
   'test/mixins/common/widgets/widget_section_test',

http://git-wip-us.apache.org/repos/asf/ambari/blob/74eb20a8/ambari-web/app/data/service_graph_config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/data/service_graph_config.js b/ambari-web/app/data/service_graph_config.js
index 1ae4a03..0d9fa9d 100644
--- a/ambari-web/app/data/service_graph_config.js
+++ b/ambari-web/app/data/service_graph_config.js
@@ -44,20 +44,5 @@ module.exports = {
       'Flume_IncommingSum',
       'Flume_OutgoingMMA',
       'Flume_OutgoingSum'
-    ],
-
-    'storm': [
-      'STORM_SlotsNumber',
-      'STORM_Executors',
-      'STORM_Topologies',
-      'STORM_Tasks'
-    ],
-
-    'kafka': [
-      'Kafka_BrokerTopicMetrics',
-      'Kafka_Controller',
-      'Kafka_ControllerStatus',
-      'Kafka_ReplicaManager',
-      'Kafka_ReplicaFetcher'
     ]
 };
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/74eb20a8/ambari-web/app/messages.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index b14f9f7..00fb4b9 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -477,16 +477,6 @@ Em.I18n.translations = {
   'services.tez.description':'Tez is the next generation Hadoop Query Processing framework written on top of YARN',
   'services.falcon.description': 'Falcon mirroring engine',
   'services.storm.description': 'Apache Hadoop Stream processing framework',
-  'services.storm.slots.metrics.title': 'Number of slots',
-  'services.storm.slots.metrics.free': 'Free slots',
-  'services.storm.slots.metrics.total': 'Total slots',
-  'services.storm.slots.metrics.used': 'Used slots',
-  'services.storm.executors.metrics.title': 'Number of executors',
-  'services.storm.executors.metrics.total': 'Total executors',
-  'services.storm.topology.metrics.title': 'Number of topologies',
-  'services.storm.topology.metrics.total': 'Total topologies',
-  'services.storm.tasks.metrics.title': 'Number of tasks',
-  'services.storm.tasks.metrics.total': 'Total tasks',
   'services.storm.configs.range-plugin-enable.dialog.title': 'Enable Ranger for STORM',
   'services.storm.configs.range-plugin-enable.dialog.message': 'Enabling Ranger plugin for STORM is effective only on a secured cluster.',
 
@@ -1859,24 +1849,6 @@ Em.I18n.translations = {
   'services.service.info.metrics.yarn.apps.states.running': 'Running',
   'services.service.info.metrics.yarn.apps.states.submitted': 'Submitted',
 
-  'services.service.info.metrics.kafka.server.brokerTopic.title': 'Broker Topics',
-  'services.service.info.metrics.kafka.server.brokerTopic.displayNames.AllTopicsBytesOutPerSec': 'Bytes Out',
-  'services.service.info.metrics.kafka.server.brokerTopic.displayNames.AllTopicsBytesInPerSec': 'Bytes In',
-  'services.service.info.metrics.kafka.server.brokerTopic.displayNames.AllTopicsMessagesInPerSec': 'Messages In',
-  'services.service.info.metrics.kafka.server.ReplicaManager.title': 'Replica Manager',
-  'services.service.info.metrics.kafka.server.ReplicaManager.displayNames.PartitionCount': 'Partitions count',
-  'services.service.info.metrics.kafka.server.ReplicaManager.displayNames.UnderReplicatedPartitions': 'Under Replicated Partitions',
-  'services.service.info.metrics.kafka.server.ReplicaManager.displayNames.LeaderCount': 'Leader Count',
-  'services.service.info.metrics.kafka.controller.ControllerStats.title': 'Controller Status',
-  'services.service.info.metrics.kafka.controller.ControllerStats.displayNames.LeaderElectionRateAndTimeMs': 'Leader Election Rate And Time',
-  'services.service.info.metrics.kafka.controller.ControllerStats.displayNames.UncleanLeaderElectionsPerSec': 'Unclean Leader Election',
-  'services.service.info.metrics.kafka.controller.KafkaController.title': 'Active Controller Count',
-  'services.service.info.metrics.kafka.controller.KafkaController.displayNames.ActiveControllerCount': 'Active Controller Count',
-  'services.service.info.metrics.kafka.log.LogFlushStats.title': 'Log Flush Status',
-  'services.service.info.metrics.kafka.log.LogFlushStats.displayNames.LogFlushRateAndTimeMs': 'Log Flush Rate amd Time',
-  'services.service.info.metrics.kafka.server.ReplicaFetcherManager.title': 'Replica MaxLag',
-  'services.service.info.metrics.kafka.server.ReplicaFetcherManager.displayNames.Replica-MaxLag': 'Replica MaxLag',
-
   'services.service.info.menu.summary':'Summary',
   'services.service.info.menu.configs':'Configs',
   'services.service.info.menu.heatmaps':'Heatmaps',

http://git-wip-us.apache.org/repos/asf/ambari/blob/74eb20a8/ambari-web/app/mixins/common/chart/storm_linear_time.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mixins/common/chart/storm_linear_time.js b/ambari-web/app/mixins/common/chart/storm_linear_time.js
deleted file mode 100644
index 616f470..0000000
--- a/ambari-web/app/mixins/common/chart/storm_linear_time.js
+++ /dev/null
@@ -1,74 +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.
- */
-
-
-var App = require('app');
-
-App.StormLinearTimeChartMixin = Em.Mixin.create({
-  ajaxIndex: 'service.metrics.storm.nimbus',
-  metricsTemplate: 'metrics/storm/nimbus/{0}[{1},{2},{3}]',
-
-  getDataForAjaxRequest: function() {
-    var fromSeconds,
-      toSeconds,
-      index = this.get('isPopup') ? this.get('currentTimeIndex') : this.get('parentView.currentTimeRangeIndex'),
-      customStartTime = this.get('isPopup') ? this.get('customStartTime') : this.get('parentView.customStartTime'),
-      customEndTime = this.get('isPopup') ? this.get('customEndTime') : this.get('parentView.customEndTime');
-    if (index === 8 && !Em.isNone(customStartTime) && !Em.isNone(customEndTime)) {
-      // Custom start and end time is specified by user
-      fromSeconds = customStartTime / 1000;
-      toSeconds = customEndTime / 1000;
-    } else {
-      // Preset time range is specified by user
-      toSeconds = Math.round(App.dateTime() / 1000);
-      fromSeconds = toSeconds - this.get('timeUnitSeconds')
-    }
-    var metricTemplate = [];
-    this.get('stormChartDefinition').forEach(function(chartInfo) {
-      metricTemplate.push(
-        this.get('metricsTemplate').format(chartInfo.field, fromSeconds, toSeconds, 15)
-      );
-    }, this);
-    return {
-      metricsTemplate: metricTemplate.join(',')
-    };
-  },
-
-  getData: function (jsonData) {
-    var dataArray = [],
-      pathKeys = ['metrics','storm','nimbus'],
-      validPath = true;
-    pathKeys.forEach(function(key) {
-      if (!jsonData[key]) {
-        validPath = false;
-      } else {
-        jsonData = jsonData[key];
-      }
-    });
-    if (!validPath) {
-      return dataArray;
-    }
-    this.get('stormChartDefinition').forEach(function(chart){
-      dataArray.push({
-        name: chart.name,
-        data: jsonData[chart.field]
-      });
-    }, this);
-    return dataArray;
-  }
-});

http://git-wip-us.apache.org/repos/asf/ambari/blob/74eb20a8/ambari-web/app/mixins/common/widgets/widget_mixin.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mixins/common/widgets/widget_mixin.js b/ambari-web/app/mixins/common/widgets/widget_mixin.js
index be71fad..df7ff76 100644
--- a/ambari-web/app/mixins/common/widgets/widget_mixin.js
+++ b/ambari-web/app/mixins/common/widgets/widget_mixin.js
@@ -42,7 +42,7 @@ App.WidgetMixin = Ember.Mixin.create({
    * @type {RegExp}
    * @const
    */
-  VALUE_NAME_REGEX: /[\w\.\,\:\=\[\]]+/g,
+  VALUE_NAME_REGEX: /(\w+\s+\w+)?[\w\.\,\:\=\[\]]+/g,
 
   /**
    * @type {string}

http://git-wip-us.apache.org/repos/asf/ambari/blob/74eb20a8/ambari-web/app/views.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views.js b/ambari-web/app/views.js
index 2224393..570f6cd 100644
--- a/ambari-web/app/views.js
+++ b/ambari-web/app/views.js
@@ -285,15 +285,6 @@ require('views/main/service/info/metrics/flume/jvm_threads_runnable');
 require('views/main/service/info/metrics/flume/cpu_user');
 require('views/main/service/info/metrics/flume/flume_metric_graph');
 require('views/main/service/info/metrics/flume/flume_metric_graphs');
-require('views/main/service/info/metrics/storm/slots_number_metric');
-require('views/main/service/info/metrics/storm/executors_metric');
-require('views/main/service/info/metrics/storm/tasks_metric');
-require('views/main/service/info/metrics/storm/topologies_metric');
-require('views/main/service/info/metrics/kafka/broker_topic');
-require('views/main/service/info/metrics/kafka/kafka_controller');
-require('views/main/service/info/metrics/kafka/controller_status');
-require('views/main/service/info/metrics/kafka/replica_manager');
-require('views/main/service/info/metrics/kafka/replica_fetcher');
 
 require('views/main/service/add_view');
 require('views/main/service/reassign_view');

http://git-wip-us.apache.org/repos/asf/ambari/blob/74eb20a8/ambari-web/app/views/common/chart/linear_time.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/chart/linear_time.js b/ambari-web/app/views/common/chart/linear_time.js
index e338e54..c7dd3f9 100644
--- a/ambari-web/app/views/common/chart/linear_time.js
+++ b/ambari-web/app/views/common/chart/linear_time.js
@@ -261,26 +261,6 @@ App.ChartLinearTimeView = Ember.View.extend(App.ExportMetricsMixin, {
   },
 
   /**
-   * Maps server data for Kafka Broker Topic and Controller Status metrics
-   * into series format ready for export to graph and JSON formats
-   * @param jsonData
-   * @returns {Array}
-   */
-  getKafkaData: function (jsonData) {
-    var dataArray = [],
-      template = this.get('seriesTemplate'),
-      data = Em.get(jsonData, template.path);
-    for (var name in data) {
-      var displayName = template.displayName(name);
-      dataArray.push({
-        name: displayName,
-        data: Em.get(data, name + '.1MinuteRate')
-      });
-    }
-    return dataArray;
-  },
-
-  /**
    * Function to map data into graph series
    * @param jsonData
    * @returns {Array}

http://git-wip-us.apache.org/repos/asf/ambari/blob/74eb20a8/ambari-web/app/views/main/service/info/metrics/kafka/broker_topic.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/kafka/broker_topic.js b/ambari-web/app/views/main/service/info/metrics/kafka/broker_topic.js
deleted file mode 100644
index d584181..0000000
--- a/ambari-web/app/views/main/service/info/metrics/kafka/broker_topic.js
+++ /dev/null
@@ -1,50 +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.
- */
-
-var App = require('app');
-
-/**
- * @class
- *
- * This is a view for showing Kafka_BrokerTopicMetrics
- *
- * @extends App.ChartLinearTimeView
- * @extends Ember.Object
- * @extends Ember.View
- */
-App.ChartServiceMetricsKafka_BrokerTopicMetrics = App.ChartLinearTimeView.extend({
-  id: "service-metrics-kafka-broker-topic-metrics",
-  title: Em.I18n.t('services.service.info.metrics.kafka.server.brokerTopic.title'),
-  renderer: 'line',
-  ajaxIndex: 'service.metrics.kafka.broker.topic',
-
-  seriesTemplate: {
-    path: 'metrics.kafka.server.BrokerTopicMetrics',
-    displayName: function (name) {
-      var displayNameMap = {
-        AllTopicsBytesOutPerSec: Em.I18n.t('services.service.info.metrics.kafka.server.brokerTopic.displayNames.AllTopicsBytesOutPerSec'),
-        AllTopicsBytesInPerSec: Em.I18n.t('services.service.info.metrics.kafka.server.brokerTopic.displayNames.AllTopicsBytesInPerSec'),
-        AllTopicsMessagesInPerSec: Em.I18n.t('services.service.info.metrics.kafka.server.brokerTopic.displayNames.AllTopicsMessagesInPerSec')
-      };
-      return displayNameMap[name];
-    }
-  },
-
-  getData: function (jsonData) {
-    return this.getKafkaData(jsonData);
-  }
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/74eb20a8/ambari-web/app/views/main/service/info/metrics/kafka/controller_status.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/kafka/controller_status.js b/ambari-web/app/views/main/service/info/metrics/kafka/controller_status.js
deleted file mode 100644
index 8610968..0000000
--- a/ambari-web/app/views/main/service/info/metrics/kafka/controller_status.js
+++ /dev/null
@@ -1,49 +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.
- */
-
-var App = require('app');
-
-/**
- * @class
- *
- * This is a view for showing Kafka_ControllerStatus
- *
- * @extends App.ChartLinearTimeView
- * @extends Ember.Object
- * @extends Ember.View
- */
-App.ChartServiceMetricsKafka_ControllerStatus = App.ChartLinearTimeView.extend({
-  id: "service-metrics-kafka-controler-status-metrics",
-  title: Em.I18n.t('services.service.info.metrics.kafka.controller.ControllerStats.title'),
-  renderer: 'line',
-  ajaxIndex: 'service.metrics.kafka.controller.ControllerStats',
-
-  seriesTemplate: {
-    path: 'metrics.kafka.controller.ControllerStats',
-    displayName: function (name) {
-      var displayNameMap = {
-        LeaderElectionRateAndTimeMs: Em.I18n.t('services.service.info.metrics.kafka.controller.ControllerStats.displayNames.LeaderElectionRateAndTimeMs'),
-        UncleanLeaderElectionsPerSec: Em.I18n.t('services.service.info.metrics.kafka.controller.ControllerStats.displayNames.UncleanLeaderElectionsPerSec')
-      };
-      return displayNameMap[name];
-    }
-  },
-
-  getData: function (jsonData) {
-    return this.getKafkaData(jsonData);
-  }
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/74eb20a8/ambari-web/app/views/main/service/info/metrics/kafka/kafka_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/kafka/kafka_controller.js b/ambari-web/app/views/main/service/info/metrics/kafka/kafka_controller.js
deleted file mode 100644
index 2f4fdd1..0000000
--- a/ambari-web/app/views/main/service/info/metrics/kafka/kafka_controller.js
+++ /dev/null
@@ -1,41 +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.
- */
-
-var App = require('app');
-
-/**
- * @class
- *
- * This is a view for showing Kafka_Controller
- *
- * @extends App.ChartLinearTimeView
- * @extends Ember.Object
- * @extends Ember.View
- */
-App.ChartServiceMetricsKafka_Controller = App.ChartLinearTimeView.extend({
-  id: "service-metrics-kafka-controller-metrics",
-  title: Em.I18n.t('services.service.info.metrics.kafka.controller.KafkaController.title'),
-  renderer: 'line',
-  ajaxIndex: 'service.metrics.kafka.controller.KafkaController',
-
-  seriesTemplate: {
-    path: 'metrics.kafka.controller.KafkaController',
-    displayName: function () {
-      return Em.I18n.t('services.service.info.metrics.kafka.controller.KafkaController.displayNames.ActiveControllerCount');
-    }
-  }
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/74eb20a8/ambari-web/app/views/main/service/info/metrics/kafka/replica_fetcher.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/kafka/replica_fetcher.js b/ambari-web/app/views/main/service/info/metrics/kafka/replica_fetcher.js
deleted file mode 100644
index 7068c17..0000000
--- a/ambari-web/app/views/main/service/info/metrics/kafka/replica_fetcher.js
+++ /dev/null
@@ -1,41 +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.
- */
-
-var App = require('app');
-
-/**
- * @class
- *
- * This is a view for showing Kafka_ReplicaFetcher
- *
- * @extends App.ChartLinearTimeView
- * @extends Ember.Object
- * @extends Ember.View
- */
-App.ChartServiceMetricsKafka_ReplicaFetcher = App.ChartLinearTimeView.extend({
-  id: "service-metrics-kafka-replica-fetcher-metrics",
-  title: Em.I18n.t('services.service.info.metrics.kafka.server.ReplicaFetcherManager.title'),
-  renderer: 'line',
-  ajaxIndex: 'service.metrics.kafka.server.ReplicaFetcherManager',
-
-  seriesTemplate: {
-    path: 'metrics.kafka.server.ReplicaFetcherManager',
-    displayName: function () {
-      return Em.I18n.t('services.service.info.metrics.kafka.server.ReplicaFetcherManager.displayNames.Replica-MaxLag');
-    }
-  }
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/74eb20a8/ambari-web/app/views/main/service/info/metrics/kafka/replica_manager.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/kafka/replica_manager.js b/ambari-web/app/views/main/service/info/metrics/kafka/replica_manager.js
deleted file mode 100644
index 7452718..0000000
--- a/ambari-web/app/views/main/service/info/metrics/kafka/replica_manager.js
+++ /dev/null
@@ -1,46 +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.
- */
-
-var App = require('app');
-
-/**
- * @class
- *
- * This is a view for showing Kafka_BrokerTopicMetrics
- *
- * @extends App.ChartLinearTimeView
- * @extends Ember.Object
- * @extends Ember.View
- */
-App.ChartServiceMetricsKafka_ReplicaManager = App.ChartLinearTimeView.extend({
-  id: "service-metrics-kafka-replica-manager-metrics",
-  title: Em.I18n.t('services.service.info.metrics.kafka.server.ReplicaManager.title'),
-  renderer: 'line',
-  ajaxIndex: 'service.metrics.kafka.server.ReplicaManager',
-
-  seriesTemplate: {
-    path: 'metrics.kafka.server.ReplicaManager',
-    displayName: function (name) {
-      var displayNameMap = {
-        LeaderCount: Em.I18n.t('services.service.info.metrics.kafka.server.ReplicaManager.displayNames.LeaderCount'),
-        UnderReplicatedPartitions: Em.I18n.t('services.service.info.metrics.kafka.server.ReplicaManager.displayNames.UnderReplicatedPartitions'),
-        PartitionCount: Em.I18n.t('services.service.info.metrics.kafka.server.ReplicaManager.displayNames.PartitionCount')
-      };
-      return displayNameMap[name];
-    }
-  }
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/74eb20a8/ambari-web/app/views/main/service/info/metrics/storm/executors_metric.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/storm/executors_metric.js b/ambari-web/app/views/main/service/info/metrics/storm/executors_metric.js
deleted file mode 100644
index 8eea33a..0000000
--- a/ambari-web/app/views/main/service/info/metrics/storm/executors_metric.js
+++ /dev/null
@@ -1,34 +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.
- */
-
-var App = require('app');
-require('mixins/common/chart/storm_linear_time');
-
-App.ChartServiceMetricsSTORM_Executors = App.ChartLinearTimeView.extend(App.StormLinearTimeChartMixin, {
-  id: "service-metrics-storm-executors",
-  title: Em.I18n.t('services.storm.executors.metrics.title'),
-  renderer: 'line',
-  yAxisFormatter: App.ChartLinearTimeView.DefaultFormatter,
-
-  stormChartDefinition: [
-    {
-      name: Em.I18n.t('services.storm.executors.metrics.total'),
-      field: 'totalexecutors'
-    }
-  ]
-
-});

http://git-wip-us.apache.org/repos/asf/ambari/blob/74eb20a8/ambari-web/app/views/main/service/info/metrics/storm/slots_number_metric.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/storm/slots_number_metric.js b/ambari-web/app/views/main/service/info/metrics/storm/slots_number_metric.js
deleted file mode 100644
index 543508b..0000000
--- a/ambari-web/app/views/main/service/info/metrics/storm/slots_number_metric.js
+++ /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.
- */
-
-var App = require('app');
-require('mixins/common/chart/storm_linear_time');
-
-App.ChartServiceMetricsSTORM_SlotsNumber = App.ChartLinearTimeView.extend(App.StormLinearTimeChartMixin, {
-  id: "service-metrics-storm-supervisor-allocated",
-  title: Em.I18n.t('services.storm.slots.metrics.title'),
-  renderer: 'line',
-  yAxisFormatter: App.ChartLinearTimeView.DefaultFormatter,
-
-  stormChartDefinition: [
-    {
-      name: Em.I18n.t('services.storm.slots.metrics.total'),
-      field: 'totalslots'
-    },
-    {
-      name: Em.I18n.t('services.storm.slots.metrics.free'),
-      field: 'freeslots'
-    },
-    {
-      name: Em.I18n.t('services.storm.slots.metrics.used'),
-      field: 'usedslots'
-    }
-  ]
-
-});

http://git-wip-us.apache.org/repos/asf/ambari/blob/74eb20a8/ambari-web/app/views/main/service/info/metrics/storm/tasks_metric.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/storm/tasks_metric.js b/ambari-web/app/views/main/service/info/metrics/storm/tasks_metric.js
deleted file mode 100644
index a70d358..0000000
--- a/ambari-web/app/views/main/service/info/metrics/storm/tasks_metric.js
+++ /dev/null
@@ -1,34 +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.
- */
-
-var App = require('app');
-require('mixins/common/chart/storm_linear_time');
-
-App.ChartServiceMetricsSTORM_Tasks = App.ChartLinearTimeView.extend(App.StormLinearTimeChartMixin, {
-  id: "service-metrics-storm-tasks",
-  title: Em.I18n.t('services.storm.tasks.metrics.title'),
-  renderer: 'line',
-  yAxisFormatter: App.ChartLinearTimeView.DefaultFormatter,
-
-  stormChartDefinition: [
-    {
-      name: Em.I18n.t('services.storm.tasks.metrics.total'),
-      field: 'totaltasks'
-    }
-  ]
-
-});

http://git-wip-us.apache.org/repos/asf/ambari/blob/74eb20a8/ambari-web/app/views/main/service/info/metrics/storm/topologies_metric.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/storm/topologies_metric.js b/ambari-web/app/views/main/service/info/metrics/storm/topologies_metric.js
deleted file mode 100644
index d831453..0000000
--- a/ambari-web/app/views/main/service/info/metrics/storm/topologies_metric.js
+++ /dev/null
@@ -1,34 +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.
- */
-
-var App = require('app');
-require('mixins/common/chart/storm_linear_time');
-
-App.ChartServiceMetricsSTORM_Topologies = App.ChartLinearTimeView.extend(App.StormLinearTimeChartMixin, {
-  id: "service-metrics-storm-topologies",
-  title: Em.I18n.t('services.storm.topology.metrics.title'),
-  renderer: 'line',
-  yAxisFormatter: App.ChartLinearTimeView.DefaultFormatter,
-
-  stormChartDefinition: [
-    {
-      name: Em.I18n.t('services.storm.topology.metrics.total'),
-      field: 'topologies'
-    }
-  ]
-
-});

http://git-wip-us.apache.org/repos/asf/ambari/blob/74eb20a8/ambari-web/test/mixins/common/chart/storm_linear_time_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/mixins/common/chart/storm_linear_time_test.js b/ambari-web/test/mixins/common/chart/storm_linear_time_test.js
deleted file mode 100644
index 9a573a4..0000000
--- a/ambari-web/test/mixins/common/chart/storm_linear_time_test.js
+++ /dev/null
@@ -1,80 +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.
- */
-
-var App = require('app');
-
-require('mixins/common/chart/storm_linear_time');
-
-var slt,
-  template,
-  series,
-  jsonDataFalse = {
-    metrics: {
-      id: 'metrics'
-    }
-  },
-  jsonDataTrue = {
-    metrics: {
-      storm: {
-        nimbus: {
-          name: 'nimbus'
-        }
-      }
-    }
-  };
-
-describe('App.StormLinearTimeChartMixin', function () {
-
-  beforeEach(function () {
-    slt = Em.Object.create(App.StormLinearTimeChartMixin, {
-      stormChartDefinition: [
-        {
-          field: 'name',
-          name: 'nimbus'
-        }
-      ]
-    });
-  });
-
-  describe('#getDataForAjaxRequest', function () {
-    it('should take data from stormChartDefinition', function () {
-      template = slt.getDataForAjaxRequest().metricsTemplate;
-      expect(template).to.contain('metrics');
-      expect(template).to.contain('storm');
-      expect(template).to.contain('nimbus');
-    });
-  });
-
-  describe('#getData', function () {
-    it('should be empty', function () {
-      expect(slt.getData(jsonDataFalse)).to.be.empty;
-    });
-    it('should take one element from data', function () {
-      slt.set('transformData', function (data, name) {
-        return name + ': ' + JSON.stringify(data);
-      });
-      series = slt.getData(jsonDataTrue);
-      expect(series).to.have.length(1);
-      expect(series[0]).to.eql({
-        name: 'nimbus',
-        data: 'nimbus'
-      });
-    });
-  });
-
-});


[09/12] ambari git commit: AMBARI-14954 Adding HiveServer2 should not change "hadoop.proxyuser.webhcat.hosts" property. (ababiichuk)

Posted by nc...@apache.org.
AMBARI-14954 Adding HiveServer2 should not change "hadoop.proxyuser.webhcat.hosts" property. (ababiichuk)


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

Branch: refs/heads/branch-dev-patch-upgrade
Commit: 7051ef64e76b93ddfe7b7eb996b8e33961af406f
Parents: 91897d9
Author: ababiichuk <ab...@hortonworks.com>
Authored: Mon Feb 8 14:38:26 2016 +0200
Committer: ababiichuk <ab...@hortonworks.com>
Committed: Mon Feb 8 14:43:13 2016 +0200

----------------------------------------------------------------------
 ambari-web/app/controllers/main/host/details.js | 44 +++++++--
 .../configs/add_component_config_initializer.js | 13 ++-
 .../test/controllers/main/host/details_test.js  | 97 ++++++++++++++------
 3 files changed, 115 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/7051ef64/ambari-web/app/controllers/main/host/details.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/host/details.js b/ambari-web/app/controllers/main/host/details.js
index a161342..bbd1bf7 100644
--- a/ambari-web/app/controllers/main/host/details.js
+++ b/ambari-web/app/controllers/main/host/details.js
@@ -419,7 +419,7 @@ App.MainHostDetailsController = Em.Controller.extend(App.SupportClientConfigsDow
       this.loadConfigs('loadHiveConfigs');
     } else if (data.componentName == 'WEBHCAT_SERVER') {
       this.set('deleteWebHCatServer', true);
-      this.loadConfigs('loadHiveConfigs');
+      this.loadConfigs('loadWebHCatConfigs');
     } else if (data.componentName == 'HIVE_SERVER') {
       this.set('deleteHiveServer', true);
       this.loadConfigs('loadHiveConfigs');
@@ -578,7 +578,7 @@ App.MainHostDetailsController = Em.Controller.extend(App.SupportClientConfigsDow
       case 'WEBHCAT_SERVER':
         returnFunc = App.showConfirmationPopup(function () {
           self.set('webhcatServerHost', hostName);
-          self.loadConfigs("loadHiveConfigs");
+          self.loadConfigs("loadWebHCatConfigs");
         }, Em.I18n.t('hosts.host.addComponent.' + componentName) + manualKerberosWarning);
         break;
       case 'NIMBUS':
@@ -851,6 +851,28 @@ App.MainHostDetailsController = Em.Controller.extend(App.SupportClientConfigsDow
    * @param {object} data
    * @method loadHiveConfigs
    */
+  loadWebHCatConfigs: function (data) {
+    return App.ajax.send({
+      name: 'admin.get.all_configurations',
+      sender: this,
+      data: {
+        webHCat: true,
+        urlParams: [
+          '(type=hive-site&tag=' + data.Clusters.desired_configs['hive-site'].tag + ')',
+          '(type=webhcat-site&tag=' + data.Clusters.desired_configs['webhcat-site'].tag + ')',
+          '(type=hive-env&tag=' + data.Clusters.desired_configs['hive-env'].tag + ')',
+          '(type=core-site&tag=' + data.Clusters.desired_configs['core-site'].tag + ')'
+        ].join('|')
+      },
+      success: 'onLoadHiveConfigs'
+    });
+  },
+
+  /**
+   * Success callback for load configs request
+   * @param {object} data
+   * @method loadHiveConfigs
+   */
   loadHiveConfigs: function (data) {
     return App.ajax.send({
       name: 'admin.get.all_configurations',
@@ -870,21 +892,24 @@ App.MainHostDetailsController = Em.Controller.extend(App.SupportClientConfigsDow
   /**
    * update and save Hive related configs to server
    * @param {object} data
+   * @param {object} opt
+   * @param {object} params
    * @method onLoadHiveConfigs
    */
-  onLoadHiveConfigs: function (data) {
+  onLoadHiveConfigs: function (data, opt, params) {
     var hiveMetastoreHost = this.get('hiveMetastoreHost');
     var webhcatServerHost = this.get('webhcatServerHost');
     var port = "";
     var configs = {};
     var attributes = {};
+    var userSetup = {};
     var localDB = {
       masterComponentHosts: this.getHiveHosts()
     };
     var dependencies = {
       hiveMetastorePort: ""
     };
-    var initializer = App.AddHiveComponentsInitializer;
+    var initializer = params.webHCat ? App.AddWebHCatComponentsInitializer : App.AddHiveComponentsInitializer;
     data.items.forEach(function (item) {
       configs[item.type] = item.properties;
       attributes[item.type] = item.properties_attributes || {};
@@ -896,10 +921,13 @@ App.MainHostDetailsController = Em.Controller.extend(App.SupportClientConfigsDow
 
     dependencies.hiveMetastorePort = port;
 
-    initializer.setup({
-      hiveUser: configs['hive-env']['hive_user'],
-      webhcatUser: configs['hive-env']['webhcat_user']
-    });
+    if (params.webHCat) {
+      userSetup.webhcatUser = configs['hive-env']['webhcat_user'];
+    } else {
+      userSetup.hiveUser = configs['hive-env']['hive_user'];
+    }
+
+    initializer.setup(userSetup);
 
     ['hive-site', 'webhcat-site', 'hive-env', 'core-site'].forEach(function(fileName) {
       if (configs[fileName]) {

http://git-wip-us.apache.org/repos/asf/ambari/blob/7051ef64/ambari-web/app/utils/configs/add_component_config_initializer.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/configs/add_component_config_initializer.js b/ambari-web/app/utils/configs/add_component_config_initializer.js
index 5bbe02c..466f7b1 100644
--- a/ambari-web/app/utils/configs/add_component_config_initializer.js
+++ b/ambari-web/app/utils/configs/add_component_config_initializer.js
@@ -298,7 +298,18 @@ App.AddHiveComponentsInitializer = App.AddComponentConfigInitializer.create({
   initializeForProperties: [
     'hive.metastore.uris',
     'templeton.hive.properties',
-    'hadoop.proxyuser.{{webhcatUser}}.hosts',
     'hadoop.proxyuser.{{hiveUser}}.hosts'
   ]
 });
+
+/**
+ * WebHCat service add/remove components initializer.
+ * @instance App.AddComponentConfigInitializer
+ */
+App.AddWebHCatComponentsInitializer = App.AddComponentConfigInitializer.create({
+  initializeForProperties: [
+    'hive.metastore.uris',
+    'templeton.hive.properties',
+    'hadoop.proxyuser.{{webhcatUser}}.hosts'
+  ]
+});

http://git-wip-us.apache.org/repos/asf/ambari/blob/7051ef64/ambari-web/test/controllers/main/host/details_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/host/details_test.js b/ambari-web/test/controllers/main/host/details_test.js
index 9bdd64c..c2ad8f2 100644
--- a/ambari-web/test/controllers/main/host/details_test.js
+++ b/ambari-web/test/controllers/main/host/details_test.js
@@ -3872,15 +3872,13 @@ describe('App.MainHostDetailsController', function () {
               ['hive.metastore.uris', 'thrift://host1:9090']
             ]),
             makeFileNameProps('hive-env', [
-              ['hive_user', 'hive_user_val'],
-              ['webhcat_user', 'webhcat_user_val']
+              ['hive_user', 'hive_user_val']
             ]),
             makeFileNameProps('webhcat-site', [
               ['templeton.hive.properties', 'hive.metastore.local=false,hive.metastore.uris=thrift://host1:9083,hive.metastore.sasl.enabled=false']
             ]),
             makeFileNameProps('core-site', [
-              ['hadoop.proxyuser.hive_user_val.hosts', 'host1'],
-              ['hadoop.proxyuser.webhcat_user_val.hosts', 'host1']
+              ['hadoop.proxyuser.hive_user_val.hosts', 'host1']
             ])
           ]
         },
@@ -3896,8 +3894,7 @@ describe('App.MainHostDetailsController', function () {
                   ['templeton.hive.properties', 'hive.metastore.local=false,hive.metastore.uris=thrift://host1:9090,hive.metastore.sasl.enabled=false']
                 ]).properties,
                 "hive-env": makeFileNameProps('hive-env', [
-                  ['hive_user', 'hive_user_val'],
-                  ['webhcat_user', 'webhcat_user_val']
+                  ['hive_user', 'hive_user_val']
                 ]).properties
               },
               "properties_attributes": makeEmptyPropAttrs("hive-site", "webhcat-site", "hive-env")
@@ -3905,8 +3902,7 @@ describe('App.MainHostDetailsController', function () {
             {
               "properties": {
                 "core-site": makeFileNameProps('core-site', [
-                  ['hadoop.proxyuser.hive_user_val.hosts', 'host1,host2'],
-                  ['hadoop.proxyuser.webhcat_user_val.hosts', 'host1,host2']
+                  ['hadoop.proxyuser.hive_user_val.hosts', 'host1,host2']
                 ]).properties
               },
               "properties_attributes": makeEmptyPropAttrs("core-site")
@@ -3925,15 +3921,13 @@ describe('App.MainHostDetailsController', function () {
               ['hive.metastore.uris', 'thrift://host1']
             ]),
             makeFileNameProps('hive-env', [
-              ['hive_user', 'hive_user_val'],
-              ['webhcat_user', 'webhcat_user_val']
+              ['hive_user', 'hive_user_val']
             ]),
             makeFileNameProps('webhcat-site', [
               ['templeton.hive.properties', 'hive.metastore.local=false,hive.metastore.uris=thrift://host1:9083,hive.metastore.sasl.enabled=false']
             ]),
             makeFileNameProps('core-site', [
-              ['hadoop.proxyuser.hive_user_val.hosts', 'host1'],
-              ['hadoop.proxyuser.webhcat_user_val.hosts', 'host1']
+              ['hadoop.proxyuser.hive_user_val.hosts', 'host1']
             ])
           ]
         },
@@ -3949,8 +3943,7 @@ describe('App.MainHostDetailsController', function () {
                   ['templeton.hive.properties', 'hive.metastore.local=false,hive.metastore.uris=thrift://host1:9083\\,thrift://host2:9083\\,thrift://host3:9083,hive.metastore.sasl.enabled=false']
                 ]).properties,
                 "hive-env": makeFileNameProps('hive-env', [
-                  ['hive_user', 'hive_user_val'],
-                  ['webhcat_user', 'webhcat_user_val']
+                  ['hive_user', 'hive_user_val']
                 ]).properties
               },
               "properties_attributes": makeEmptyPropAttrs("hive-site", "webhcat-site", "hive-env")
@@ -3958,8 +3951,7 @@ describe('App.MainHostDetailsController', function () {
             {
               "properties": {
                 "core-site": makeFileNameProps('core-site', [
-                  ['hadoop.proxyuser.hive_user_val.hosts', 'host1,host2,host3'],
-                  ['hadoop.proxyuser.webhcat_user_val.hosts', 'host1,host2,host3']
+                  ['hadoop.proxyuser.hive_user_val.hosts', 'host1,host2,host3']
                 ]).properties
               },
               "properties_attributes": makeEmptyPropAttrs("core-site")
@@ -3979,15 +3971,13 @@ describe('App.MainHostDetailsController', function () {
               ['hive.metastore.uris', 'thrift://host1:1111']
             ]),
             makeFileNameProps('hive-env', [
-              ['hive_user', 'hive_user_val'],
-              ['webhcat_user', 'webhcat_user_val']
+              ['hive_user', 'hive_user_val']
             ]),
             makeFileNameProps('webhcat-site', [
               ['templeton.hive.properties', 'hive.metastore.local=false,hive.metastore.uris=thrift://host1:9083,hive.metastore.sasl.enabled=false']
             ]),
             makeFileNameProps('core-site', [
-              ['hadoop.proxyuser.hive_user_val.hosts', 'host1'],
-              ['hadoop.proxyuser.webhcat_user_val.hosts', 'host1']
+              ['hadoop.proxyuser.hive_user_val.hosts', 'host1']
             ])
           ]
         },
@@ -4003,8 +3993,7 @@ describe('App.MainHostDetailsController', function () {
                   ['templeton.hive.properties', 'hive.metastore.local=false,hive.metastore.uris=thrift://host1:1111\\,thrift://host2:1111\\,thrift://host3:1111,hive.metastore.sasl.enabled=false']
                 ]).properties,
                 "hive-env": makeFileNameProps('hive-env', [
-                  ['hive_user', 'hive_user_val'],
-                  ['webhcat_user', 'webhcat_user_val']
+                  ['hive_user', 'hive_user_val']
                 ]).properties
               },
               "properties_attributes": makeEmptyPropAttrs("hive-site", "webhcat-site", "hive-env")
@@ -4012,8 +4001,7 @@ describe('App.MainHostDetailsController', function () {
             {
               "properties": {
                 "core-site": makeFileNameProps('core-site', [
-                  ['hadoop.proxyuser.hive_user_val.hosts', 'host1,host2,host3'],
-                  ['hadoop.proxyuser.webhcat_user_val.hosts', 'host1,host2,host3']
+                  ['hadoop.proxyuser.hive_user_val.hosts', 'host1,host2,host3']
                 ]).properties
               },
               "properties_attributes": makeEmptyPropAttrs("core-site")
@@ -4029,25 +4017,24 @@ describe('App.MainHostDetailsController', function () {
           webhcatServerHost: '',
           hiveMetastoreHost: ''
         },
+        webHCat: true,
         configs: {
           items: [
             makeFileNameProps('hive-site', [
               ['hive.metastore.uris', 'thrift://host1:1111']
             ]),
             makeFileNameProps('hive-env', [
-              ['hive_user', 'hive_user_val'],
               ['webhcat_user', 'webhcat_user_val']
             ]),
             makeFileNameProps('webhcat-site', [
               ['templeton.hive.properties', 'hive.metastore.local=false,hive.metastore.uris=thrift://host1:9083,hive.metastore.sasl.enabled=false']
             ]),
             makeFileNameProps('core-site', [
-              ['hadoop.proxyuser.hive_user_val.hosts', 'host1'],
               ['hadoop.proxyuser.webhcat_user_val.hosts', 'host1']
             ])
           ]
         },
-        m: 'Components: {0}, appropriate configs should be changed, thrift port should be default 9083, Controller Stubs: {1}',
+        m: 'Change WebHCat proxyuser',
         e: {
           configs: [
             {
@@ -4059,7 +4046,6 @@ describe('App.MainHostDetailsController', function () {
                   ['templeton.hive.properties', 'hive.metastore.local=false,hive.metastore.uris=thrift://host1:1111\\,thrift://host3:1111,hive.metastore.sasl.enabled=false']
                 ]).properties,
                 "hive-env": makeFileNameProps('hive-env', [
-                  ['hive_user', 'hive_user_val'],
                   ['webhcat_user', 'webhcat_user_val']
                 ]).properties
               },
@@ -4068,7 +4054,6 @@ describe('App.MainHostDetailsController', function () {
             {
               "properties": {
                 "core-site": makeFileNameProps('core-site', [
-                  ['hadoop.proxyuser.hive_user_val.hosts', 'host1,host3'],
                   ['hadoop.proxyuser.webhcat_user_val.hosts', 'host1,host3']
                 ]).properties
               },
@@ -4076,6 +4061,58 @@ describe('App.MainHostDetailsController', function () {
             },
           ]
         }
+      },
+      {
+        hostComponentModel: makeHostComponentModel(['HIVE_SERVER', 'HIVE_METASTORE', 'WEBHCAT_SERVER'], [['host1', 'host2'], ['host1','host2'], ['host1', 'host3']]),
+        ctrlStubs: {
+          fromDeleteHost: true,
+          'content.hostName': 'host2',
+          webhcatServerHost: '',
+          hiveMetastoreHost: ''
+        },
+        configs: {
+          items: [
+            makeFileNameProps('hive-site', [
+              ['hive.metastore.uris', 'thrift://host1:1111']
+            ]),
+            makeFileNameProps('hive-env', [
+              ['hive_user', 'hive_user_val']
+            ]),
+            makeFileNameProps('webhcat-site', [
+              ['templeton.hive.properties', 'hive.metastore.local=false,hive.metastore.uris=thrift://host1:9083,hive.metastore.sasl.enabled=false']
+            ]),
+            makeFileNameProps('core-site', [
+              ['hadoop.proxyuser.hive_user_val.hosts', 'host1']
+            ])
+          ]
+        },
+        m: 'Components: {0}, appropriate configs should be changed, thrift port should be default 9083, Controller Stubs: {1}',
+        e: {
+          configs: [
+            {
+              "properties": {
+                "hive-site": makeFileNameProps('hive-site', [
+                  ['hive.metastore.uris', 'thrift://host1:1111,thrift://host3:1111']
+                ]).properties,
+                "webhcat-site": makeFileNameProps('webhcat-site', [
+                  ['templeton.hive.properties', 'hive.metastore.local=false,hive.metastore.uris=thrift://host1:1111\\,thrift://host3:1111,hive.metastore.sasl.enabled=false']
+                ]).properties,
+                "hive-env": makeFileNameProps('hive-env', [
+                  ['hive_user', 'hive_user_val']
+                ]).properties
+              },
+              "properties_attributes": makeEmptyPropAttrs("hive-site", "webhcat-site", "hive-env")
+            },
+            {
+              "properties": {
+                "core-site": makeFileNameProps('core-site', [
+                  ['hadoop.proxyuser.hive_user_val.hosts', 'host1,host3']
+                ]).properties
+              },
+              "properties_attributes": makeEmptyPropAttrs("core-site")
+            }
+          ]
+        }
       }
     ];
 
@@ -4108,7 +4145,7 @@ describe('App.MainHostDetailsController', function () {
         });
 
         it('saveConfigsBatch is called with correct configs', function () {
-          controller.onLoadHiveConfigs(test.configs);
+          controller.onLoadHiveConfigs(test.configs, null, {webHCat: test.webHCat});
           var configs = controller.saveConfigsBatch.args[0];
           var properties = configs[0];
           expect(properties).to.be.eql(test.e.configs);


[07/12] ambari git commit: AMBARI-14953. Support Ambari Server/Agent and HDP install on Amazon Linux. (aonishuk)

Posted by nc...@apache.org.
AMBARI-14953. Support Ambari Server/Agent and HDP install on Amazon Linux. (aonishuk)


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

Branch: refs/heads/branch-dev-patch-upgrade
Commit: 268ae5b62681f5f41b18da4164d570bd6690d411
Parents: 74eb20a
Author: Andrew Onishuk <ao...@hortonworks.com>
Authored: Mon Feb 8 14:18:57 2016 +0200
Committer: Andrew Onishuk <ao...@hortonworks.com>
Committed: Mon Feb 8 14:18:57 2016 +0200

----------------------------------------------------------------------
 ambari-agent/conf/unix/ambari-agent             |  8 +++---
 ambari-agent/conf/unix/install-helper.sh        | 26 +++++++++++++++----
 ambari-agent/src/packages/tarball/all.xml       |  5 ----
 .../src/main/python/ambari_commons/os_check.py  | 27 +++++++++++++++++---
 .../ambari_commons/resources/os_family.json     | 10 +++++++-
 .../core/providers/__init__.py                  |  3 +++
 .../libraries/providers/__init__.py             |  3 +++
 ambari-common/src/main/unix/ambari-python-wrap  |  8 +++---
 .../HDP/2.0.1/services/GANGLIA/metainfo.xml     |  4 +--
 .../stacks/HDP/2.0.1/services/HDFS/metainfo.xml |  2 +-
 .../stacks/HDP/2.0.1/services/HIVE/metainfo.xml |  4 +--
 .../HDP/2.0.1/services/OOZIE/metainfo.xml       |  2 +-
 .../HDP/2.0.5/services/GANGLIA/metainfo.xml     |  4 +--
 .../stacks/HDP/2.0.5/services/HDFS/metainfo.xml |  2 +-
 .../stacks/HDP/2.0.5/services/HIVE/metainfo.xml |  4 +--
 .../HDP/2.0.5/services/OOZIE/metainfo.xml       |  2 +-
 .../stacks/HDP/2.0.7/services/HIVE/metainfo.xml |  4 +--
 .../2.1.1/services/AMBARI_METRICS/metainfo.xml  |  2 +-
 ambari-server/conf/unix/ambari-env.sh           |  1 +
 ambari-server/conf/unix/install-helper.sh       | 24 ++++++++++++++---
 ambari-server/sbin/ambari-server                |  7 ++---
 ambari-server/src/main/assemblies/server.xml    |  5 ----
 .../src/main/python/ambari_server/utils.py      |  5 ++--
 .../AMBARI_METRICS/0.1.0/metainfo.xml           |  2 +-
 .../common-services/GANGLIA/3.5.0/metainfo.xml  |  4 +--
 .../common-services/HDFS/2.1.0.2.0/metainfo.xml |  2 +-
 .../HIVE/0.12.0.2.0/metainfo.xml                |  4 +--
 .../KERBEROS/1.10.3-10/metainfo.xml             |  2 +-
 .../OOZIE/4.0.0.2.0/metainfo.xml                |  2 +-
 .../stacks/HDP/2.1/services/HIVE/metainfo.xml   |  4 +--
 .../stacks/HDP/2.1/services/OOZIE/metainfo.xml  |  2 +-
 .../resources/stacks/HDP/2.2/repos/repoinfo.xml | 12 +++++++++
 .../stacks/HDP/2.2/services/FALCON/metainfo.xml |  2 +-
 .../stacks/HDP/2.2/services/FLUME/metainfo.xml  |  2 +-
 .../stacks/HDP/2.2/services/HBASE/metainfo.xml  |  2 +-
 .../stacks/HDP/2.2/services/HDFS/metainfo.xml   |  2 +-
 .../stacks/HDP/2.2/services/HIVE/metainfo.xml   |  6 ++---
 .../stacks/HDP/2.2/services/KAFKA/metainfo.xml  |  2 +-
 .../stacks/HDP/2.2/services/KNOX/metainfo.xml   |  2 +-
 .../stacks/HDP/2.2/services/OOZIE/metainfo.xml  |  2 +-
 .../stacks/HDP/2.2/services/PIG/metainfo.xml    |  2 +-
 .../stacks/HDP/2.2/services/RANGER/metainfo.xml |  2 +-
 .../stacks/HDP/2.2/services/SLIDER/metainfo.xml |  2 +-
 .../stacks/HDP/2.2/services/SPARK/metainfo.xml  |  2 +-
 .../stacks/HDP/2.2/services/SQOOP/metainfo.xml  |  2 +-
 .../stacks/HDP/2.2/services/STORM/metainfo.xml  |  2 +-
 .../stacks/HDP/2.2/services/TEZ/metainfo.xml    |  2 +-
 .../stacks/HDP/2.2/services/YARN/metainfo.xml   |  4 +--
 .../HDP/2.3.ECS/services/ZOOKEEPER/metainfo.xml |  2 +-
 .../resources/stacks/HDP/2.3/repos/repoinfo.xml | 12 +++++++++
 .../HDP/2.3/services/ACCUMULO/metainfo.xml      |  2 +-
 .../stacks/HDP/2.3/services/ATLAS/metainfo.xml  |  2 +-
 .../stacks/HDP/2.3/services/HDFS/metainfo.xml   |  2 +-
 .../stacks/HDP/2.3/services/HIVE/metainfo.xml   |  6 ++---
 .../stacks/HDP/2.3/services/OOZIE/metainfo.xml  |  2 +-
 .../stacks/HDP/2.3/services/PIG/metainfo.xml    |  2 +-
 .../HDP/2.3/services/RANGER_KMS/metainfo.xml    |  2 +-
 .../HDP/2.3/services/ZOOKEEPER/metainfo.xml     |  2 +-
 .../resources/stacks/HDP/2.4/repos/repoinfo.xml | 12 +++++++++
 59 files changed, 188 insertions(+), 92 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-agent/conf/unix/ambari-agent
----------------------------------------------------------------------
diff --git a/ambari-agent/conf/unix/ambari-agent b/ambari-agent/conf/unix/ambari-agent
index 96ef12b..f5ce304 100755
--- a/ambari-agent/conf/unix/ambari-agent
+++ b/ambari-agent/conf/unix/ambari-agent
@@ -40,7 +40,7 @@ export AMBARI_CONF_DIR=/etc/ambari-server/conf:$PATH
 export PYTHONPATH=/usr/lib/python2.6/site-packages:$PYTHONPATH
 
 AMBARI_AGENT=ambari-agent
-PYTHON_WRAP=/var/lib/ambari-agent/ambari-python-wrap
+PYTHON_WRAP=/usr/bin/ambari-python-wrap
 PIDDIR=/var/run/ambari-agent
 PIDFILE=$PIDDIR/$AMBARI_AGENT.pid
 OUTFILE=/var/log/ambari-agent/ambari-agent.out
@@ -81,10 +81,10 @@ change_files_permissions() {
 	ambari-sudo.sh chown 	$current_user "/usr/lib/ambari-agent/"
 }
 
-# fills $PYTHON
-. $PYTHON_WRAP -V 2>/dev/null
 
-export PYTHON=$PYTHON
+if [ -z "$PYTHON" ] ; then
+  export PYTHON=`readlink $PYTHON_WRAP`
+fi
 
 # Trying to read the passphrase from an environment
 if [ ! -z $AMBARI_PASSPHRASE ]; then

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-agent/conf/unix/install-helper.sh
----------------------------------------------------------------------
diff --git a/ambari-agent/conf/unix/install-helper.sh b/ambari-agent/conf/unix/install-helper.sh
index 91ae248..2495080 100644
--- a/ambari-agent/conf/unix/install-helper.sh
+++ b/ambari-agent/conf/unix/install-helper.sh
@@ -30,7 +30,6 @@ JINJA_AGENT_DIR="/usr/lib/ambari-agent/lib/ambari_jinja2"
 SIMPLEJSON_AGENT_DIR="/usr/lib/ambari-agent/lib/ambari_simplejson"
 
 PYTHON_WRAPER_TARGET="/usr/bin/ambari-python-wrap"
-PYTHON_WRAPER_SOURCE="/var/lib/ambari-agent/ambari-python-wrap"
 
 do_install(){
   if [ -d "/etc/ambari-agent/conf.save" ]; then
@@ -55,10 +54,6 @@ do_install(){
   if [ ! -d "$SIMPLEJSON_DIR" ]; then
     ln -s "$SIMPLEJSON_AGENT_DIR" "$SIMPLEJSON_DIR"
   fi
-  # setting python-wrapper script
-  if [ ! -f "$PYTHON_WRAPER_TARGET" ]; then
-    ln -s "$PYTHON_WRAPER_SOURCE" "$PYTHON_WRAPER_TARGET"
-  fi
   
   # on nano Ubuntu, when umask=027 those folders are created without 'x' bit for 'others'.
   # which causes failures when hadoop users try to access tmp_dir
@@ -85,6 +80,27 @@ do_install(){
     fi
     mv $BAK ${BAK}_$(date '+%d_%m_%y_%H_%M').save
   fi
+
+  # remove old python wrapper
+  rm -f "$PYTHON_WRAPER_TARGET"
+
+  AMBARI_PYTHON=""
+  python_binaries=( "/usr/bin/python" "/usr/bin/python2" "/usr/bin/python2.7", "/usr/bin/python2.6" )
+  for python_binary in "${python_binaries[@]}"
+  do
+    $python_binary -c "import sys ; ver = sys.version_info ; sys.exit(not (ver >= (2,6) and ver<(3,0)))" 1>/dev/null 2>/dev/null
+
+    if [ $? -eq 0 ] ; then
+      AMBARI_PYTHON="$python_binary"
+      break;
+    fi
+  done
+
+  if [ -z "$AMBARI_PYTHON" ] ; then
+    >&2 echo "Cannot detect python for ambari to use. Please manually set $PYTHON_WRAPER link to point to correct python binary"
+  else
+    ln -s "$AMBARI_PYTHON" "$PYTHON_WRAPER_TARGET"
+  fi
 }
 
 do_remove(){

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-agent/src/packages/tarball/all.xml
----------------------------------------------------------------------
diff --git a/ambari-agent/src/packages/tarball/all.xml b/ambari-agent/src/packages/tarball/all.xml
index d9732cc..c481208 100644
--- a/ambari-agent/src/packages/tarball/all.xml
+++ b/ambari-agent/src/packages/tarball/all.xml
@@ -141,11 +141,6 @@
   <files>
     <file>
       <fileMode>755</fileMode>
-      <source>../ambari-common/src/main/unix/ambari-python-wrap</source>
-      <outputDirectory>/var/lib/ambari-agent/</outputDirectory>
-    </file>
-    <file>
-      <fileMode>755</fileMode>
       <source>conf/unix/ambari-sudo.sh</source>
       <outputDirectory>/var/lib/ambari-agent/</outputDirectory>
     </file>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-common/src/main/python/ambari_commons/os_check.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/ambari_commons/os_check.py b/ambari-common/src/main/python/ambari_commons/os_check.py
index 9751570..c5457bb 100644
--- a/ambari-common/src/main/python/ambari_commons/os_check.py
+++ b/ambari-common/src/main/python/ambari_commons/os_check.py
@@ -18,6 +18,7 @@ See the License for the specific language governing permissions and
 limitations under the License.
 '''
 
+import re
 import os
 import sys
 import platform
@@ -81,6 +82,21 @@ def _is_oracle_linux():
 def _is_redhat_linux():
   return _IS_REDHAT_LINUX
 
+def advanced_check(distribution):
+  distribution = list(distribution)
+  if os.path.exists("/etc/issue"):
+    with open("/etc/issue", "rb") as fp:
+      issue_content = fp.read()
+  
+    if "Amazon" in issue_content:
+      distribution[0] = "amazon"
+      search_groups = re.search('(\d+)\.(\d+)', issue_content)
+      
+      if search_groups:
+        distribution[1] = search_groups.group(1) # if version is 2015.09 only get 2015.
+      
+  return tuple(distribution)
+    
 
 class OS_CONST_TYPE(type):
 
@@ -167,10 +183,15 @@ class OSCheck:
         distribution = platform.dist()
       else:
         distribution = platform.linux_distribution()
+        
+    
 
-    if distribution[0] == '' and platform.system().lower() == 'darwin':
-      # mac - used for unit tests
-      distribution = ("Darwin", "TestOnly", "1.1.1", "1.1.1", "1.1")
+    if distribution[0] == '':
+      distribution = advanced_check(distribution)
+    
+      if platform.system().lower() == 'darwin':
+        # mac - used for unit tests
+        distribution = ("Darwin", "TestOnly", "1.1.1", "1.1.1", "1.1")
     
     return distribution
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-common/src/main/python/ambari_commons/resources/os_family.json
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/ambari_commons/resources/os_family.json b/ambari-common/src/main/python/ambari_commons/resources/os_family.json
index c0acc2c..13014fc 100644
--- a/ambari-common/src/main/python/ambari_commons/resources/os_family.json
+++ b/ambari-common/src/main/python/ambari_commons/resources/os_family.json
@@ -6,7 +6,6 @@
       "centos",
       "oraclelinux",
       "ascendos",
-      "amazon",
       "xenserver",
       "oel",
       "ovs",
@@ -21,6 +20,15 @@
       7
     ]
   },
+  "amazon": {
+    "extends" : "redhat",
+    "distro": [
+      "amazon"
+    ],
+    "versions": [
+      2015
+    ]
+  },
   "debian": {
     "extends" : "ubuntu",
     "distro": [

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-common/src/main/python/resource_management/core/providers/__init__.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/resource_management/core/providers/__init__.py b/ambari-common/src/main/python/resource_management/core/providers/__init__.py
index abb51c3..21ae0d5 100644
--- a/ambari-common/src/main/python/resource_management/core/providers/__init__.py
+++ b/ambari-common/src/main/python/resource_management/core/providers/__init__.py
@@ -41,6 +41,9 @@ class Provider(object):
 
 
 PROVIDERS = dict(
+  amazon=dict(
+    Package="resource_management.core.providers.package.yumrpm.YumProvider",
+  ),
   redhat=dict(
     Package="resource_management.core.providers.package.yumrpm.YumProvider",
   ),

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-common/src/main/python/resource_management/libraries/providers/__init__.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/resource_management/libraries/providers/__init__.py b/ambari-common/src/main/python/resource_management/libraries/providers/__init__.py
index 44e9ca1..bd7c98a 100644
--- a/ambari-common/src/main/python/resource_management/libraries/providers/__init__.py
+++ b/ambari-common/src/main/python/resource_management/libraries/providers/__init__.py
@@ -21,6 +21,9 @@ Ambari Agent
 """
 
 PROVIDERS = dict(
+  amazon=dict(
+    Repository="resource_management.libraries.providers.repository.RhelSuseRepositoryProvider",
+  ),
   redhat=dict(
     Repository="resource_management.libraries.providers.repository.RhelSuseRepositoryProvider",
   ),

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-common/src/main/unix/ambari-python-wrap
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/unix/ambari-python-wrap b/ambari-common/src/main/unix/ambari-python-wrap
index 8dab946..e94467c 100755
--- a/ambari-common/src/main/unix/ambari-python-wrap
+++ b/ambari-common/src/main/unix/ambari-python-wrap
@@ -24,14 +24,14 @@ if [ -a /usr/bin/python2 ] && [ -z "$PYTHON" ]; then
   PYTHON=/usr/bin/python2
 fi
 
-if [ -a /usr/bin/python2.6 ] && [ -z "$PYTHON" ]; then
-  PYTHON=/usr/bin/python2.6
-fi
-
 if [ -a /usr/bin/python2.7 ] && [ -z "$PYTHON" ]; then
   PYTHON=/usr/bin/python2.7
 fi
 
+if [ -a /usr/bin/python2.6 ] && [ -z "$PYTHON" ]; then
+  PYTHON=/usr/bin/python2.6
+fi
+
 # if no preferable python versions found, try to use system one. Hoping it's Python 2
 if [[ -z "$PYTHON" ]]; then
   PYTHON=/usr/bin/python

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-funtest/src/test/resources/stacks/HDP/2.0.1/services/GANGLIA/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-funtest/src/test/resources/stacks/HDP/2.0.1/services/GANGLIA/metainfo.xml b/ambari-funtest/src/test/resources/stacks/HDP/2.0.1/services/GANGLIA/metainfo.xml
index c183a15..ee9b1f2 100644
--- a/ambari-funtest/src/test/resources/stacks/HDP/2.0.1/services/GANGLIA/metainfo.xml
+++ b/ambari-funtest/src/test/resources/stacks/HDP/2.0.1/services/GANGLIA/metainfo.xml
@@ -59,7 +59,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osFamily>redhat5,redhat6,suse11</osFamily>
+          <osFamily>redhat5,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>libganglia-3.5.0-99</name>
@@ -113,7 +113,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osFamily>redhat5,redhat6</osFamily>
+          <osFamily>redhat5,amazon2015,redhat6</osFamily>
           <packages>
             <package>
               <name>httpd</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-funtest/src/test/resources/stacks/HDP/2.0.1/services/HDFS/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-funtest/src/test/resources/stacks/HDP/2.0.1/services/HDFS/metainfo.xml b/ambari-funtest/src/test/resources/stacks/HDP/2.0.1/services/HDFS/metainfo.xml
index 660c956..93c4c6b 100644
--- a/ambari-funtest/src/test/resources/stacks/HDP/2.0.1/services/HDFS/metainfo.xml
+++ b/ambari-funtest/src/test/resources/stacks/HDP/2.0.1/services/HDFS/metainfo.xml
@@ -94,7 +94,7 @@
         </osSpecific>
 
         <osSpecific>
-          <osFamily>redhat5,redhat6,suse11</osFamily>
+          <osFamily>redhat5,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>snappy</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-funtest/src/test/resources/stacks/HDP/2.0.1/services/HIVE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-funtest/src/test/resources/stacks/HDP/2.0.1/services/HIVE/metainfo.xml b/ambari-funtest/src/test/resources/stacks/HDP/2.0.1/services/HIVE/metainfo.xml
index db6f863..ca50bb0 100644
--- a/ambari-funtest/src/test/resources/stacks/HDP/2.0.1/services/HIVE/metainfo.xml
+++ b/ambari-funtest/src/test/resources/stacks/HDP/2.0.1/services/HIVE/metainfo.xml
@@ -115,7 +115,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osFamily>redhat5,redhat6,suse11</osFamily>
+          <osFamily>redhat5,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>mysql</name>
@@ -123,7 +123,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osFamily>redhat5,redhat6,ubuntu12</osFamily>
+          <osFamily>redhat5,amazon2015,redhat6,ubuntu12</osFamily>
           <packages>
             <package>
               <name>mysql-server</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-funtest/src/test/resources/stacks/HDP/2.0.1/services/OOZIE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-funtest/src/test/resources/stacks/HDP/2.0.1/services/OOZIE/metainfo.xml b/ambari-funtest/src/test/resources/stacks/HDP/2.0.1/services/OOZIE/metainfo.xml
index d76c7ed..50b0b71 100644
--- a/ambari-funtest/src/test/resources/stacks/HDP/2.0.1/services/OOZIE/metainfo.xml
+++ b/ambari-funtest/src/test/resources/stacks/HDP/2.0.1/services/OOZIE/metainfo.xml
@@ -102,7 +102,7 @@
         </osSpecific>
 
         <osSpecific>
-          <osFamily>redhat5,redhat6,suse11</osFamily>
+          <osFamily>redhat5,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>extjs-2.2-1</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-funtest/src/test/resources/stacks/HDP/2.0.5/services/GANGLIA/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-funtest/src/test/resources/stacks/HDP/2.0.5/services/GANGLIA/metainfo.xml b/ambari-funtest/src/test/resources/stacks/HDP/2.0.5/services/GANGLIA/metainfo.xml
index 9167f87..d8d5263 100644
--- a/ambari-funtest/src/test/resources/stacks/HDP/2.0.5/services/GANGLIA/metainfo.xml
+++ b/ambari-funtest/src/test/resources/stacks/HDP/2.0.5/services/GANGLIA/metainfo.xml
@@ -60,7 +60,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osFamily>redhat5,redhat6,suse11</osFamily>
+          <osFamily>redhat5,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>libganglia-3.5.0-99</name>
@@ -114,7 +114,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osFamily>redhat5,redhat6</osFamily>
+          <osFamily>redhat5,amazon2015,redhat6</osFamily>
           <packages>
             <package>
               <name>httpd</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-funtest/src/test/resources/stacks/HDP/2.0.5/services/HDFS/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-funtest/src/test/resources/stacks/HDP/2.0.5/services/HDFS/metainfo.xml b/ambari-funtest/src/test/resources/stacks/HDP/2.0.5/services/HDFS/metainfo.xml
index 7c0dc74..d05d079 100644
--- a/ambari-funtest/src/test/resources/stacks/HDP/2.0.5/services/HDFS/metainfo.xml
+++ b/ambari-funtest/src/test/resources/stacks/HDP/2.0.5/services/HDFS/metainfo.xml
@@ -132,7 +132,7 @@
         </osSpecific>
 
         <osSpecific>
-          <osFamily>redhat5,redhat6,suse11</osFamily>
+          <osFamily>redhat5,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>snappy</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-funtest/src/test/resources/stacks/HDP/2.0.5/services/HIVE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-funtest/src/test/resources/stacks/HDP/2.0.5/services/HIVE/metainfo.xml b/ambari-funtest/src/test/resources/stacks/HDP/2.0.5/services/HIVE/metainfo.xml
index 35f77f8..9ada7eb 100644
--- a/ambari-funtest/src/test/resources/stacks/HDP/2.0.5/services/HIVE/metainfo.xml
+++ b/ambari-funtest/src/test/resources/stacks/HDP/2.0.5/services/HIVE/metainfo.xml
@@ -220,7 +220,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osFamily>redhat5,redhat6,suse11</osFamily>
+          <osFamily>redhat5,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>mysql</name>
@@ -228,7 +228,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osFamily>redhat5,redhat6,ubuntu12</osFamily>
+          <osFamily>redhat5,amazon2015,redhat6,ubuntu12</osFamily>
           <packages>
             <package>
               <name>mysql-server</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-funtest/src/test/resources/stacks/HDP/2.0.5/services/OOZIE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-funtest/src/test/resources/stacks/HDP/2.0.5/services/OOZIE/metainfo.xml b/ambari-funtest/src/test/resources/stacks/HDP/2.0.5/services/OOZIE/metainfo.xml
index 6417dd4..27034d9 100644
--- a/ambari-funtest/src/test/resources/stacks/HDP/2.0.5/services/OOZIE/metainfo.xml
+++ b/ambari-funtest/src/test/resources/stacks/HDP/2.0.5/services/OOZIE/metainfo.xml
@@ -102,7 +102,7 @@
         </osSpecific>
 
         <osSpecific>
-          <osFamily>redhat5,redhat6,suse11</osFamily>
+          <osFamily>redhat5,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>extjs-2.2-1</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-funtest/src/test/resources/stacks/HDP/2.0.7/services/HIVE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-funtest/src/test/resources/stacks/HDP/2.0.7/services/HIVE/metainfo.xml b/ambari-funtest/src/test/resources/stacks/HDP/2.0.7/services/HIVE/metainfo.xml
index 35a4d05..f2ff12e 100644
--- a/ambari-funtest/src/test/resources/stacks/HDP/2.0.7/services/HIVE/metainfo.xml
+++ b/ambari-funtest/src/test/resources/stacks/HDP/2.0.7/services/HIVE/metainfo.xml
@@ -134,7 +134,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osFamily>redhat5,redhat6,suse11</osFamily>
+          <osFamily>redhat5,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>mysql</name>
@@ -142,7 +142,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osFamily>redhat5,redhat6,ubuntu12</osFamily>
+          <osFamily>redhat5,amazon2015,redhat6,ubuntu12</osFamily>
           <packages>
             <package>
               <name>mysql-server</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-funtest/src/test/resources/stacks/HDP/2.1.1/services/AMBARI_METRICS/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-funtest/src/test/resources/stacks/HDP/2.1.1/services/AMBARI_METRICS/metainfo.xml b/ambari-funtest/src/test/resources/stacks/HDP/2.1.1/services/AMBARI_METRICS/metainfo.xml
index 84735c2..be99b83 100644
--- a/ambari-funtest/src/test/resources/stacks/HDP/2.1.1/services/AMBARI_METRICS/metainfo.xml
+++ b/ambari-funtest/src/test/resources/stacks/HDP/2.1.1/services/AMBARI_METRICS/metainfo.xml
@@ -65,7 +65,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osFamily>redhat5,redhat6,suse11</osFamily>
+          <osFamily>redhat5,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>ambari-metrics-collector</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/conf/unix/ambari-env.sh
----------------------------------------------------------------------
diff --git a/ambari-server/conf/unix/ambari-env.sh b/ambari-server/conf/unix/ambari-env.sh
index e463ca6..bf7ae56 100644
--- a/ambari-server/conf/unix/ambari-env.sh
+++ b/ambari-server/conf/unix/ambari-env.sh
@@ -17,6 +17,7 @@
 AMBARI_PASSHPHRASE="DEV"
 export AMBARI_JVM_ARGS=$AMBARI_JVM_ARGS' -Xms512m -Xmx2048m -Djava.security.auth.login.config=/etc/ambari-server/conf/krb5JAASLogin.conf -Djava.security.krb5.conf=/etc/krb5.conf -Djavax.security.auth.useSubjectCredsOnly=false'
 export PATH=$PATH:/var/lib/ambari-server
+export PYTHONPATH=$PYTHONPATH:/usr/lib/python2.6/site-packages
 
 # customize python binary for ambari
 # export PYTHON=/usr/bin/python2

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/conf/unix/install-helper.sh
----------------------------------------------------------------------
diff --git a/ambari-server/conf/unix/install-helper.sh b/ambari-server/conf/unix/install-helper.sh
index a1405e0..e2e22ab 100644
--- a/ambari-server/conf/unix/install-helper.sh
+++ b/ambari-server/conf/unix/install-helper.sh
@@ -32,7 +32,6 @@ JINJA_SERVER_DIR="${ROOT}/usr/lib/ambari-server/lib/ambari_jinja2"
 SIMPLEJSON_SERVER_DIR="${ROOT}/usr/lib/ambari-server/lib/ambari_simplejson"
 
 PYTHON_WRAPER_TARGET="${ROOT}/usr/bin/ambari-python-wrap"
-PYTHON_WRAPER_SOURCE="${ROOT}/var/lib/ambari-server/ambari-python-wrap"
 
 AMBARI_SERVER_EXECUTABLE_LINK="${ROOT}/usr/sbin/ambari-server"
 AMBARI_SERVER_EXECUTABLE="${ROOT}/etc/init.d/ambari-server"
@@ -62,9 +61,26 @@ do_install(){
   if [ ! -d "$SIMPLEJSON_DIR" ]; then
     ln -s "$SIMPLEJSON_SERVER_DIR" "$SIMPLEJSON_DIR"
   fi
-  # setting python-wrapper script
-  if [ ! -f "$PYTHON_WRAPER_TARGET" ]; then
-    ln -s "$PYTHON_WRAPER_SOURCE" "$PYTHON_WRAPER_TARGET"
+
+  # remove old python wrapper
+  rm -f "$PYTHON_WRAPER_TARGET"
+
+  AMBARI_PYTHON=""
+  python_binaries=( "/usr/bin/python" "/usr/bin/python2" "/usr/bin/python2.7", "/usr/bin/python2.6" )
+  for python_binary in "${python_binaries[@]}"
+  do
+    $python_binary -c "import sys ; ver = sys.version_info ; sys.exit(not (ver >= (2,6) and ver<(3,0)))" 1>/dev/null 2>/dev/null
+
+    if [ $? -eq 0 ] ; then
+      AMBARI_PYTHON="$python_binary"
+      break;
+    fi
+  done
+
+  if [ -z "$AMBARI_PYTHON" ] ; then
+    >&2 echo "Cannot detect python for ambari to use. Please manually set $PYTHON_WRAPER link to point to correct python binary"
+  else
+    ln -s "$AMBARI_PYTHON" "$PYTHON_WRAPER_TARGET"
   fi
 
   which chkconfig > /dev/null 2>&1

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/sbin/ambari-server
----------------------------------------------------------------------
diff --git a/ambari-server/sbin/ambari-server b/ambari-server/sbin/ambari-server
index da1a0eb..431ee5f 100755
--- a/ambari-server/sbin/ambari-server
+++ b/ambari-server/sbin/ambari-server
@@ -37,10 +37,11 @@ esac
 
 export PATH=/usr/lib/ambari-server/*:$PATH:/sbin/:/usr/sbin
 export AMBARI_CONF_DIR=/etc/ambari-server/conf
-PYTHON_WRAP=/var/lib/ambari-server/ambari-python-wrap
+PYTHON_WRAP=/usr/bin/ambari-python-wrap
 
-# fills $PYTHON
-. $PYTHON_WRAP -V 2>/dev/null
+if [ -z "$PYTHON" ] ; then
+  export PYTHON=`readlink $PYTHON_WRAP`
+fi
 
 if [ -a /var/lib/ambari-server/ambari-env.sh ]; then
   . /var/lib/ambari-server/ambari-env.sh

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/assemblies/server.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/assemblies/server.xml b/ambari-server/src/main/assemblies/server.xml
index 8bfad0c..ca74185 100644
--- a/ambari-server/src/main/assemblies/server.xml
+++ b/ambari-server/src/main/assemblies/server.xml
@@ -204,11 +204,6 @@
       <outputDirectory>/etc/init.d</outputDirectory>
     </file>
     <file>
-      <fileMode>755</fileMode>
-      <source>../ambari-common/src/main/unix/ambari-python-wrap</source>
-      <outputDirectory>/var/lib/ambari-server/</outputDirectory>
-    </file>
-    <file>
       <source>${ambariProperties}</source>
       <outputDirectory>/etc/ambari-server/conf</outputDirectory>
     </file>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/python/ambari_server/utils.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/python/ambari_server/utils.py b/ambari-server/src/main/python/ambari_server/utils.py
index 98ced17..49af869 100644
--- a/ambari-server/src/main/python/ambari_server/utils.py
+++ b/ambari-server/src/main/python/ambari_server/utils.py
@@ -216,7 +216,7 @@ def get_postgre_hba_dir(OS_FAMILY):
     # Like: /etc/postgresql/9.1/main/
     return os.path.join(get_pg_hba_init_files(), get_ubuntu_pg_version(),
                         "main")
-  elif OSCheck.is_redhat_family() and int(OSCheck.get_os_major_version()) >= 7:
+  elif not glob.glob(get_pg_hba_init_files() + '*'): # this happens when the service file is of new format (/usr/lib/systemd/system/postgresql.service)
     return PG_HBA_ROOT_DEFAULT
   else:
     if not os.path.isfile(get_pg_hba_init_files()):
@@ -224,8 +224,9 @@ def get_postgre_hba_dir(OS_FAMILY):
       os.symlink(glob.glob(get_pg_hba_init_files() + '*')[0],
                  get_pg_hba_init_files())
 
+    pg_hba_init_basename = os.path.basename(get_pg_hba_init_files())
     # Get postgres_data location (default: /var/lib/pgsql/data)
-    cmd = "alias exit=return; source " + get_pg_hba_init_files() + " status &>/dev/null; echo $PGDATA"
+    cmd = "alias basename='echo {0}; true' ; alias exit=return; source {1} status &>/dev/null; echo $PGDATA".format(pg_hba_init_basename, get_pg_hba_init_files())
     p = subprocess.Popen(cmd,
                          stdout=subprocess.PIPE,
                          stdin=subprocess.PIPE,

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/metainfo.xml b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/metainfo.xml
index 6ea4ca5..c3dbc6b 100644
--- a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/metainfo.xml
+++ b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/metainfo.xml
@@ -78,7 +78,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osFamily>redhat7,redhat6,suse11</osFamily>
+          <osFamily>redhat7,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>ambari-metrics-collector</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/common-services/GANGLIA/3.5.0/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/GANGLIA/3.5.0/metainfo.xml b/ambari-server/src/main/resources/common-services/GANGLIA/3.5.0/metainfo.xml
index 42e9352..7303b82 100644
--- a/ambari-server/src/main/resources/common-services/GANGLIA/3.5.0/metainfo.xml
+++ b/ambari-server/src/main/resources/common-services/GANGLIA/3.5.0/metainfo.xml
@@ -55,7 +55,7 @@
       </components>
       <osSpecifics>
         <osSpecific>
-          <osFamily>redhat6,suse11</osFamily>
+          <osFamily>amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>python-rrdtool-1.4.5</name>
@@ -112,7 +112,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osFamily>redhat6</osFamily>
+          <osFamily>amazon2015,redhat6</osFamily>
           <packages>
             <package>
               <name>httpd</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/metainfo.xml b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/metainfo.xml
index 752de0e..73616ae 100644
--- a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/metainfo.xml
+++ b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/metainfo.xml
@@ -171,7 +171,7 @@
         </osSpecific>
         
         <osSpecific>
-          <osFamily>redhat6,suse11</osFamily>
+          <osFamily>amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>snappy</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/metainfo.xml b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/metainfo.xml
index fc93ee6..dfa20a5 100644
--- a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/metainfo.xml
+++ b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/metainfo.xml
@@ -260,7 +260,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osFamily>redhat6,suse11</osFamily>
+          <osFamily>amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>mysql</name>
@@ -269,7 +269,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osFamily>redhat6,debian7,ubuntu12,ubuntu14</osFamily>
+          <osFamily>amazon2015,redhat6,debian7,ubuntu12,ubuntu14</osFamily>
           <packages>
             <package>
               <name>mysql-server</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/metainfo.xml b/ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/metainfo.xml
index ec462a7..d8e3106 100644
--- a/ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/metainfo.xml
+++ b/ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/metainfo.xml
@@ -73,7 +73,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osFamily>redhat7,redhat6</osFamily>
+          <osFamily>redhat7,amazon2015,redhat6</osFamily>
           <packages>
             <package>
               <name>krb5-server</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/metainfo.xml b/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/metainfo.xml
index 3939ef0..52fb4ac 100644
--- a/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/metainfo.xml
+++ b/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/metainfo.xml
@@ -121,7 +121,7 @@
         </osSpecific>
         
        <osSpecific>
-          <osFamily>redhat6,suse11</osFamily>
+          <osFamily>amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>extjs-2.2-1</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.1/services/HIVE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/HIVE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.1/services/HIVE/metainfo.xml
index 279bcb7..b80eeba 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/HIVE/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.1/services/HIVE/metainfo.xml
@@ -63,7 +63,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osFamily>redhat6,suse11</osFamily>
+          <osFamily>amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>mysql</name>
@@ -87,7 +87,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osFamily>redhat6,ubuntu12</osFamily>
+          <osFamily>amazon2015,redhat6,ubuntu12</osFamily>
           <packages>
             <package>
               <name>mysql-server</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.1/services/OOZIE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/OOZIE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.1/services/OOZIE/metainfo.xml
index bb6f146..7c4b232 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/OOZIE/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.1/services/OOZIE/metainfo.xml
@@ -42,7 +42,7 @@
         </osSpecific>
         
         <osSpecific>
-          <osFamily>redhat6,suse11</osFamily>
+          <osFamily>amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>extjs-2.2-1</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.2/repos/repoinfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/repos/repoinfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.2/repos/repoinfo.xml
index dbf8506..9decf51 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.2/repos/repoinfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.2/repos/repoinfo.xml
@@ -29,6 +29,18 @@
       <reponame>HDP-UTILS</reponame>
     </repo>
   </os>
+  <os family="amazon2015">
+    <repo>
+      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.2.6.0</baseurl>
+      <repoid>HDP-2.2</repoid>
+      <reponame>HDP</reponame>
+    </repo>
+    <repo>
+      <baseurl>http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6</baseurl>
+      <repoid>HDP-UTILS-1.1.0.20</repoid>
+      <reponame>HDP-UTILS</reponame>
+    </repo>
+  </os>
   <os family="suse11">
     <repo>
       <baseurl>http://public-repo-1.hortonworks.com/HDP/suse11sp3/2.x/updates/2.2.6.0</baseurl>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.2/services/FALCON/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/services/FALCON/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.2/services/FALCON/metainfo.xml
index 77b593b..96fb6e8 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.2/services/FALCON/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.2/services/FALCON/metainfo.xml
@@ -24,7 +24,7 @@
       <version>0.6.0.2.2</version>
       <osSpecifics>
         <osSpecific>
-          <osFamily>redhat7,redhat6,suse11</osFamily>
+          <osFamily>redhat7,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>falcon_${stack_version}</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.2/services/FLUME/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/services/FLUME/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.2/services/FLUME/metainfo.xml
index 48368ea..2a798e1 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.2/services/FLUME/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.2/services/FLUME/metainfo.xml
@@ -26,7 +26,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osFamily>redhat7,redhat6,suse11</osFamily>
+          <osFamily>redhat7,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>flume_${stack_version}</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.2/services/HBASE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/services/HBASE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.2/services/HBASE/metainfo.xml
index e88f073..980c0b5 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.2/services/HBASE/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.2/services/HBASE/metainfo.xml
@@ -25,7 +25,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osFamily>redhat7,redhat6,suse11</osFamily>
+          <osFamily>redhat7,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>hbase_${stack_version}</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.2/services/HDFS/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/services/HDFS/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.2/services/HDFS/metainfo.xml
index 0c98a72..cf1ce50 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.2/services/HDFS/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.2/services/HDFS/metainfo.xml
@@ -25,7 +25,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osFamily>redhat6,suse11</osFamily>
+          <osFamily>amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>hadoop_${stack_version}</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.2/services/HIVE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/services/HIVE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.2/services/HIVE/metainfo.xml
index 11921a6..fae06b2 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.2/services/HIVE/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.2/services/HIVE/metainfo.xml
@@ -68,7 +68,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osFamily>redhat6,redhat7,suse11</osFamily>
+          <osFamily>amazon2015,redhat6,redhat7,suse11</osFamily>
           <packages>
             <package>
               <name>hive_${stack_version}</name>
@@ -82,7 +82,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osFamily>redhat6,suse11</osFamily>
+          <osFamily>amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>mysql</name>
@@ -120,7 +120,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osFamily>redhat6,ubuntu12</osFamily>
+          <osFamily>amazon2015,redhat6,ubuntu12</osFamily>
           <packages>
             <package>
               <name>mysql-server</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.2/services/KAFKA/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/services/KAFKA/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.2/services/KAFKA/metainfo.xml
index 3268665..397d831 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.2/services/KAFKA/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.2/services/KAFKA/metainfo.xml
@@ -23,7 +23,7 @@
       <extends>common-services/KAFKA/0.8.1.2.2</extends>
       <osSpecifics>
         <osSpecific>
-          <osFamily>redhat7,redhat6,suse11</osFamily>
+          <osFamily>redhat7,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>kafka_${stack_version}</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.2/services/KNOX/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/services/KNOX/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.2/services/KNOX/metainfo.xml
index 22b1be4..4caec43 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.2/services/KNOX/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.2/services/KNOX/metainfo.xml
@@ -23,7 +23,7 @@
       <extends>common-services/KNOX/0.5.0.2.2</extends>
       <osSpecifics>
         <osSpecific>
-          <osFamily>redhat7,redhat6,suse11</osFamily>
+          <osFamily>redhat7,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>knox_${stack_version}</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.2/services/OOZIE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/services/OOZIE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.2/services/OOZIE/metainfo.xml
index b5682e4..63b5b23 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.2/services/OOZIE/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.2/services/OOZIE/metainfo.xml
@@ -75,7 +75,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osFamily>redhat5,redhat6,redhat7,suse11</osFamily>
+          <osFamily>redhat5,amazon2015,redhat6,redhat7,suse11</osFamily>
           <packages>
             <package>
               <name>oozie_${stack_version}</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.2/services/PIG/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/services/PIG/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.2/services/PIG/metainfo.xml
index c4b9c8b..04fefad 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.2/services/PIG/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.2/services/PIG/metainfo.xml
@@ -24,7 +24,7 @@
       <version>0.14.0.2.2</version>
       <osSpecifics>
         <osSpecific>
-          <osFamily>redhat6,suse11</osFamily>
+          <osFamily>amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>pig_${stack_version}</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.2/services/RANGER/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/services/RANGER/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.2/services/RANGER/metainfo.xml
index b8edba5..d2bc6f0 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.2/services/RANGER/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.2/services/RANGER/metainfo.xml
@@ -32,7 +32,7 @@
       </themes>
       <osSpecifics>
         <osSpecific>
-          <osFamily>redhat7,redhat6,suse11</osFamily>
+          <osFamily>redhat7,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>ranger_${stack_version}-admin</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.2/services/SLIDER/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/services/SLIDER/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.2/services/SLIDER/metainfo.xml
index dfab0d7..6f221c2 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.2/services/SLIDER/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.2/services/SLIDER/metainfo.xml
@@ -23,7 +23,7 @@
       <extends>common-services/SLIDER/0.60.0.2.2</extends>
       <osSpecifics>
         <osSpecific>
-          <osFamily>redhat7,redhat6,suse11</osFamily>
+          <osFamily>redhat7,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>slider_${stack_version}</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.2/services/SPARK/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/services/SPARK/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.2/services/SPARK/metainfo.xml
index f370bf3..e18d048 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.2/services/SPARK/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.2/services/SPARK/metainfo.xml
@@ -27,7 +27,7 @@
       <version>1.2.1.2.2</version>
       <osSpecifics>
         <osSpecific>
-          <osFamily>redhat7,redhat6,suse11</osFamily>
+          <osFamily>redhat7,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>spark_${stack_version}</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.2/services/SQOOP/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/services/SQOOP/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.2/services/SQOOP/metainfo.xml
index d408f38..10f460a 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.2/services/SQOOP/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.2/services/SQOOP/metainfo.xml
@@ -33,7 +33,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osFamily>redhat7,redhat6,suse11</osFamily>
+          <osFamily>redhat7,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>sqoop_${stack_version}</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.2/services/STORM/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/services/STORM/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.2/services/STORM/metainfo.xml
index eca29ae..a5bcd7e 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.2/services/STORM/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.2/services/STORM/metainfo.xml
@@ -31,7 +31,7 @@
       </components>
       <osSpecifics>
         <osSpecific>
-          <osFamily>redhat7,redhat6,suse11</osFamily>
+          <osFamily>redhat7,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>storm_${stack_version}</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.2/services/TEZ/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/services/TEZ/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.2/services/TEZ/metainfo.xml
index 3f3a10c..f99d19f 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.2/services/TEZ/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.2/services/TEZ/metainfo.xml
@@ -25,7 +25,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osFamily>redhat7,redhat6,suse11</osFamily>
+          <osFamily>redhat7,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>tez_${stack_version}</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.2/services/YARN/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/services/YARN/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.2/services/YARN/metainfo.xml
index bb346f0..eeb71fb 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.2/services/YARN/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.2/services/YARN/metainfo.xml
@@ -32,7 +32,7 @@
       
       <osSpecifics>
         <osSpecific>
-          <osFamily>redhat6,suse11</osFamily>
+          <osFamily>amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>hadoop_${stack_version}-yarn</name>
@@ -72,7 +72,7 @@
       <version>2.6.0.2.2</version>
       <osSpecifics>
         <osSpecific>
-          <osFamily>redhat6,suse11</osFamily>
+          <osFamily>amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>hadoop_${stack_version}-mapreduce</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.3.ECS/services/ZOOKEEPER/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.3.ECS/services/ZOOKEEPER/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.3.ECS/services/ZOOKEEPER/metainfo.xml
index c2fe742..4833857 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.3.ECS/services/ZOOKEEPER/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.3.ECS/services/ZOOKEEPER/metainfo.xml
@@ -23,7 +23,7 @@
       <version>3.4.6.2.3</version>
       <osSpecifics>
         <osSpecific>
-          <osFamily>redhat7,redhat6,suse11</osFamily>
+          <osFamily>redhat7,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>zookeeper_2_3_*</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.3/repos/repoinfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.3/repos/repoinfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.3/repos/repoinfo.xml
index 142b87d..279134b 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.3/repos/repoinfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.3/repos/repoinfo.xml
@@ -41,6 +41,18 @@
       <reponame>HDP-UTILS</reponame>
     </repo>
   </os>
+  <os family="amazon2015">
+    <repo>
+      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.3.0.0</baseurl>
+      <repoid>HDP-2.3</repoid>
+      <reponame>HDP</reponame>
+    </repo>
+    <repo>
+      <baseurl>http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6</baseurl>
+      <repoid>HDP-UTILS-1.1.0.20</repoid>
+      <reponame>HDP-UTILS</reponame>
+    </repo>
+  </os>
   <os family="suse11">
     <repo>
       <baseurl>http://public-repo-1.hortonworks.com/HDP/suse11sp3/2.x/updates/2.3.0.0</baseurl>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.3/services/ACCUMULO/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.3/services/ACCUMULO/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.3/services/ACCUMULO/metainfo.xml
index de6983c..987d686 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.3/services/ACCUMULO/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.3/services/ACCUMULO/metainfo.xml
@@ -24,7 +24,7 @@
       <version>1.7.0.2.3</version>
       <osSpecifics>
         <osSpecific>
-          <osFamily>redhat7,redhat6,suse11</osFamily>
+          <osFamily>redhat7,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>accumulo_${stack_version}</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.3/services/ATLAS/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.3/services/ATLAS/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.3/services/ATLAS/metainfo.xml
index 4983698..1ce2e49 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.3/services/ATLAS/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.3/services/ATLAS/metainfo.xml
@@ -24,7 +24,7 @@
       <version>0.5.0.2.3</version>
       <osSpecifics>
         <osSpecific>
-          <osFamily>redhat7,redhat6,suse11</osFamily>
+          <osFamily>redhat7,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>atlas-metadata_${stack_version}</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.3/services/HDFS/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.3/services/HDFS/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.3/services/HDFS/metainfo.xml
index ac6ddaf..fdbb5bd 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.3/services/HDFS/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.3/services/HDFS/metainfo.xml
@@ -56,7 +56,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osFamily>redhat7,redhat6,suse11</osFamily>
+          <osFamily>redhat7,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>hadoop_${stack_version}</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.3/services/HIVE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.3/services/HIVE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.3/services/HIVE/metainfo.xml
index fcbb02e..6bee339 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.3/services/HIVE/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.3/services/HIVE/metainfo.xml
@@ -34,7 +34,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osFamily>redhat7,redhat6,suse11</osFamily>
+          <osFamily>redhat7,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>hive_${stack_version}</name>
@@ -52,7 +52,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osFamily>redhat6,suse11</osFamily>
+          <osFamily>amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>mysql</name>
@@ -95,7 +95,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osFamily>redhat6,debian7,ubuntu12,ubuntu14</osFamily>
+          <osFamily>amazon2015,redhat6,debian7,ubuntu12,ubuntu14</osFamily>
           <packages>
             <package>
               <name>mysql-server</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.3/services/OOZIE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.3/services/OOZIE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.3/services/OOZIE/metainfo.xml
index 9b324bb..c7203f8 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.3/services/OOZIE/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.3/services/OOZIE/metainfo.xml
@@ -46,7 +46,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osFamily>redhat5,redhat6,redhat7,suse11</osFamily>
+          <osFamily>redhat5,amazon2015,redhat6,redhat7,suse11</osFamily>
           <packages>
             <package>
               <name>oozie_${stack_version}</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.3/services/PIG/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.3/services/PIG/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.3/services/PIG/metainfo.xml
index 95830de..de786d5 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.3/services/PIG/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.3/services/PIG/metainfo.xml
@@ -23,7 +23,7 @@
       <version>0.15.0.2.3</version>
       <osSpecifics>
         <osSpecific>
-          <osFamily>redhat7,redhat6,suse11</osFamily>
+          <osFamily>redhat7,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>pig_${stack_version}</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.3/services/RANGER_KMS/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.3/services/RANGER_KMS/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.3/services/RANGER_KMS/metainfo.xml
index fdc9098..1384842 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.3/services/RANGER_KMS/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.3/services/RANGER_KMS/metainfo.xml
@@ -26,7 +26,7 @@
       <extends>common-services/RANGER_KMS/0.5.0.2.3</extends>
       <osSpecifics>
         <osSpecific>
-          <osFamily>redhat7,redhat6,suse11</osFamily>
+          <osFamily>redhat7,amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>ranger_${stack_version}-kms</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.3/services/ZOOKEEPER/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.3/services/ZOOKEEPER/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.3/services/ZOOKEEPER/metainfo.xml
index 315f319..0219da8 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.3/services/ZOOKEEPER/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.3/services/ZOOKEEPER/metainfo.xml
@@ -23,7 +23,7 @@
       <version>3.4.6.2.3</version>
       <osSpecifics>
         <osSpecific>
-          <osFamily>redhat6,suse11</osFamily>
+          <osFamily>amazon2015,redhat6,suse11</osFamily>
           <packages>
             <package>
               <name>zookeeper_${stack_version}</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/268ae5b6/ambari-server/src/main/resources/stacks/HDP/2.4/repos/repoinfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.4/repos/repoinfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.4/repos/repoinfo.xml
index 54bd3da..6ac43f9 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.4/repos/repoinfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.4/repos/repoinfo.xml
@@ -41,6 +41,18 @@
       <reponame>HDP-UTILS</reponame>
     </repo>
   </os>
+  <os family="redhat2015">
+    <repo>
+      <baseurl>http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/updates/2.4.0.0</baseurl>
+      <repoid>HDP-2.4</repoid>
+      <reponame>HDP</reponame>
+    </repo>
+    <repo>
+      <baseurl>http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6</baseurl>
+      <repoid>HDP-UTILS-1.1.0.20</repoid>
+      <reponame>HDP-UTILS</reponame>
+    </repo>
+  </os>
   <os family="suse11">
     <repo>
       <baseurl>http://s3.amazonaws.com/dev.hortonworks.com/HDP/suse11sp3/2.x/updates/2.4.0.0</baseurl>