From d1166474aba0083fd66879f20c1ea7a229d9809e Mon Sep 17 00:00:00 2001
From: Sean McGinnis <sean.mcginnis@gmail.com>
Date: Mon, 16 Jan 2017 17:17:48 -0600
Subject: [PATCH] Prevent driver load failures from objects

There's been an intermittent issue where getting a list of all
drivers would fail to get all defined classes. With recent local
tests, once it got 103 drivers, but several times it got 69
drivers.

This appears to be from exceptions thrown while loading the
decorated classes with various cinder.objects classes not being
defined. To get around this, this adds an explicit load of all
cinder.objects before attempting to get the driver classes.

Change-Id: Ief4a93ec2d8256424166c7bf3b9d48a79a6e5e54
---
 tools/generate_driver_list.py | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/tools/generate_driver_list.py b/tools/generate_driver_list.py
index 5f7d9aacd20..23811001737 100755
--- a/tools/generate_driver_list.py
+++ b/tools/generate_driver_list.py
@@ -18,6 +18,11 @@ import argparse
 import os
 
 from cinder.interface import util
+from cinder import objects
+
+
+# Object loading can cause issues loading drivers, force it up front
+objects.register_all()
 
 
 parser = argparse.ArgumentParser(prog="generate_driver_list")