Bug Description:
When using Nova Network as the driver for Murano, deployments fail with error [yaql.language.exceptions.NoMatchingMethodException]: No method "joinInstance" for receiver <io.murano.resources.NovaNetwork/0.0.0 39ac362e04844b24a314d903127ad143 (139992452798544)> matches supplied arguments.
Commit 103f67815a1cb2c514241fbf2e897684b5a269ae added a securityGroups parameter to the joinInstance method in meta/io.murano/Classes/resources/NeutronNetwork.yaml, but not in meta/io.murano/Classes/resources/NovaNetwork.yaml
Steps to reproduce:
1. Set driver=nova in Murano's configuration file.
2. Try to deploy an application in an environment
Additional information:
Log from murano-engine
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: yaql.language.exceptions.NoMatchingMethodException: No method "joinInstance" for receiver <io.murano.resources.NovaNetwork/0.0.0 39ac362e04844b24a314d9
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: Traceback (most recent call last):
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/tmp/murano-packages-cache/io.murano/0.0.0/338e3799163e441c985f548eac3c3de3/Classes/Environment.yaml", line 120:9 in method deploy of type io.m
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: $.applications.pselect($.deploy())
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/tmp/murano-packages-cache/io.murano.applications/0.0.0/b895bd7bb64a459cb561756fa9adf453/Classes/baseapps.yaml", line 56:9 in method deploy of
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: $this.deployAt($this.servers)
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/tmp/murano-packages-cache/io.murano.applications/0.0.0/b895bd7bb64a459cb561756fa9adf453/Classes/component.yaml", line 402:9 in method deployAt
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: $serverGroup.deploy()
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/tmp/murano-packages-cache/io.murano.applications/0.0.0/b895bd7bb64a459cb561756fa9adf453/Classes/servers.yaml", line 162:9 in method deploy of
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: $this.deployServers($this, $this.items)
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/tmp/murano-packages-cache/io.murano.applications/0.0.0/b895bd7bb64a459cb561756fa9adf453/Classes/servers.yaml", line 41:9 in method deployServe
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: $servers.select($this._deployServer($, $environment, $serverGroup))
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/tmp/murano-packages-cache/io.murano.applications/0.0.0/b895bd7bb64a459cb561756fa9adf453/Classes/servers.yaml", line 67:9 in method _deployServ
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: $server.beginDeploy()
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/tmp/murano-packages-cache/io.murano/0.0.0/338e3799163e441c985f548eac3c3de3/Classes/resources/Instance.yaml", line 141:11 in method beginDeploy
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: $.joinNet($region.defaultNetworks.environment, $securityGroupName, $this.securityGroups)
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/tmp/murano-packages-cache/io.murano/0.0.0/338e3799163e441c985f548eac3c3de3/Classes/resources/Instance.yaml", line 266:22 in method joinNet of
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: $net.joinInstance( instance => $this, securityGroupName => $securityGroupName, securityGroups => $securityGroups, assignFloatingIp => $assignFip,
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/opt/stack/murano/murano/dsl/helpers.py", line 55 in method evaluate
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: return value(context)
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/opt/stack/murano/murano/dsl/yaql_expression.py", line 85 in method __call__
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: return self._parsed_expression.evaluate(context=context)
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/usr/local/lib/python2.7/dist-packages/yaql/language/expressions.py", line 168 in method evaluate
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: return self(utils.NO_VALUE, context, self.engine)
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/usr/local/lib/python2.7/dist-packages/yaql/language/expressions.py", line 156 in method __call__
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: return super(Statement, self).__call__(receiver, context, engine)
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/usr/local/lib/python2.7/dist-packages/yaql/language/expressions.py", line 37 in method __call__
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: return context(self.name, engine, receiver, context)(*self.args)
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/usr/local/lib/python2.7/dist-packages/yaql/language/contexts.py", line 65 in method <lambda>
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: data_context, use_convention, function_filter)
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/usr/local/lib/python2.7/dist-packages/yaql/language/runner.py", line 49 in method call
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: name, all_overloads, engine, receiver, data_context, args, kwargs)
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/usr/local/lib/python2.7/dist-packages/yaql/language/runner.py", line 117 in method choose_overload
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: args = tuple(arg_evaluator(i, arg) for i, arg in enumerate(args))
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/usr/local/lib/python2.7/dist-packages/yaql/language/runner.py", line 117 in method <genexpr>
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: args = tuple(arg_evaluator(i, arg) for i, arg in enumerate(args))
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/usr/local/lib/python2.7/dist-packages/yaql/language/runner.py", line 113 in method <lambda>
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: and not isinstance(arg, expressions.Constant))
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/usr/local/lib/python2.7/dist-packages/yaql/language/expressions.py", line 37 in method __call__
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: return context(self.name, engine, receiver, context)(*self.args)
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/usr/local/lib/python2.7/dist-packages/yaql/language/contexts.py", line 65 in method <lambda>
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: data_context, use_convention, function_filter)
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/usr/local/lib/python2.7/dist-packages/yaql/language/runner.py", line 51 in method call
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: result = delegate()
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/usr/local/lib/python2.7/dist-packages/yaql/language/runner.py", line 142 in method <lambda>
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: return lambda: delegate()
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/usr/local/lib/python2.7/dist-packages/yaql/language/specs.py", line 346 in method func
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: six.iteritems(keyword_args)))
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/opt/stack/murano/murano/dsl/yaql_functions.py", line 188 in method op_dot
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: return operator(ctx2, receiver, expr)
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/usr/local/lib/python2.7/dist-packages/yaql/language/yaqltypes.py", line 349 in method func
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: new_name, engine, new_receiver, new_context)(*args, **kwargs)
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/usr/local/lib/python2.7/dist-packages/yaql/language/contexts.py", line 65 in method <lambda>
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: data_context, use_convention, function_filter)
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/usr/local/lib/python2.7/dist-packages/yaql/language/runner.py", line 51 in method call
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: result = delegate()
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/usr/local/lib/python2.7/dist-packages/yaql/language/runner.py", line 142 in method <lambda>
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: return lambda: delegate()
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/usr/local/lib/python2.7/dist-packages/yaql/language/specs.py", line 346 in method func
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: six.iteritems(keyword_args)))
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/usr/local/lib/python2.7/dist-packages/yaql/standard_library/system.py", line 63 in method op_dot
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: return expr(receiver)
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/usr/local/lib/python2.7/dist-packages/yaql/language/yaqltypes.py", line 293 in method func
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: engine, args, kwargs)
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/usr/local/lib/python2.7/dist-packages/yaql/language/yaqltypes.py", line 260 in method _call
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: result = value(receiver, context, engine)
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/usr/local/lib/python2.7/dist-packages/yaql/language/expressions.py", line 37 in method __call__
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: return context(self.name, engine, receiver, context)(*self.args)
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/usr/local/lib/python2.7/dist-packages/yaql/language/contexts.py", line 65 in method <lambda>
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: data_context, use_convention, function_filter)
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/usr/local/lib/python2.7/dist-packages/yaql/language/runner.py", line 51 in method call
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: result = delegate()
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/usr/local/lib/python2.7/dist-packages/yaql/language/runner.py", line 142 in method <lambda>
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: return lambda: delegate()
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/usr/local/lib/python2.7/dist-packages/yaql/language/specs.py", line 346 in method func
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: six.iteritems(keyword_args)))
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/opt/stack/murano/murano/dsl/yaql_integration.py", line 298 in method payload
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: return murano_method.invoke(__receiver, args, kwargs, __context, True)
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/opt/stack/murano/murano/dsl/murano_method.py", line 230 in method invoke
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: self, this, context, args, kwargs, skip_stub)
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/opt/stack/murano/murano/dsl/executor.py", line 118 in method invoke_method
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: method.arguments_scheme, args, kwargs, method.name, this)
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: File "/opt/stack/murano/murano/dsl/executor.py", line 304 in method _canonize_parameters
Aug 14 07:42:57 ubuntu-murano murano-engine[3204]: method_name, receiver): MuranoPlException: [yaql.language.exceptions.NoMatchingMethodException]: No method "joinInstance" for receiver <io.murano
Fix proposed to branch: master /review. openstack. org/493497
Review: https:/