Преглед изворни кода

AMBARI-11267 - [WinTP2] Metrics Monitor Install Fails

Artem Baranchuk пре 10 година
родитељ
комит
440f5c7757

+ 6 - 4
ambari-common/src/main/python/resource_management/core/providers/windows/service.py

@@ -108,7 +108,7 @@ class ServiceConfigProvider(Provider):
   def action_install(self):
     hSCM = safe_open_scmanager()
 
-    self._fix_system_user_name()
+    self._fix_user_name()
 
     try:
       hSvc = win32service.CreateService(hSCM,
@@ -142,7 +142,7 @@ class ServiceConfigProvider(Provider):
     try:
       hSvc = safe_open_service(hSCM, self.resource.service_name)
 
-      self._fix_system_user_name()
+      self._fix_user_name()
 
       try:
         win32service.ChangeServiceConfig(hSvc,
@@ -174,7 +174,7 @@ class ServiceConfigProvider(Provider):
     try:
       hSvc = safe_open_service(hSCM, self.resource.service_name)
 
-      self._fix_system_user_name()
+      self._fix_user_name()
 
       try:
         win32service.ChangeServiceConfig(hSvc,
@@ -219,9 +219,11 @@ class ServiceConfigProvider(Provider):
     finally:
       win32service.CloseServiceHandle(hSCM)
 
-  def _fix_system_user_name(self):
+  def _fix_user_name(self):
     if self.resource.username.upper() == "NT AUTHORITY\\SYSTEM":
       self.resource.username = None
+    elif self.resource.username.find("\\") == -1:
+      self.resource.username = ".\\" + self.resource.username
 
   def _is_system_user(self):
     if self.resource.username in ["NT AUTHORITY\\SYSTEM", "NT AUTHORITY\\NetworkService", "NT AUTHORITY\\LocalService"]:

+ 3 - 2
ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/params_windows.py

@@ -23,7 +23,8 @@ from resource_management import *
 
 config = Script.get_config()
 
-ams_user = "hadoop"
+hadoop_user = config["configurations"]["cluster-env"]["hadoop.user.name"]
+ams_user = hadoop_user
 ams_collector_conf_dir = os.environ["COLLECTOR_CONF_DIR"]
 ams_collector_home_dir = os.environ["COLLECTOR_HOME"]
 ams_monitor_conf_dir = os.environ["MONITOR_CONF_DIR"]
@@ -35,5 +36,5 @@ hadoop_conf_dir = os.path.join(os.environ["HADOOP_HOME"], "conf")
 hbase_conf_dir = os.path.join(os.environ["COLLECTOR_HOME"], "hbase", "conf")
 
 ams_collector_win_service_name = "AmbariMetricsCollector"
-ams_monitor_win_service_name = "AmbariMetricsCollector"
+ams_monitor_win_service_name = "AmbariMetricsHostMonitoring"
 ams_embedded_hbase_win_service_name = "ams_hbase_master"