Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
2.6.1
-
None
-
None
-
Ambari 2.6.1.3 is installed as RPM from http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.6.1.3 but the code in trunk looks the same: https://github.com/apache/ambari/blob/trunk/ambari-common/src/main/python/resource_management/core/providers/system.py
Description
When custom service script contains the following:
def configure(self, env, upgrade_type=None, config_dir=None): import params env.set_params(params) ExecuteScript( code=constants.some_string, interpreter='/usr/bin/env python', )
service installation fails with:
Traceback (most recent call last): File "/var/lib/ambari-agent/cache/stacks/HDP/2.6/services/HUE/package/scripts/customservice.py", line 82, in <module> CustomService().execute() File "/usr/lib/ambari-agent/lib/resource_management/libraries/script/script.py", line 375, in execute method(env) File "/var/lib/ambari-agent/cache/stacks/HDP/2.6/services/HUE/package/scripts/customservice.py", line 36, in install self.configure(env) File "/usr/lib/ambari-agent/lib/resource_management/libraries/script/script.py", line 120, in locking_configure original_configure(obj, *args, **kw) File "/var/lib/ambari-agent/cache/stacks/HDP/2.6/services/CUSTOM_SERVICE/package/scripts/customservice.py", line 44, in configure interpreter='/usr/bin/env python', TypeError: __new__() takes at least 2 arguments (1 given)
When ExecuteScript is called like:
def configure(self, env, upgrade_type=None, config_dir=None): import params env.set_params(params) ExecuteScript('some-text', code=constants.constants.some_string, interpreter='/usr/bin/env python', )
installation fails with:
Traceback (most recent call last): File "/var/lib/ambari-agent/cache/stacks/HDP/2.6/services/CUSTOM_SERVICE/package/scripts/customservice.py", line 82, in <module> CustomService().execute() File "/usr/lib/ambari-agent/lib/resource_management/libraries/script/script.py", line 375, in execute method(env) File "/var/lib/ambari-agent/cache/stacks/HDP/2.6/services/CUSTOM_SERVICE/package/scripts/customservice.py", line 36, in install self.configure(env) File "/usr/lib/ambari-agent/lib/resource_management/libraries/script/script.py", line 120, in locking_configure original_configure(obj, *args, **kw) File "/var/lib/ambari-agent/cache/stacks/HDP/2.6/services/CUSTOM_SERVICE/package/scripts/customservice.py", line 44, in configure interpreter='/usr/bin/env python', File "/usr/lib/ambari-agent/lib/resource_management/core/base.py", line 166, in __init__ self.env.run() File "/usr/lib/ambari-agent/lib/resource_management/core/environment.py", line 160, in run self.run_action(resource, action) File "/usr/lib/ambari-agent/lib/resource_management/core/environment.py", line 124, in run_action provider_action() File "/usr/lib/ambari-agent/lib/resource_management/core/providers/system.py", line 277, in action_run preexec_fn=_preexec_fn(self.resource)) NameError: global name '_preexec_fn' is not defined