Uploaded image for project: 'Ambari'
  1. Ambari
  2. AMBARI-23665

ExecuteScript in resource_management is broken

    XMLWordPrintableJSON

Details

    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
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            kirill.popov Kirill
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: