After updating murano via murano plugin any deployments will fail

Bug #1624723 reported by Alex Kholkin on 2016-09-17
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Fuel for OpenStack
High
Oleksiy Molchanov
8.0.x
High
MOS Maintenance
Mitaka
High
Oleksiy Molchanov
Newton
High
Oleksiy Molchanov
fuel-plugin-murano
High
Denis Egorenko

Bug Description

Bug description:
After deployment 9.0 with murano from the box you can upgrade it via murano plugin. But after it any deployment will fail.

Steps to reproduce:
1. deploy mos 9.0 with enabled murano from the box(use one controller and 1 compute)
2. install fuel murano plugin
3. enable fuel murano plugin in the fuel ui and disable regular murano
4. deploy changes
5. run "Check application deployment in Murano environment with GLARE" OSTF

Actual result:
test will pass

Expected result:
test failed

Additional information:

after installing murano from the box and upgrading murano via plugin there is the same output for the next command:
root@node-1:~# murano --version
0.8.4

part of the log from murano-engine.log:
2016-09-17 11:44:22.898 16461 ERROR murano.common.engine [-]
  murano.dsl.exceptions.NoClassFound: Class "io.murano.CloudRegion" is not found in io.murano/0.0.0
  Traceback (most recent call last):
    File <unknown> in method None
        None
    File "/tmp/murano-packages-cache/io.murano/0.0.0/7520be46-a85d-42a9-925e-5c44cb4a2258/Classes/resources/NeutronNetwork.yaml", line 56:25 in
 method .init of type io.murano.resources.NeutronNetwork
        new(sys:NetworkExplorer, $._environment)
    File "/usr/lib/python2.7/dist-packages/murano/dsl/helpers.py", line 52 in method evaluate
        return value(context)
    File "/usr/lib/python2.7/dist-packages/murano/dsl/yaql_expression.py", line 85 in method __call__
        return self._parsed_expression.evaluate(context=context)
    File "/usr/lib/python2.7/dist-packages/yaql/language/expressions.py", line 165 in method evaluate
        return self(utils.NO_VALUE, context, self.engine)
    File "/usr/lib/python2.7/dist-packages/yaql/language/expressions.py", line 156 in method __call__
        return super(Statement, self).__call__(receiver, context, engine)
    File "/usr/lib/python2.7/dist-packages/yaql/language/expressions.py", line 37 in method __call__
        return context(self.name, engine, receiver, context)(*self.args)
    File "/usr/lib/python2.7/dist-packages/yaql/language/contexts.py", line 65 in method <lambda>
        data_context, use_convention, function_filter)
    File "/usr/lib/python2.7/dist-packages/yaql/language/runner.py", line 49 in method call
        name, all_overloads, engine, receiver, data_context, args, kwargs)
    File "/usr/lib/python2.7/dist-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/dist-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/dist-packages/yaql/language/runner.py", line 113 in method <lambda>
        and not isinstance(arg, expressions.Constant))
    File "/usr/lib/python2.7/dist-packages/yaql/language/expressions.py", line 37 in method __call__
        return context(self.name, engine, receiver, context)(*self.args)
    File "/usr/lib/python2.7/dist-packages/yaql/language/contexts.py", line 65 in method <lambda>
        data_context, use_convention, function_filter)
    File "/usr/lib/python2.7/dist-packages/yaql/language/runner.py", line 51 in method call
        result = delegate()
    File "/usr/lib/python2.7/dist-packages/yaql/language/runner.py", line 142 in method <lambda>
        return lambda: delegate()
    File "/usr/lib/python2.7/dist-packages/yaql/language/specs.py", line 341 in method func
        six.iteritems(keyword_args)))
    File "/usr/lib/python2.7/dist-packages/murano/dsl/yaql_functions.py", line 62 in method new
        scope_type=helpers.get_names_scope(__context))
    File "/usr/lib/python2.7/dist-packages/murano/dsl/object_store.py", line 66 in method load
        default_type=default_type, context=context)
    File "/usr/lib/python2.7/dist-packages/murano/dsl/object_store.py", line 155 in method load
        fn()
    File "/usr/lib/python2.7/dist-packages/murano/dsl/murano_object.py", line 139 in method <lambda>
        self, filtered_params[0], filtered_params[1], context)
    File "/usr/lib/python2.7/dist-packages/murano/dsl/murano_method.py", line 230 in method invoke
        self, this, context, args, kwargs, skip_stub)
    File "/usr/lib/python2.7/dist-packages/murano/dsl/executor.py", line 96 in method invoke_method
        *args, **kwargs)
    File "/usr/lib/python2.7/dist-packages/yaql/language/specs.py", line 60 in method func
        return self.get_delegate(receiver, engine, context, args, kwargs)()
    File "/usr/lib/python2.7/dist-packages/yaql/language/specs.py", line 341 in method func
        six.iteritems(keyword_args)))
    File "/usr/lib/python2.7/dist-packages/murano/dsl/yaql_integration.py", line 246 in method payload
        __receiver, args, kwargs, __context, True), __context)
    File "/usr/lib/python2.7/dist-packages/murano/dsl/murano_method.py", line 230 in method invoke
        self, this, context, args, kwargs, skip_stub)
    File "/usr/lib/python2.7/dist-packages/murano/dsl/executor.py", line 158 in method invoke_method
        result = call()
    File "/usr/lib/python2.7/dist-packages/murano/dsl/executor.py", line 148 in method call
        yaql_engine, context, native_this)(*args, **kwargs)
    File "/usr/lib/python2.7/dist-packages/yaql/language/specs.py", line 60 in method func
        return self.get_delegate(receiver, engine, context, args, kwargs)()
    File "/usr/lib/python2.7/dist-packages/yaql/language/specs.py", line 341 in method func
        six.iteritems(keyword_args)))
    File "/usr/lib/python2.7/dist-packages/murano/dsl/yaql_integration.py", line 374 in method payload
        result = helpers.evaluate(cls(*args, **kwargs), __context)
    File "/usr/lib/python2.7/dist-packages/murano/engine/system/net_explorer.py", line 43 in method __init__
        self._region = this.find_owner('io.murano.CloudRegion')
    File "/usr/lib/python2.7/dist-packages/murano/dsl/dsl.py", line 216 in method find_owner
        type = helpers.get_class(type)
    File "/usr/lib/python2.7/dist-packages/murano/dsl/helpers.py", line 218 in method get_class
        return murano_type.package.find_class(name)
    File "/usr/lib/python2.7/dist-packages/murano/dsl/murano_package.py", line 214 in method find_class
        name, packages=pkgs_for_search + [self])

Alex Kholkin (akholkin) on 2016-09-18
description: updated
Changed in fuel-plugin-murano:
assignee: nobody → Nikolay Starodubtsev (starodubcevna)

After an investigation I found out that we have:
1) An old core library at the environment
2) An old murano client (0.8.4) which cannot install new core library with CloudRegion support, since 0.8.4 is not support multi-doc yaml documents. (see the bug: https://bugs.launchpad.net/python-muranoclient/+bug/1608440)

Denis Egorenko (degorenko) wrote :
Changed in fuel-plugin-murano:
assignee: Nikolay Starodubtsev (starodubcevna) → Denis Egorenko (degorenko)
Kirill Zaitsev (kzaitsev) wrote :

https://review.openstack.org/#/c/372601/ actually fixes only half the problem, since we also need to rewrite provider for core library to update it correctly (using "--exists-action u" for example)

Changed in fuel-plugin-murano:
status: Confirmed → In Progress
Kirill Zaitsev (kzaitsev) wrote :

Downgrading to high, since this is half-fixed and there is now a clear workaround for this — user needs to install murano core library by hand. Which is possible sine client is updated from plugin

Changed in fuel-plugin-murano:
importance: Critical → High
Changed in fuel:
status: New → Confirmed
importance: Undecided → High
Changed in fuel-plugin-murano:
status: In Progress → Fix Released

Fix proposed to branch: master
Review: https://review.openstack.org/375442

Changed in fuel:
status: Confirmed → In Progress
Changed in fuel:
assignee: Alexey Deryugin (velovec) → nobody
status: In Progress → Confirmed

Change abandoned by Alexey Deryugin (<email address hidden>) on branch: stable/mitaka
Review: https://review.openstack.org/375443

Change abandoned by Alexey Deryugin (<email address hidden>) on branch: master
Review: https://review.openstack.org/375442

Changed in fuel:
assignee: nobody → Fuel Sustaining (fuel-sustaining-team)

Fix proposed to branch: master
Review: https://review.openstack.org/390331

Changed in fuel:
assignee: Fuel Sustaining (fuel-sustaining-team) → Oleksiy Molchanov (omolchanov)
status: Confirmed → In Progress

Reviewed: https://review.openstack.org/390331
Committed: https://git.openstack.org/cgit/openstack/fuel-library/commit/?id=329c4bb32750bcba480df778a5051147cf34bf29
Submitter: Jenkins
Branch: master

commit 329c4bb32750bcba480df778a5051147cf34bf29
Author: Alexey Deryugin <email address hidden>
Date: Fri Sep 23 15:39:45 2016 +0300

    Make Murano always use the latest CoreLibrary

    When we updating environment Murano doesn't update
    CoreLibrary if it's already installed. So we need
    to make it always install latest CoreLibrary version.

    Change-Id: I702d6e393fd24dc8649f02b72d83c14aeed3bff9
    Closes-Bug: #1624723

Changed in fuel:
status: In Progress → Fix Committed
Oleksiy Molchanov (omolchanov) wrote :
Changed in fuel:
milestone: 10.0 → 11.0
status: Fix Committed → In Progress
status: In Progress → Fix Committed

Reviewed: https://review.openstack.org/390333
Committed: https://git.openstack.org/cgit/openstack/fuel-library/commit/?id=e931ff0850acc757c0a08f4895a17e46ca52965f
Submitter: Jenkins
Branch: stable/mitaka

commit e931ff0850acc757c0a08f4895a17e46ca52965f
Author: Alexey Deryugin <email address hidden>
Date: Fri Sep 23 15:39:45 2016 +0300

    Make Murano always use the latest CoreLibrary

    When we updating environment Murano doesn't update
    CoreLibrary if it's already installed. So we need
    to make it always install latest CoreLibrary version.

    Change-Id: I702d6e393fd24dc8649f02b72d83c14aeed3bff9
    Closes-Bug: #1624723

tags: added: on-verification

Verified on MOS 9.2 snapshot #515.

tags: removed: on-verification

Reviewed: https://review.openstack.org/393305
Committed: https://git.openstack.org/cgit/openstack/fuel-library/commit/?id=8052ff319e89595b682d2d475c075f6ecea41b5f
Submitter: Jenkins
Branch: stable/newton

commit 8052ff319e89595b682d2d475c075f6ecea41b5f
Author: Alexey Deryugin <email address hidden>
Date: Fri Sep 23 15:39:45 2016 +0300

    Make Murano always use the latest CoreLibrary

    When we updating environment Murano doesn't update
    CoreLibrary if it's already installed. So we need
    to make it always install latest CoreLibrary version.

    Change-Id: I702d6e393fd24dc8649f02b72d83c14aeed3bff9
    Closes-Bug: #1624723
    (cherry picked from commit 329c4bb32750bcba480df778a5051147cf34bf29)

This issue was fixed in the openstack/fuel-library 11.0.0.0rc1 release candidate.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers