Upgrade to Queens results in AttributeError: module 'gnocchi.rest' has no attribute 'VersionsController'

Bug #1781468 reported by Drew Freiberger on 2018-07-12
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Gnocchi Charm
High
James Page
gnocchi (Ubuntu)
Undecided
Unassigned

Bug Description

When upgrading from Pike to Queens, gnocchi wsgi application fails with the following traceback in the logs. This is on Xenial with 18.02 charms.

Upgrading to the 18.05 charm with the patches added for lp#1775501, lp#1779062, and lp#1780490 released by xavpaice as ~xavpaice/gnocchi-7 and re-deploying the gnocchi units with Queens set as the openstack-origin solves this issue.

I could not find any references to VersionsController under /usr/lib/python3/dist-packages at all, so I'm not certain where this might be coming from.

[Wed Jul 11 21:44:23.593661 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] mod_wsgi (pid=91424): Target WSGI script '/usr/bin/gnocchi-api' cannot be loaded as Python module.
[Wed Jul 11 21:44:23.593717 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] mod_wsgi (pid=91424): Exception occurred processing WSGI script '/usr/bin/gnocchi-api'.
[Wed Jul 11 21:44:23.594005 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] Traceback (most recent call last):
[Wed Jul 11 21:44:23.594128 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] File "/usr/bin/gnocchi-api", line 22, in <module>
[Wed Jul 11 21:44:23.594137 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] application = app.load_app(api.prepare_service())
[Wed Jul 11 21:44:23.594153 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/gnocchi/rest/app.py", line 173, in load_app
[Wed Jul 11 21:44:23.594157 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] global_conf={'configkey': configkey})
[Wed Jul 11 21:44:23.594166 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/paste/deploy/loadwsgi.py", line 247, in loadapp
[Wed Jul 11 21:44:23.594171 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] return loadobj(APP, uri, name=name, **kw)
[Wed Jul 11 21:44:23.594179 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/paste/deploy/loadwsgi.py", line 272, in loadobj
[Wed Jul 11 21:44:23.594184 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] return context.create()
[Wed Jul 11 21:44:23.594192 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/paste/deploy/loadwsgi.py", line 710, in create
[Wed Jul 11 21:44:23.594197 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] return self.object_type.invoke(self)
[Wed Jul 11 21:44:23.594204 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/paste/deploy/loadwsgi.py", line 144, in invoke
[Wed Jul 11 21:44:23.594209 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] **context.local_conf)
[Wed Jul 11 21:44:23.594217 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/paste/deploy/util.py", line 55, in fix_call
[Wed Jul 11 21:44:23.594222 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] val = callable(*args, **kw)
[Wed Jul 11 21:44:23.594230 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/paste/urlmap.py", line 31, in urlmap_factory
[Wed Jul 11 21:44:23.594235 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] app = loader.get_app(app_name, global_conf=global_conf)
[Wed Jul 11 21:44:23.594243 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/paste/deploy/loadwsgi.py", line 350, in get_app
[Wed Jul 11 21:44:23.594247 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] name=name, global_conf=global_conf).create()
[Wed Jul 11 21:44:23.594255 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/paste/deploy/loadwsgi.py", line 710, in create
[Wed Jul 11 21:44:23.594260 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] return self.object_type.invoke(self)
[Wed Jul 11 21:44:23.594267 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/paste/deploy/loadwsgi.py", line 203, in invoke
[Wed Jul 11 21:44:23.594272 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] app = context.app_context.create()
[Wed Jul 11 21:44:23.594280 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/paste/deploy/loadwsgi.py", line 710, in create
[Wed Jul 11 21:44:23.594284 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] return self.object_type.invoke(self)
[Wed Jul 11 21:44:23.594301 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/paste/deploy/loadwsgi.py", line 146, in invoke
[Wed Jul 11 21:44:23.594307 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] return fix_call(context.object, context.global_conf, **context.local_conf)
[Wed Jul 11 21:44:23.594315 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/paste/deploy/util.py", line 55, in fix_call
[Wed Jul 11 21:44:23.594320 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] val = callable(*args, **kw)
[Wed Jul 11 21:44:23.594328 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/gnocchi/rest/app.py", line 194, in app_factory
[Wed Jul 11 21:44:23.594333 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] return _setup_app(root=local_conf.get('root'), **appconfig)
[Wed Jul 11 21:44:23.594341 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/gnocchi/rest/app.py", line 182, in _setup_app
[Wed Jul 11 21:44:23.594345 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] custom_renderers={"json": JsonRenderer}
[Wed Jul 11 21:44:23.594353 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/pecan/__init__.py", line 86, in make_app
[Wed Jul 11 21:44:23.594358 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] app = Pecan(root, **kw)
[Wed Jul 11 21:44:23.594366 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/pecan/core.py", line 832, in __init__
[Wed Jul 11 21:44:23.594370 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] super(Pecan, self).__init__(*args, **kw)
[Wed Jul 11 21:44:23.594378 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/pecan/core.py", line 240, in __init__
[Wed Jul 11 21:44:23.594383 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] root = self.__translate_root__(root)
[Wed Jul 11 21:44:23.594391 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/pecan/core.py", line 276, in __translate_root__
[Wed Jul 11 21:44:23.594395 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] kallable = getattr(module, parts[-1])
[Wed Jul 11 21:44:23.594417 2018] [wsgi:error] [pid 91424:tid 140079714854656] [remote 127.0.0.1:13791] AttributeError: module 'gnocchi.rest' has no attribute 'VersionsController'
[Wed Jul 11 21:44:23.645651 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] mod_wsgi (pid=91419): Target WSGI script '/usr/bin/gnocchi-api' cannot be loaded as Python module.
[Wed Jul 11 21:44:23.645698 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] mod_wsgi (pid=91419): Exception occurred processing WSGI script '/usr/bin/gnocchi-api'.
[Wed Jul 11 21:44:23.645947 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] Traceback (most recent call last):
[Wed Jul 11 21:44:23.646033 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] File "/usr/bin/gnocchi-api", line 22, in <module>
[Wed Jul 11 21:44:23.646039 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] application = app.load_app(api.prepare_service())
[Wed Jul 11 21:44:23.646050 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/gnocchi/rest/app.py", line 173, in load_app
[Wed Jul 11 21:44:23.646054 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] global_conf={'configkey': configkey})
[Wed Jul 11 21:44:23.646070 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/paste/deploy/loadwsgi.py", line 247, in loadapp
[Wed Jul 11 21:44:23.646074 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] return loadobj(APP, uri, name=name, **kw)
[Wed Jul 11 21:44:23.646081 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/paste/deploy/loadwsgi.py", line 272, in loadobj
[Wed Jul 11 21:44:23.646085 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] return context.create()
[Wed Jul 11 21:44:23.646092 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/paste/deploy/loadwsgi.py", line 710, in create
[Wed Jul 11 21:44:23.646096 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] return self.object_type.invoke(self)
[Wed Jul 11 21:44:23.646103 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/paste/deploy/loadwsgi.py", line 144, in invoke
[Wed Jul 11 21:44:23.646107 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] **context.local_conf)
[Wed Jul 11 21:44:23.646113 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/paste/deploy/util.py", line 55, in fix_call
[Wed Jul 11 21:44:23.646118 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] val = callable(*args, **kw)
[Wed Jul 11 21:44:23.646125 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/paste/urlmap.py", line 31, in urlmap_factory
[Wed Jul 11 21:44:23.646129 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] app = loader.get_app(app_name, global_conf=global_conf)
[Wed Jul 11 21:44:23.646136 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/paste/deploy/loadwsgi.py", line 350, in get_app
[Wed Jul 11 21:44:23.646140 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] name=name, global_conf=global_conf).create()
[Wed Jul 11 21:44:23.646147 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/paste/deploy/loadwsgi.py", line 710, in create
[Wed Jul 11 21:44:23.646151 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] return self.object_type.invoke(self)
[Wed Jul 11 21:44:23.646157 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/paste/deploy/loadwsgi.py", line 203, in invoke
[Wed Jul 11 21:44:23.646161 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] app = context.app_context.create()
[Wed Jul 11 21:44:23.646168 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/paste/deploy/loadwsgi.py", line 710, in create
[Wed Jul 11 21:44:23.646172 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] return self.object_type.invoke(self)
[Wed Jul 11 21:44:23.646179 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/paste/deploy/loadwsgi.py", line 146, in invoke
[Wed Jul 11 21:44:23.646183 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] return fix_call(context.object, context.global_conf, **context.local_conf)
[Wed Jul 11 21:44:23.646190 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/paste/deploy/util.py", line 55, in fix_call
[Wed Jul 11 21:44:23.646194 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] val = callable(*args, **kw)
[Wed Jul 11 21:44:23.646201 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/gnocchi/rest/app.py", line 194, in app_factory
[Wed Jul 11 21:44:23.646210 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] return _setup_app(root=local_conf.get('root'), **appconfig)
[Wed Jul 11 21:44:23.646217 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/gnocchi/rest/app.py", line 182, in _setup_app
[Wed Jul 11 21:44:23.646221 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] custom_renderers={"json": JsonRenderer}
[Wed Jul 11 21:44:23.646228 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/pecan/__init__.py", line 86, in make_app
[Wed Jul 11 21:44:23.646232 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] app = Pecan(root, **kw)
[Wed Jul 11 21:44:23.646239 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/pecan/core.py", line 832, in __init__
[Wed Jul 11 21:44:23.646243 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] super(Pecan, self).__init__(*args, **kw)
[Wed Jul 11 21:44:23.646249 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/pecan/core.py", line 240, in __init__
[Wed Jul 11 21:44:23.646253 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] root = self.__translate_root__(root)
[Wed Jul 11 21:44:23.646260 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] File "/usr/lib/python3/dist-packages/pecan/core.py", line 276, in __translate_root__
[Wed Jul 11 21:44:23.646264 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] kallable = getattr(module, parts[-1])
[Wed Jul 11 21:44:23.646283 2018] [wsgi:error] [pid 91419:tid 140079723255552] [remote 127.0.0.1:13791] AttributeError: module 'gnocchi.rest' has no attribute 'V1Controller'

James Page (james-page) on 2018-07-13
Changed in charm-gnocchi:
status: New → Confirmed
importance: Undecided → High
James Page (james-page) wrote :

This is due to some sort of packaging problem - the api-paste.ini from the older gnocchi version is preserved during the upgrade process, and the wgsi entry points change.

As a workaround you can switch in the api-paste.ini.dpkg-dist in /etc/gnocchi.

Changed in charm-gnocchi:
status: Confirmed → Triaged
James Page (james-page) wrote :

@pike postinst writes api-paste.ini

    pkgos_write_new_conf gnocchi api-paste.ini

@queens

    api-paste.ini and policy.json come directly from the package.

pkgos_write_new_conf makes no attempt to manage this file as a dpkg configuration file, so the 'user generated' version is preserved during upgrade.

James Page (james-page) wrote :

We do use:

        dpkg_opts = [
            '--option', 'Dpkg::Options::=--force-confnew',
            '--option', 'Dpkg::Options::=--force-confdef',
        ]

but apparently that's not enough here.

James Page (james-page) wrote :
Changed in charm-gnocchi:
status: Triaged → In Progress
assignee: nobody → James Page (james-page)

Reviewed: https://review.openstack.org/582752
Committed: https://git.openstack.org/cgit/openstack/charm-gnocchi/commit/?id=60678f23b107d346f2de5acdded2ea48c624cd94
Submitter: Zuul
Branch: master

commit 60678f23b107d346f2de5acdded2ea48c624cd94
Author: James Page <email address hidden>
Date: Sun Jul 15 11:27:55 2018 +0100

    Render api-paste.ini from charm

    Due to misc bugs in the way older versions of the gnocchi packages
    installed the api-paste.ini, this file is not treated as a dpkg
    configuration file, and as a result @ Queens, the file from the
    package is not installed over any previous version.

    Include api-paste.ini as part of the charm to ensure that a good
    paste configuration is installed for all Gnocchi releases.

    Change-Id: I1362a64368f0df8e07c7d29d5b504edaf96a70de
    Closes-Bug: 1781468

Changed in charm-gnocchi:
status: In Progress → Fix Committed

Reviewed: https://review.openstack.org/583345
Committed: https://git.openstack.org/cgit/openstack/charm-gnocchi/commit/?id=bc1745115b6a9c7837075a4353d60a1e5a1e2ca9
Submitter: Zuul
Branch: master

commit bc1745115b6a9c7837075a4353d60a1e5a1e2ca9
Author: James Page <email address hidden>
Date: Tue Jul 17 15:28:40 2018 -0400

    Update WSGI process group

    Ensure WSGI processes run under the 'gnocchi' group to
    support restriction in permissions to /etc/gnocchi/* to
    root or members of the gnocchi group.

    This change also picks up changes in charms.openstack
    to support this functionality, as well as fixing
    misc issues with upgrades.

    Change-Id: I14d865cd96b7c250ad92c8bdee74693a6eccc769
    Closes-Bug: 1780490
    Closes-Bug: 1779062
    Related-Bug: 1781468

Reviewed: https://review.openstack.org/583544
Committed: https://git.openstack.org/cgit/openstack/charm-gnocchi/commit/?id=83fd1606e1561c45623b981eaf37f434a9524296
Submitter: Zuul
Branch: stable/18.05

commit 83fd1606e1561c45623b981eaf37f434a9524296
Author: James Page <email address hidden>
Date: Tue Jul 17 15:28:40 2018 -0400

    Update WSGI process group

    Ensure WSGI processes run under the 'gnocchi' group to
    support restriction in permissions to /etc/gnocchi/* to
    root or members of the gnocchi group.

    This change also picks up changes in charms.openstack
    to support this functionality, as well as fixing
    misc issues with upgrades.

    Change-Id: I14d865cd96b7c250ad92c8bdee74693a6eccc769
    Closes-Bug: 1780490
    Closes-Bug: 1779062
    Related-Bug: 1781468
    (cherry picked from commit bc1745115b6a9c7837075a4353d60a1e5a1e2ca9)

Reviewed: https://review.openstack.org/583543
Committed: https://git.openstack.org/cgit/openstack/charm-gnocchi/commit/?id=7f870c13f1b35e76b9e674a15db44c0a99ec8979
Submitter: Zuul
Branch: stable/18.05

commit 7f870c13f1b35e76b9e674a15db44c0a99ec8979
Author: James Page <email address hidden>
Date: Sun Jul 15 11:27:55 2018 +0100

    Render api-paste.ini from charm

    Due to misc bugs in the way older versions of the gnocchi packages
    installed the api-paste.ini, this file is not treated as a dpkg
    configuration file, and as a result @ Queens, the file from the
    package is not installed over any previous version.

    Include api-paste.ini as part of the charm to ensure that a good
    paste configuration is installed for all Gnocchi releases.

    Change-Id: I1362a64368f0df8e07c7d29d5b504edaf96a70de
    Closes-Bug: 1781468
    (cherry picked from commit 60678f23b107d346f2de5acdded2ea48c624cd94)

Ryan Beisner (1chb1n) wrote :
Changed in charm-gnocchi:
milestone: none → 18.08
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers