diff options
author | Nikhil Komawar <nik.komawar@gmail.com> | 2016-09-01 18:48:05 -0400 |
---|---|---|
committer | Nikhil Komawar <nik.komawar@gmail.com> | 2016-09-01 23:51:58 +0000 |
commit | b5833a87236183444589f3f93fba8641eb6c520a (patch) | |
tree | c565118e3b58c5aab0f7412d89997286f2c0afd9 | |
parent | 22fa2b08e76a8ebc39ade92504aeafb0bf8d2f8c (diff) | |
download | glance_store-b5833a87236183444589f3f93fba8641eb6c520a.tar.gz |
Always return a sorted list of drivers for configs
glance.store entry point used in Glance for the store library is
resulting in generating random order in each run of the ``tox -e
genconfig`` command. This is because of the unsorted iterator returned
by the stevedore extension manager [1, 2].
This commit fixes that and returs a deterministic, sorted list of
drivers to generate the configs in Glance.
Example scenario is at change Iea2c538b37182191445cc5c1f8b2d9dceed06343
Closes-Bug: 1619487
[1] https://github.com/openstack/glance_store/blob/22fa2b08e76a8ebc39ade92504aeafb0bf8d2f8c/glance_store/backend.py#L135
[2] http://docs.openstack.org/developer/stevedore/managers.html#stevedore.extension.ExtensionManager.__iter__
Co-Authored-By: Joshua Harlow <jxharlow@godaddy.com>
Change-Id: I3146b8597a5d89da49b84d6653edacc3067c2c71
-rw-r--r-- | glance_store/backend.py | 2 | ||||
-rw-r--r-- | releasenotes/notes/sorted-drivers-for-configs-a905f07d3bf9c973.yaml | 16 |
2 files changed, 17 insertions, 1 deletions
diff --git a/glance_store/backend.py b/glance_store/backend.py index ba9ac64..e06f234 100644 --- a/glance_store/backend.py +++ b/glance_store/backend.py @@ -132,7 +132,7 @@ def _list_opts(): driver_opts = [] mgr = extension.ExtensionManager('glance_store.drivers') # NOTE(zhiyan): Handle available drivers entry_points provided - drivers = [ext.name for ext in mgr] + drivers = sorted([ext.name for ext in mgr]) handled_drivers = [] # Used to handle backwards-compatible entries for store_entry in drivers: driver_cls = _load_store(None, store_entry, False) diff --git a/releasenotes/notes/sorted-drivers-for-configs-a905f07d3bf9c973.yaml b/releasenotes/notes/sorted-drivers-for-configs-a905f07d3bf9c973.yaml new file mode 100644 index 0000000..a50630f --- /dev/null +++ b/releasenotes/notes/sorted-drivers-for-configs-a905f07d3bf9c973.yaml @@ -0,0 +1,16 @@ +--- +prelude: > + Return list of store drivers in sorted order for + generating configs. More info in ``Upgrade Notes`` + and ``Bug Fixes`` section. +upgrade: + - This version of glance_store will result in Glance + generating the configs in a sorted (deterministic) + order. So, preferably store releases on or after this + should be used for generating any new configs if the + mismatched ordering of the configs results in an issue + in your environment. +fixes: + - Bug 1619487 is fixed which was causing random order of + the generation of configs in Glance. See ``upgrade`` + section for more details. |