← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1526279] [NEW] murano-agent can't ship binary file to nova instance

 

Public bug reported:

1. I want to use murano-agent to ship rpm package to nova instance, and got the following error:
2015-12-15 10:05:33.735 1 ERROR murano.common.engine [-] 
  exceptions.UnicodeDecodeError: 'ascii' codec can't decode byte 0xed in position 0: ordinal not in range(128)
  Traceback (most recent call last):
    File "/tmp/murano-packages-cache/585c671065534988ba95fc81fe9dcc2e/3e0ed1ccc50f4e189612969273768666/Classes/Environment.yaml", line 82:9 in method deploy of class io.murano.Environment
        $.applications.pselect($.deploy())
    File "/tmp/murano-packages-cache/585c671065534988ba95fc81fe9dcc2e/f69c326e5cc5401881a7701f300f319b/Classes/MRF.yaml", line 249:13 in method deploy of class com.alu.apps.mrf.MRF
        $.mistralAgent.call($template, $resources)
    File "/usr/lib/python2.7/site-packages/murano/dsl/helpers.py", line 45 in method evaluate
        return value(context)
    File "/usr/lib/python2.7/site-packages/murano/dsl/yaql_expression.py", line 82 in method __call__
        return self._parsed_expression.evaluate(context=context)
    File "/usr/lib/python2.7/site-packages/yaql/language/expressions.py", line 165 in method evaluate
        return self(utils.NO_VALUE, context, self.engine)
    File "/usr/lib/python2.7/site-packages/yaql/language/expressions.py", line 156 in method __call__
        return super(Statement, self).__call__(receiver, context, engine)
    File "/usr/lib/python2.7/site-packages/yaql/language/expressions.py", line 37 in method __call__
        return context(self.name, engine, receiver, context)(*self.args)
    File "/usr/lib/python2.7/site-packages/yaql/language/contexts.py", line 65 in method <lambda>
        data_context, use_convention, function_filter)
    File "/usr/lib/python2.7/site-packages/yaql/language/runner.py", line 49 in method call
        name, all_overloads, engine, receiver, data_context, args, kwargs)
    File "/usr/lib/python2.7/site-packages/yaql/language/runner.py", line 117 in method choose_overload
        args = tuple(arg_evaluator(i, arg) for i, arg in enumerate(args))
    File "/usr/lib/python2.7/site-packages/yaql/language/runner.py", line 117 in method <genexpr>
        args = tuple(arg_evaluator(i, arg) for i, arg in enumerate(args))
    File "/usr/lib/python2.7/site-packages/yaql/language/runner.py", line 113 in method <lambda>
        and not isinstance(arg, expressions.Constant))
    File "/usr/lib/python2.7/site-packages/yaql/language/expressions.py", line 37 in method __call__
        return context(self.name, engine, receiver, context)(*self.args)
    File "/usr/lib/python2.7/site-packages/yaql/language/contexts.py", line 65 in method <lambda>
        data_context, use_convention, function_filter)
    File "/usr/lib/python2.7/site-packages/yaql/language/runner.py", line 51 in method call
        result = delegate()
    File "/usr/lib/python2.7/site-packages/yaql/language/runner.py", line 142 in method <lambda>
        return lambda: delegate()
    File "/usr/lib/python2.7/site-packages/yaql/language/specs.py", line 341 in method func
        six.iteritems(keyword_args)))
    File "/usr/lib/python2.7/site-packages/murano/dsl/yaql_functions.py", line 140 in method op_dot
        return operator(ctx2, sender, expr)
    File "/usr/lib/python2.7/site-packages/yaql/language/yaqltypes.py", line 290 in method func
        new_name, engine, new_receiver, new_context)(*args, **kwargs)
    File "/usr/lib/python2.7/site-packages/yaql/language/contexts.py", line 65 in method <lambda>
        data_context, use_convention, function_filter)
    File "/usr/lib/python2.7/site-packages/yaql/language/runner.py", line 51 in method call
        result = delegate()
    File "/usr/lib/python2.7/site-packages/yaql/language/runner.py", line 142 in method <lambda>
        return lambda: delegate()
    File "/usr/lib/python2.7/site-packages/yaql/language/specs.py", line 341 in method func
        six.iteritems(keyword_args)))
    File "/usr/lib/python2.7/site-packages/yaql/standard_library/system.py", line 34 in method op_dot
        return expr(receiver)
    File "/usr/lib/python2.7/site-packages/yaql/language/yaqltypes.py", line 236 in method func
        engine, args, kwargs)
    File "/usr/lib/python2.7/site-packages/yaql/language/yaqltypes.py", line 205 in method _call
        result = value(receiver, context, engine)
    File "/usr/lib/python2.7/site-packages/yaql/language/expressions.py", line 37 in method __call__
        return context(self.name, engine, receiver, context)(*self.args)
    File "/usr/lib/python2.7/site-packages/yaql/language/contexts.py", line 65 in method <lambda>
        data_context, use_convention, function_filter)
    File "/usr/lib/python2.7/site-packages/yaql/language/runner.py", line 51 in method call
        result = delegate()
    File "/usr/lib/python2.7/site-packages/yaql/language/runner.py", line 142 in method <lambda>
        return lambda: delegate()
    File "/usr/lib/python2.7/site-packages/yaql/language/specs.py", line 341 in method func
        six.iteritems(keyword_args)))
    File "/usr/lib/python2.7/site-packages/murano/dsl/yaql_integration.py", line 189 in method payload
        executor, __sender, args, kwargs, __context, True), __context)
    File "/usr/lib/python2.7/site-packages/murano/dsl/murano_method.py", line 116 in method invoke
        context, args, kwargs, skip_stub)
    File "/usr/lib/python2.7/site-packages/murano/dsl/executor.py", line 113 in method invoke_method
        result = call()
    File "/usr/lib/python2.7/site-packages/murano/dsl/executor.py", line 105 in method call
        yaql_engine, context, native_this)(*args, **kwargs)
    File "/usr/lib/python2.7/site-packages/yaql/language/specs.py", line 60 in method func
        return self.get_delegate(receiver, engine, context, args, kwargs)()
    File "/usr/lib/python2.7/site-packages/yaql/language/specs.py", line 341 in method func
        six.iteritems(keyword_args)))
    File "/usr/lib/python2.7/site-packages/murano/dsl/yaql_integration.py", line 165 in method payload
        return body(*args, **kwargs)
    File "/usr/lib/python2.7/site-packages/murano/engine/system/agent.py", line 129 in method call
        plan = self.build_execution_plan(template, resources())
    File "/usr/lib/python2.7/site-packages/murano/engine/system/agent.py", line 216 in method build_execution_plan
        return self._build_v2_execution_plan(template, resources)
    File "/usr/lib/python2.7/site-packages/murano/engine/system/agent.py", line 255 in method _build_v2_execution_plan
        scripts_folder, file, template, resources, files)
    File "/usr/lib/python2.7/site-packages/murano/engine/system/agent.py", line 317 in method _place_file
        file, resources, folder)
    File "/usr/lib/python2.7/site-packages/murano/engine/system/agent.py", line 335 in method _get_file_description
        body = self._get_body(file_value, resources, folder)
    File "/usr/lib/python2.7/site-packages/murano/engine/system/agent.py", line 295 in method _get_body
        body = resources.string(os.path.join(folder, file))
    File "/usr/lib/python2.7/site-packages/murano/dsl/dsl.py", line 140 in method func
        helpers.get_context())
    File "/usr/lib/python2.7/site-packages/murano/dsl/murano_class.py", line 224 in method invoke
        return method.invoke(executor, this, args, kwargs, context)
    File "/usr/lib/python2.7/site-packages/murano/dsl/murano_method.py", line 116 in method invoke
        context, args, kwargs, skip_stub)
    File "/usr/lib/python2.7/site-packages/murano/dsl/executor.py", line 80 in method invoke_method
        yaql_engine, method_context, this.real_this)(*args, **kwargs)
    File "/usr/lib/python2.7/site-packages/yaql/language/specs.py", line 60 in method func
        return self.get_delegate(receiver, engine, context, args, kwargs)()
    File "/usr/lib/python2.7/site-packages/yaql/language/specs.py", line 341 in method func
        six.iteritems(keyword_args)))
    File "/usr/lib/python2.7/site-packages/murano/dsl/yaql_integration.py", line 189 in method payload
        executor, __sender, args, kwargs, __context, True), __context)
    File "/usr/lib/python2.7/site-packages/murano/dsl/murano_method.py", line 116 in method invoke
        context, args, kwargs, skip_stub)
    File "/usr/lib/python2.7/site-packages/murano/dsl/executor.py", line 114 in method invoke_method
        log(result)
    File "/usr/lib/python2.7/site-packages/murano/dsl/executor.py", line 169 in method log_result
        thread=thread_id, method=method_name, result=result))

2. It is caused by the binary file can't be decoded to be ASCII.
3. After I commented "                    log(result)" in function MuranoDslExecutor.invoke_method, it can work well with no problem.
I suspect murano-agent has the ability to ship binary file to nova instance,  but the log print here blocks this function.

Please help to check,
Thanks,
Tony

** Affects: horizon
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Dashboard (Horizon).
https://bugs.launchpad.net/bugs/1526279

Title:
  murano-agent can't ship binary file to nova instance

Status in OpenStack Dashboard (Horizon):
  New

Bug description:
  1. I want to use murano-agent to ship rpm package to nova instance, and got the following error:
  2015-12-15 10:05:33.735 1 ERROR murano.common.engine [-] 
    exceptions.UnicodeDecodeError: 'ascii' codec can't decode byte 0xed in position 0: ordinal not in range(128)
    Traceback (most recent call last):
      File "/tmp/murano-packages-cache/585c671065534988ba95fc81fe9dcc2e/3e0ed1ccc50f4e189612969273768666/Classes/Environment.yaml", line 82:9 in method deploy of class io.murano.Environment
          $.applications.pselect($.deploy())
      File "/tmp/murano-packages-cache/585c671065534988ba95fc81fe9dcc2e/f69c326e5cc5401881a7701f300f319b/Classes/MRF.yaml", line 249:13 in method deploy of class com.alu.apps.mrf.MRF
          $.mistralAgent.call($template, $resources)
      File "/usr/lib/python2.7/site-packages/murano/dsl/helpers.py", line 45 in method evaluate
          return value(context)
      File "/usr/lib/python2.7/site-packages/murano/dsl/yaql_expression.py", line 82 in method __call__
          return self._parsed_expression.evaluate(context=context)
      File "/usr/lib/python2.7/site-packages/yaql/language/expressions.py", line 165 in method evaluate
          return self(utils.NO_VALUE, context, self.engine)
      File "/usr/lib/python2.7/site-packages/yaql/language/expressions.py", line 156 in method __call__
          return super(Statement, self).__call__(receiver, context, engine)
      File "/usr/lib/python2.7/site-packages/yaql/language/expressions.py", line 37 in method __call__
          return context(self.name, engine, receiver, context)(*self.args)
      File "/usr/lib/python2.7/site-packages/yaql/language/contexts.py", line 65 in method <lambda>
          data_context, use_convention, function_filter)
      File "/usr/lib/python2.7/site-packages/yaql/language/runner.py", line 49 in method call
          name, all_overloads, engine, receiver, data_context, args, kwargs)
      File "/usr/lib/python2.7/site-packages/yaql/language/runner.py", line 117 in method choose_overload
          args = tuple(arg_evaluator(i, arg) for i, arg in enumerate(args))
      File "/usr/lib/python2.7/site-packages/yaql/language/runner.py", line 117 in method <genexpr>
          args = tuple(arg_evaluator(i, arg) for i, arg in enumerate(args))
      File "/usr/lib/python2.7/site-packages/yaql/language/runner.py", line 113 in method <lambda>
          and not isinstance(arg, expressions.Constant))
      File "/usr/lib/python2.7/site-packages/yaql/language/expressions.py", line 37 in method __call__
          return context(self.name, engine, receiver, context)(*self.args)
      File "/usr/lib/python2.7/site-packages/yaql/language/contexts.py", line 65 in method <lambda>
          data_context, use_convention, function_filter)
      File "/usr/lib/python2.7/site-packages/yaql/language/runner.py", line 51 in method call
          result = delegate()
      File "/usr/lib/python2.7/site-packages/yaql/language/runner.py", line 142 in method <lambda>
          return lambda: delegate()
      File "/usr/lib/python2.7/site-packages/yaql/language/specs.py", line 341 in method func
          six.iteritems(keyword_args)))
      File "/usr/lib/python2.7/site-packages/murano/dsl/yaql_functions.py", line 140 in method op_dot
          return operator(ctx2, sender, expr)
      File "/usr/lib/python2.7/site-packages/yaql/language/yaqltypes.py", line 290 in method func
          new_name, engine, new_receiver, new_context)(*args, **kwargs)
      File "/usr/lib/python2.7/site-packages/yaql/language/contexts.py", line 65 in method <lambda>
          data_context, use_convention, function_filter)
      File "/usr/lib/python2.7/site-packages/yaql/language/runner.py", line 51 in method call
          result = delegate()
      File "/usr/lib/python2.7/site-packages/yaql/language/runner.py", line 142 in method <lambda>
          return lambda: delegate()
      File "/usr/lib/python2.7/site-packages/yaql/language/specs.py", line 341 in method func
          six.iteritems(keyword_args)))
      File "/usr/lib/python2.7/site-packages/yaql/standard_library/system.py", line 34 in method op_dot
          return expr(receiver)
      File "/usr/lib/python2.7/site-packages/yaql/language/yaqltypes.py", line 236 in method func
          engine, args, kwargs)
      File "/usr/lib/python2.7/site-packages/yaql/language/yaqltypes.py", line 205 in method _call
          result = value(receiver, context, engine)
      File "/usr/lib/python2.7/site-packages/yaql/language/expressions.py", line 37 in method __call__
          return context(self.name, engine, receiver, context)(*self.args)
      File "/usr/lib/python2.7/site-packages/yaql/language/contexts.py", line 65 in method <lambda>
          data_context, use_convention, function_filter)
      File "/usr/lib/python2.7/site-packages/yaql/language/runner.py", line 51 in method call
          result = delegate()
      File "/usr/lib/python2.7/site-packages/yaql/language/runner.py", line 142 in method <lambda>
          return lambda: delegate()
      File "/usr/lib/python2.7/site-packages/yaql/language/specs.py", line 341 in method func
          six.iteritems(keyword_args)))
      File "/usr/lib/python2.7/site-packages/murano/dsl/yaql_integration.py", line 189 in method payload
          executor, __sender, args, kwargs, __context, True), __context)
      File "/usr/lib/python2.7/site-packages/murano/dsl/murano_method.py", line 116 in method invoke
          context, args, kwargs, skip_stub)
      File "/usr/lib/python2.7/site-packages/murano/dsl/executor.py", line 113 in method invoke_method
          result = call()
      File "/usr/lib/python2.7/site-packages/murano/dsl/executor.py", line 105 in method call
          yaql_engine, context, native_this)(*args, **kwargs)
      File "/usr/lib/python2.7/site-packages/yaql/language/specs.py", line 60 in method func
          return self.get_delegate(receiver, engine, context, args, kwargs)()
      File "/usr/lib/python2.7/site-packages/yaql/language/specs.py", line 341 in method func
          six.iteritems(keyword_args)))
      File "/usr/lib/python2.7/site-packages/murano/dsl/yaql_integration.py", line 165 in method payload
          return body(*args, **kwargs)
      File "/usr/lib/python2.7/site-packages/murano/engine/system/agent.py", line 129 in method call
          plan = self.build_execution_plan(template, resources())
      File "/usr/lib/python2.7/site-packages/murano/engine/system/agent.py", line 216 in method build_execution_plan
          return self._build_v2_execution_plan(template, resources)
      File "/usr/lib/python2.7/site-packages/murano/engine/system/agent.py", line 255 in method _build_v2_execution_plan
          scripts_folder, file, template, resources, files)
      File "/usr/lib/python2.7/site-packages/murano/engine/system/agent.py", line 317 in method _place_file
          file, resources, folder)
      File "/usr/lib/python2.7/site-packages/murano/engine/system/agent.py", line 335 in method _get_file_description
          body = self._get_body(file_value, resources, folder)
      File "/usr/lib/python2.7/site-packages/murano/engine/system/agent.py", line 295 in method _get_body
          body = resources.string(os.path.join(folder, file))
      File "/usr/lib/python2.7/site-packages/murano/dsl/dsl.py", line 140 in method func
          helpers.get_context())
      File "/usr/lib/python2.7/site-packages/murano/dsl/murano_class.py", line 224 in method invoke
          return method.invoke(executor, this, args, kwargs, context)
      File "/usr/lib/python2.7/site-packages/murano/dsl/murano_method.py", line 116 in method invoke
          context, args, kwargs, skip_stub)
      File "/usr/lib/python2.7/site-packages/murano/dsl/executor.py", line 80 in method invoke_method
          yaql_engine, method_context, this.real_this)(*args, **kwargs)
      File "/usr/lib/python2.7/site-packages/yaql/language/specs.py", line 60 in method func
          return self.get_delegate(receiver, engine, context, args, kwargs)()
      File "/usr/lib/python2.7/site-packages/yaql/language/specs.py", line 341 in method func
          six.iteritems(keyword_args)))
      File "/usr/lib/python2.7/site-packages/murano/dsl/yaql_integration.py", line 189 in method payload
          executor, __sender, args, kwargs, __context, True), __context)
      File "/usr/lib/python2.7/site-packages/murano/dsl/murano_method.py", line 116 in method invoke
          context, args, kwargs, skip_stub)
      File "/usr/lib/python2.7/site-packages/murano/dsl/executor.py", line 114 in method invoke_method
          log(result)
      File "/usr/lib/python2.7/site-packages/murano/dsl/executor.py", line 169 in method log_result
          thread=thread_id, method=method_name, result=result))

  2. It is caused by the binary file can't be decoded to be ASCII.
  3. After I commented "                    log(result)" in function MuranoDslExecutor.invoke_method, it can work well with no problem.
  I suspect murano-agent has the ability to ship binary file to nova instance,  but the log print here blocks this function.

  Please help to check,
  Thanks,
  Tony

To manage notifications about this bug go to:
https://bugs.launchpad.net/horizon/+bug/1526279/+subscriptions


Follow ups