[openstack-dev] [Murano] Errors on $.instance.deploy() ... WHEN RUNNING WITHOUT MURANO-AGENT RABBIT

Waines, Greg Greg.Waines at windriver.com
Tue Mar 7 00:49:55 UTC 2017


Thanks Stan … we’ll try this out.

Greg.

From: Stan Lagun <slagun at mirantis.com>
Date: Monday, March 6, 2017 at 6:10 PM
To: "openstack-dev at lists.openstack.org" <openstack-dev at lists.openstack.org>, Greg Waines <Greg.Waines at windriver.com>
Cc: "Sun, Yicheng (Jerry)" <Jerry.Sun at windriver.com>
Subject: Re: [openstack-dev] [Murano] Errors on $.instance.deploy() ... WHEN RUNNING WITHOUT MURANO-AGENT RABBIT

Hi Greg,

this is yet another similar bug in another place.
Here is the fix for you: https://review.openstack.org/#/c/442198/

Also please consider using LinuxInstance class instead of LinuxMuranoInstance.
LinuxInstance doesn't try to build agent config and push it through cloud-init and thus should not
have such problems

Regards,
Stan



On March 6, 2017 at 6:51:11 AM, Waines, Greg (greg.waines at windriver.com<mailto:greg.waines at windriver.com>) wrote:
Hey Stan,

We tried doing the changes from https://review.openstack.org/#/c/441477/
i.e.
    changing the first couple of lines in the __init__ of AgentListener in agent_listener.py
 class AgentListener(object):
     def __init__(self, name):
-        self._enabled = False
-        if CONF.engine.disable_murano_agent:
-            return
-        self._enabled = True
+        self._enabled = not CONF.engine.disable_murano_agent
         self._results_queue = str('-execution-results-%s' % name.lower())
         self._subscriptions = {}
         self._receive_thread = None


But still get the following issue:     ??? Any suggestions ???
Greg.



2017-03-06 14:24:01.870 28884 ERROR murano.common.engine [-]
  AttributeError: 'Agent' object has no attribute '_queue'
  Traceback (most recent call last):
    File "/tmp/murano-packages-cache/io.murano/0.0.0/3317e706ecd1417bb748361a6a3385d2/Classes/Environment.yaml", line 120:9 in method deploy of type io.murano.Environment
        $.applications.pselect($.deploy())
    File "/tmp/murano-packages-cache/wrs.titanium.murano.examples.VmFip_NoAppDeploy/0.0.0/829a861c408a4516b0589d04cce23248/Classes/VmFip_NoAppDeploy.yaml", line 41:13 in method deploy of type wrs.titanium.murano.examples.VmFip_NoAppDeploy
        $.instance.deploy()
    File "/tmp/murano-packages-cache/io.murano/0.0.0/3317e706ecd1417bb748361a6a3385d2/Classes/resources/Instance.yaml", line 193:9 in method deploy of type io.murano.resources.Instance
        $this.beginDeploy()
    File "/tmp/murano-packages-cache/io.murano/0.0.0/3317e706ecd1417bb748361a6a3385d2/Classes/resources/Instance.yaml", line 131:28 in method beginDeploy of type io.murano.resources.Instance
        $.prepareUserData()
    File "/tmp/murano-packages-cache/io.murano/0.0.0/3317e706ecd1417bb748361a6a3385d2/Classes/resources/LinuxMuranoInstance.yaml", line 14:19 in method prepareUserData of type io.murano.resources.LinuxMuranoInstance
        $.generateUserData()
    File "/tmp/murano-packages-cache/io.murano/0.0.0/3317e706ecd1417bb748361a6a3385d2/Classes/resources/LinuxMuranoInstance.yaml", line 80:39 in method generateUserData of type io.murano.resources.LinuxMuranoInstance
        $.agent.queueName()
    File "/usr/lib/python2.7/site-packages/murano/dsl/helpers.py", line 58 in method evaluate
        for d_key, d_value in six.iteritems(value))
    File "/usr/lib/python2.7/site-packages/yaql/language/utils.py", line 122 in method __init__
        self._d = dict(*args, **kwargs)
    File "/usr/lib/python2.7/site-packages/murano/dsl/helpers.py", line 58 in method <genexpr>
        for d_key, d_value in six.iteritems(value))
    File "/usr/lib/python2.7/site-packages/murano/dsl/helpers.py", line 53 in method evaluate
        return value(context)
    File "/usr/lib/python2.7/site-packages/murano/dsl/yaql_expression.py", line 85 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<http://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<http://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 183 in method op_dot
        return operator(ctx2, receiver, expr)
    File "/usr/lib/python2.7/site-packages/yaql/language/yaqltypes.py", line 323 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/murano/dsl/yaql_functions.py", line 183 in method op_dot
        return operator(ctx2, receiver, expr)
    File "/usr/lib/python2.7/site-packages/yaql/language/yaqltypes.py", line 323 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 269 in method func
        engine, args, kwargs)
    File "/usr/lib/python2.7/site-packages/yaql/language/yaqltypes.py", line 236 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<http://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 246 in method payload
        __receiver, args, kwargs, __context, True), __context)
    File "/usr/lib/python2.7/site-packages/murano/dsl/murano_method.py", line 230 in method invoke
        self, this, context, args, kwargs, skip_stub)
    File "/usr/lib/python2.7/site-packages/murano/dsl/executor.py", line 163 in method invoke_method
        result = call()
    File "/usr/lib/python2.7/site-packages/murano/dsl/executor.py", line 153 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 192 in method payload
        return body(__self.extension, *args, **kwargs)
    File "/usr/lib/python2.7/site-packages/murano/engine/system/agent.py", line 71 in method queue_name
        return self._queue





From: Stan Lagun <slagun at mirantis.com<mailto:slagun at mirantis.com>>
Reply-To: "openstack-dev at lists.openstack.org<mailto:openstack-dev at lists.openstack.org>" <openstack-dev at lists.openstack.org<mailto:openstack-dev at lists.openstack.org>>
Date: Friday, March 3, 2017 at 4:16 PM
To: "openstack-dev at lists.openstack.org<mailto:openstack-dev at lists.openstack.org>" <openstack-dev at lists.openstack.org<mailto:openstack-dev at lists.openstack.org>>
Subject: Re: [openstack-dev] [Murano] Errors on $.instance.deploy() ... WHEN RUNNING WITHOUT MURANO-AGENT RABBIT

Greg,

you're right in everything you said.

This was fixed in master in https://review.openstack.org/#/c/387993/ with intent to fix tests and unblock the gate. But since those tests were introduced in Ocata the fix was not backported to Newton.
So I've just did a partial packport of the root cause fix. Here it is: https://review.openstack.org/#/c/441477/


Sincerely yours,
Stan Lagun
Principal Software Engineer @ Mirantis


On Fri, Mar 3, 2017 at 11:49 AM, Waines, Greg <Greg.Waines at windriver.com<mailto:Greg.Waines at windriver.com>> wrote:
Looking for guidance on fixing the following error (end of email) that we are seeing when ‘deploying’ a very simple murano package/app on a Murano deployment WITHOUT the second rabbit server for murano-agent.

So we have a NEWTON-version of MURANO integrated into our OpenStack solution.

We have modified murano.conf:
     …
     # Disallow the use of murano-agent (boolean value)
     disable_murano_agent = true
     …

We are NOT even running the second rabbit server for communication with murano-agent.

With a very simple murano package/app, that basically just does a “ $.instance.deploy() “ in its deploy method of its main class.
( NOTE:  I have tested this murano package/app on other Murano setups and it works … although those Murano setups had murano-agent and second rabbit enabled. )

And we get the following traceback error (see end of email).

Questions:
    - I believe this is a valid configuration
    - but does anyone actually run Murano in this type of setup ?   I am guessing not many … so is this an upstream murano bug that I am seeing ? … that nobody else sees because basically no one runs in this mode ?

    - if this should work, and works in other setups,
      … any guidance on how to resolve / debug what is going on here ?


Thanks in advance,
Greg.



2017-03-03 17:46:35.175 12568 ERROR murano.common.engine [-]
  AttributeError: 'AgentListener' object has no attribute '_results_queue'
  Traceback (most recent call last):
    File "/tmp/murano-packages-cache/io.murano/0.0.0/3317e706ecd1417bb748361a6a3385d2/Classes/Environment.yaml", line 120:9 in method deploy of type io.murano.Environment
        $.applications.pselect($.deploy())
    File "/tmp/murano-packages-cache/wrs.titanium.murano.examples.VmFip_NoAppDeploy/0.0.0/829a861c408a4516b0589d04cce23248/Classes/VmFip_NoAppDeploy.yaml", line 41:13 in method deploy of type wrs.titanium.murano.examples.VmFip_NoAppDeploy
        $.instance.deploy()
    File "/tmp/murano-packages-cache/io.murano/0.0.0/3317e706ecd1417bb748361a6a3385d2/Classes/resources/Instance.yaml", line 193:9 in method deploy of type io.murano.resources.Instance
        $this.beginDeploy()
    File "/tmp/murano-packages-cache/io.murano/0.0.0/3317e706ecd1417bb748361a6a3385d2/Classes/resources/Instance.yaml", line 131:28 in method beginDeploy of type io.murano.resources.Instance
        $.prepareUserData()
    File "/tmp/murano-packages-cache/io.murano/0.0.0/3317e706ecd1417bb748361a6a3385d2/Classes/resources/LinuxMuranoInstance.yaml", line 14:19 in method prepareUserData of type io.murano.resources.LinuxMuranoInstance
        $.generateUserData()
    File "/tmp/murano-packages-cache/io.murano/0.0.0/3317e706ecd1417bb748361a6a3385d2/Classes/resources/LinuxMuranoInstance.yaml", line 81:31 in method generateUserData of type io.murano.resources.LinuxMuranoInstance
        $region.agentListener.queueName()
    File "/usr/lib/python2.7/site-packages/murano/dsl/helpers.py", line 58 in method evaluate
        for d_key, d_value in six.iteritems(value))
    File "/usr/lib/python2.7/site-packages/yaql/language/utils.py", line 122 in method __init__
        self._d = dict(*args, **kwargs)
    File "/usr/lib/python2.7/site-packages/murano/dsl/helpers.py", line 58 in method <genexpr>
        for d_key, d_value in six.iteritems(value))
    File "/usr/lib/python2.7/site-packages/murano/dsl/helpers.py", line 53 in method evaluate
        return value(context)
    File "/usr/lib/python2.7/site-packages/murano/dsl/yaql_expression.py", line 85 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<http://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<http://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 183 in method op_dot
        return operator(ctx2, receiver, expr)
    File "/usr/lib/python2.7/site-packages/yaql/language/yaqltypes.py", line 323 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/murano/dsl/yaql_functions.py", line 183 in method op_dot
        return operator(ctx2, receiver, expr)
    File "/usr/lib/python2.7/site-packages/yaql/language/yaqltypes.py", line 323 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 269 in method func
        engine, args, kwargs)
    File "/usr/lib/python2.7/site-packages/yaql/language/yaqltypes.py", line 236 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<http://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 246 in method payload
        __receiver, args, kwargs, __context, True), __context)
    File "/usr/lib/python2.7/site-packages/murano/dsl/murano_method.py", line 230 in method invoke
        self, this, context, args, kwargs, skip_stub)
    File "/usr/lib/python2.7/site-packages/murano/dsl/executor.py", line 163 in method invoke_method
        result = call()
    File "/usr/lib/python2.7/site-packages/murano/dsl/executor.py", line 153 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 192 in method payload
        return body(__self.extension, *args, **kwargs)
    File "/usr/lib/python2.7/site-packages/murano/engine/system/agent_listener.py", line 58 in method queue_name
        return self._results_queue



__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe<http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20170307/e05a9f7c/attachment.html>


More information about the OpenStack-dev mailing list