summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-03-15 15:23:15 +0000
committerGerrit Code Review <review@openstack.org>2013-03-15 15:23:15 +0000
commitd4e456876e8eaaadbdb806b4d4c1b609bb7e5d3e (patch)
tree37d12781f7d33375869f195e1bfddf38578a6b1e
parent7770390bf3ebda9f46719ce6ba86a1acb37cea88 (diff)
parent3971c4ee489fb3b059448eac173d76a87e202e66 (diff)
downloadnova-d4e456876e8eaaadbdb806b4d4c1b609bb7e5d3e.tar.gz
nova-d4e456876e8eaaadbdb806b4d4c1b609bb7e5d3e.tar.xz
nova-d4e456876e8eaaadbdb806b4d4c1b609bb7e5d3e.zip
Merge "Fix exception message in Networks API extension"
-rw-r--r--nova/api/openstack/compute/contrib/os_networks.py3
-rw-r--r--nova/network/manager.py3
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_networks.py13
3 files changed, 19 insertions, 0 deletions
diff --git a/nova/api/openstack/compute/contrib/os_networks.py b/nova/api/openstack/compute/contrib/os_networks.py
index c6268f277..2cea0e081 100644
--- a/nova/api/openstack/compute/contrib/os_networks.py
+++ b/nova/api/openstack/compute/contrib/os_networks.py
@@ -139,6 +139,9 @@ class NetworkController(wsgi.Controller):
try:
self.network_api.add_network_to_project(
context, project_id, network_id)
+ except NotImplementedError:
+ msg = (_("VLAN support must be enabled"))
+ raise exc.HTTPNotImplemented(explanation=msg)
except Exception as ex:
msg = (_("Cannot associate network %(network)s"
" with project %(project)s: %(message)s") %
diff --git a/nova/network/manager.py b/nova/network/manager.py
index 9d7bb4d04..678bfdba8 100644
--- a/nova/network/manager.py
+++ b/nova/network/manager.py
@@ -1418,6 +1418,9 @@ class NetworkManager(manager.Manager):
dev = self.driver.get_dev(network)
self.driver.update_dns(context, dev, network)
+ def add_network_to_project(self, ctxt, project_id, network_uuid):
+ raise NotImplementedError()
+
class FlatManager(NetworkManager):
"""Basic network where no vlans are used.
diff --git a/nova/tests/api/openstack/compute/contrib/test_networks.py b/nova/tests/api/openstack/compute/contrib/test_networks.py
index 8238f9248..7bf871690 100644
--- a/nova/tests/api/openstack/compute/contrib/test_networks.py
+++ b/nova/tests/api/openstack/compute/contrib/test_networks.py
@@ -94,10 +94,14 @@ NEW_NETWORK = {
class FakeNetworkAPI(object):
_sentinel = object()
+ _vlan_is_disabled = False
def __init__(self):
self.networks = copy.deepcopy(FAKE_NETWORKS)
+ def disable_vlan(self):
+ self._vlan_is_disabled = True
+
def delete(self, context, network_id):
for i, network in enumerate(self.networks):
if network['id'] == network_id:
@@ -125,6 +129,8 @@ class FakeNetworkAPI(object):
def add_network_to_project(self, context,
project_id, network_uuid=None):
+ if self._vlan_is_disabled:
+ raise NotImplementedError()
if network_uuid:
for network in self.networks:
if network.get('project_id', None) is None:
@@ -274,6 +280,13 @@ class NetworksTest(test.TestCase):
self.assertRaises(webob.exc.HTTPNotFound,
self.controller.delete, req, 100)
+ def test_network_add_vlan_disabled(self):
+ self.fake_network_api.disable_vlan()
+ uuid = FAKE_NETWORKS[1]['uuid']
+ req = fakes.HTTPRequest.blank('/v2/1234/os-networks/add')
+ self.assertRaises(webob.exc.HTTPNotImplemented,
+ self.controller.add, req, {'id': uuid})
+
def test_network_add(self):
uuid = FAKE_NETWORKS[1]['uuid']
req = fakes.HTTPRequest.blank('/v2/1234/os-networks/add')