diff options
author | Jenkins <jenkins@review.openstack.org> | 2013-03-15 15:23:15 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2013-03-15 15:23:15 +0000 |
commit | d4e456876e8eaaadbdb806b4d4c1b609bb7e5d3e (patch) | |
tree | 37d12781f7d33375869f195e1bfddf38578a6b1e | |
parent | 7770390bf3ebda9f46719ce6ba86a1acb37cea88 (diff) | |
parent | 3971c4ee489fb3b059448eac173d76a87e202e66 (diff) | |
download | nova-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.py | 3 | ||||
-rw-r--r-- | nova/network/manager.py | 3 | ||||
-rw-r--r-- | nova/tests/api/openstack/compute/contrib/test_networks.py | 13 |
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') |