From c3b2c2a9a22bac5cf17813c589444d3abebaa23b Mon Sep 17 00:00:00 2001 From: Wojciech Dec Date: Tue, 16 Aug 2016 19:27:01 +0200 Subject: Adding Mitaka networking-old module with the ODL topology based port binding resolution mechanism from https://review.openstack.org/333186 Change-Id: I10d400aac9bb639c146527f0f93e6925cb74d9de Signed-off-by: Wojciech Dec --- .../tests/unit/l2gateway/test_driver.py | 127 +++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 networking-odl/networking_odl/tests/unit/l2gateway/test_driver.py (limited to 'networking-odl/networking_odl/tests/unit/l2gateway/test_driver.py') diff --git a/networking-odl/networking_odl/tests/unit/l2gateway/test_driver.py b/networking-odl/networking_odl/tests/unit/l2gateway/test_driver.py new file mode 100644 index 0000000..2506332 --- /dev/null +++ b/networking-odl/networking_odl/tests/unit/l2gateway/test_driver.py @@ -0,0 +1,127 @@ +# +# Copyright (C) 2016 Ericsson India Global Services Pvt Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# + +import copy +import mock + +from networking_odl.l2gateway import driver +from neutron.tests import base + + +class TestOpenDaylightL2gwDriver(base.DietTestCase): + + def setUp(self): + self.mocked_odlclient = mock.patch( + 'networking_odl.common.client' + '.OpenDaylightRestClient.create_client').start().return_value + self.driver = driver.OpenDaylightL2gwDriver(service_plugin=None, + validator=None) + super(TestOpenDaylightL2gwDriver, self).setUp() + + def _get_fake_l2_gateway(self): + fake_l2_gateway_id = "5227c228-6bba-4bbe-bdb8-6942768ff0f1" + fake_l2_gateway = { + "tenant_id": "de0a7495-05c4-4be0-b796-1412835c6820", + "id": "5227c228-6bba-4bbe-bdb8-6942768ff0f1", + "name": "test-gateway", + "devices": [ + { + "device_name": "switch1", + "interfaces": [ + { + "name": "port1", + "segmentation_id": [100] + }, + { + "name": "port2", + "segmentation_id": [151, 152] + } + ] + }, + { + "device_name": "switch2", + "interfaces": [ + { + "name": "port5", + "segmentation_id": [200] + }, + { + "name": "port6", + "segmentation_id": [251, 252] + } + ] + } + ] + } + return fake_l2_gateway_id, fake_l2_gateway + + def _get_fake_l2_gateway_connection(self): + fake_l2_gateway_connection_id = "5227c228-6bba-4bbe-bdb8-6942768ff02f" + fake_l2_gateway_connection = { + "tenant_id": "de0a7495-05c4-4be0-b796-1412835c6820", + "id": "5227c228-6bba-4bbe-bdb8-6942768ff02f", + "network_id": "be0a7495-05c4-4be0-b796-1412835c6830", + "default_segmentation_id": 77, + "l2_gateway_id": "5227c228-6bba-4bbe-bdb8-6942768ff0f1" + } + return fake_l2_gateway_connection_id, fake_l2_gateway_connection + + def test_create_l2_gateway_postcommit(self): + mocked_sendjson = self.mocked_odlclient.sendjson + fake_l2gateway_id, fake_l2gateway = self._get_fake_l2_gateway() + expected = {"l2_gateway": fake_l2gateway} + self.driver.create_l2_gateway_postcommit(mock.ANY, fake_l2gateway) + mocked_sendjson.assert_called_once_with('post', driver.L2GATEWAYS, + expected) + + def test_delete_l2_gateway_postcommit(self): + mocked_trydelete = self.mocked_odlclient.try_delete + fake_l2gateway_id, fake_l2gateway = self._get_fake_l2_gateway() + self.driver.delete_l2_gateway_postcommit(mock.ANY, fake_l2gateway_id) + url = driver.L2GATEWAYS + '/' + fake_l2gateway_id + mocked_trydelete.assert_called_once_with(url) + + def test_update_l2_gateway_postcommit(self): + mocked_sendjson = self.mocked_odlclient.sendjson + fake_l2gateway_id, fake_l2gateway = self._get_fake_l2_gateway() + expected = {"l2_gateway": fake_l2gateway} + self.driver.update_l2_gateway_postcommit(mock.ANY, fake_l2gateway) + url = driver.L2GATEWAYS + '/' + fake_l2gateway_id + mocked_sendjson.assert_called_once_with('put', url, expected) + + def test_create_l2_gateway_connection_postcommit(self): + mocked_sendjson = self.mocked_odlclient.sendjson + (fake_l2gateway_conn_id, + fake_l2gateway_conn) = self._get_fake_l2_gateway_connection() + expected_l2gateway_conn = copy.deepcopy(fake_l2gateway_conn) + expected_l2gateway_conn['gateway_id'] = ( + fake_l2gateway_conn['l2_gateway_id']) + expected_l2gateway_conn.pop('l2_gateway_id') + expected = {"l2gateway_connection": expected_l2gateway_conn} + self.driver.create_l2_gateway_connection_postcommit( + mock.ANY, fake_l2gateway_conn) + mocked_sendjson.assert_called_once_with('post', + driver.L2GATEWAY_CONNECTIONS, + expected) + + def test_delete_l2_gateway_connection_postcommit(self): + mocked_trydelete = self.mocked_odlclient.try_delete + (fake_l2gateway_conn_id, + fake_l2gateway_conn) = self._get_fake_l2_gateway_connection() + url = driver.L2GATEWAY_CONNECTIONS + '/' + fake_l2gateway_conn_id + self.driver.delete_l2_gateway_connection_postcommit( + mock.ANY, fake_l2gateway_conn_id) + mocked_trydelete.assert_called_once_with(url) -- cgit 1.2.3-korg