Parcourir la source

AMBARI-11206 [WinTP2] Ambari Agent fails to start

Moved the module imports inside functions, to immunize the startup against unused modules.
Florian Barca il y a 10 ans
Parent
commit
b950812eb8

+ 4 - 2
ambari-common/src/main/python/resource_management/core/utils.py

@@ -20,8 +20,6 @@ Ambari Agent
 
 
 """
 """
 
 
-import grp
-import pwd
 from resource_management.core.exceptions import Fail
 from resource_management.core.exceptions import Fail
 
 
 class AttributeDictionary(object):
 class AttributeDictionary(object):
@@ -110,6 +108,8 @@ def checked_unite(dict1, dict2):
   return result
   return result
 
 
 def _coerce_uid(user):
 def _coerce_uid(user):
+  import pwd
+
   try:
   try:
     uid = int(user)
     uid = int(user)
   except ValueError:
   except ValueError:
@@ -121,6 +121,8 @@ def _coerce_uid(user):
 
 
 
 
 def _coerce_gid(group):
 def _coerce_gid(group):
+  import grp
+
   try:
   try:
     gid = int(group)
     gid = int(group)
   except ValueError:
   except ValueError:

+ 2 - 1
ambari-common/src/main/python/resource_management/libraries/functions/check_process_status.py

@@ -23,7 +23,6 @@ Ambari Agent
 from resource_management.core.exceptions import ComponentIsNotRunning
 from resource_management.core.exceptions import ComponentIsNotRunning
 from resource_management.core.logger import Logger
 from resource_management.core.logger import Logger
 from resource_management.core import shell
 from resource_management.core import shell
-from resource_management.core import sudo
 __all__ = ["check_process_status"]
 __all__ = ["check_process_status"]
 
 
 import os
 import os
@@ -37,6 +36,8 @@ def check_process_status(pid_file):
 
 
   @param pid_file: path to service pid file
   @param pid_file: path to service pid file
   """
   """
+  from resource_management.core import sudo
+
   if not pid_file or not os.path.isfile(pid_file):
   if not pid_file or not os.path.isfile(pid_file):
     raise ComponentIsNotRunning()
     raise ComponentIsNotRunning()
   
   

+ 1 - 1
ambari-common/src/main/python/resource_management/libraries/providers/modify_properties_file.py

@@ -26,7 +26,7 @@ from resource_management.libraries.functions.format import format
 from resource_management.core.environment import Environment
 from resource_management.core.environment import Environment
 from resource_management.core.source import InlineTemplate
 from resource_management.core.source import InlineTemplate
 from resource_management.core.logger import Logger
 from resource_management.core.logger import Logger
-from resource_management import sudo
+from resource_management.core import sudo
 
 
 
 
 class ModifyPropertiesFileProvider(Provider):
 class ModifyPropertiesFileProvider(Provider):