summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorMichael Still <mikal@stillhq.com>2012-10-25 20:40:42 +1100
committerMichael Still <mikal@stillhq.com>2012-10-25 21:48:50 +1100
commit8aea16c14dd4e9119bb75bc818772e19b934f8ab (patch)
tree499dbab3ea7b2cd96619f9e1d2d49f80cc1db096 /nova/api
parentd679f9424f81b96080b78312aa49cd1c21885408 (diff)
downloadnova-8aea16c14dd4e9119bb75bc818772e19b934f8ab.tar.gz
nova-8aea16c14dd4e9119bb75bc818772e19b934f8ab.tar.xz
nova-8aea16c14dd4e9119bb75bc818772e19b934f8ab.zip
Improve the performance of quantum detection.
Per https://review.openstack.org/#/c/14700 -- related to bug 1070509. Change-Id: Ib9f829823136401a034b6bd3e1591508301132ba
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/compute/servers.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/nova/api/openstack/compute/servers.py b/nova/api/openstack/compute/servers.py
index b8f52dda4..9c182f3a5 100644
--- a/nova/api/openstack/compute/servers.py
+++ b/nova/api/openstack/compute/servers.py
@@ -436,6 +436,7 @@ class Controller(wsgi.Controller):
super(Controller, self).__init__(**kwargs)
self.compute_api = compute.API()
self.ext_mgr = ext_mgr
+ self.quantum_attempted = False
@wsgi.serializers(xml=MinimalServersTemplate)
def index(self, req):
@@ -598,14 +599,19 @@ class Controller(wsgi.Controller):
def _is_quantum_v2(self):
# NOTE(dprince): quantumclient is not a requirement
+ if self.quantum_attempted:
+ return self.have_quantum
+
try:
+ self.quantum_attempted = True
from nova.network.quantumv2 import api as quantum_api
- return issubclass(
+ self.have_quantum = issubclass(
importutils.import_class(FLAGS.network_api_class),
- quantum_api.API
- )
+ quantum_api.API)
except ImportError:
- return False
+ self.have_quantum = False
+
+ return self.have_quantum
def _get_requested_networks(self, requested_networks):
"""Create a list of requested networks from the networks attribute."""