Sfoglia il codice sorgente

AMBARI-9441 : Flume service from HDPWIN 2.2 fails to start because it is disabled (jluniya)

Jayush Luniya 10 anni fa
parent
commit
90e05a9c55

+ 15 - 0
ambari-common/src/main/python/resource_management/core/providers/windows/service.py

@@ -32,6 +32,7 @@ class ServiceProvider(Provider):
     self._service_handle = self._service_handle if hasattr(self, "_service_handle") else \
       win32service.OpenService(_schSCManager, self.resource.service_name, win32service.SERVICE_ALL_ACCESS)
     if not self.status():
+      self.enable()
       win32service.StartService(self._service_handle, None)
       self.wait_status(win32service.SERVICE_RUNNING)
 
@@ -56,6 +57,20 @@ class ServiceProvider(Provider):
       return True
     return False
 
+  def enable(self):
+    if win32service.QueryServiceConfig(self._service_handle)[1] == win32service.SERVICE_DISABLED:
+      win32service.ChangeServiceConfig(self._service_handle,
+                                       win32service.SERVICE_NO_CHANGE,
+                                       win32service.SERVICE_DEMAND_START,
+                                       win32service.SERVICE_NO_CHANGE,
+                                       None,
+                                       None,
+                                       0,
+                                       None,
+                                       None,
+                                       None,
+                                       None)
+
   def get_current_status(self):
     return win32service.QueryServiceStatusEx(self._service_handle)["CurrentState"]