diff options
author | Ansible Core Team <info@ansible.com> | 2020-03-09 09:40:37 +0000 |
---|---|---|
committer | Ansible Core Team <info@ansible.com> | 2020-03-09 09:40:37 +0000 |
commit | 512183d75b07ca950b308ed730e5212bb7db4eb9 (patch) | |
tree | 1a4b3ee6dcd4623ad6e3b4681bbae9840f1bd022 /test/units | |
parent | b182f411ea18f84e274096efc3288dfc7c9887f5 (diff) | |
download | ansible-512183d75b07ca950b308ed730e5212bb7db4eb9.tar.gz |
Migrated to openvswitch.openvswitch
Diffstat (limited to 'test/units')
14 files changed, 0 insertions, 752 deletions
diff --git a/test/units/modules/network/ovs/fixtures/br_get_external_id_foo_bar.cfg b/test/units/modules/network/ovs/fixtures/br_get_external_id_foo_bar.cfg deleted file mode 100644 index 74d0a43fcc..0000000000 --- a/test/units/modules/network/ovs/fixtures/br_get_external_id_foo_bar.cfg +++ /dev/null @@ -1 +0,0 @@ -foo=bar diff --git a/test/units/modules/network/ovs/fixtures/br_to_parent_test_br.cfg b/test/units/modules/network/ovs/fixtures/br_to_parent_test_br.cfg deleted file mode 100644 index 482c59adb1..0000000000 --- a/test/units/modules/network/ovs/fixtures/br_to_parent_test_br.cfg +++ /dev/null @@ -1 +0,0 @@ -test-br diff --git a/test/units/modules/network/ovs/fixtures/br_to_vlan_zero.cfg b/test/units/modules/network/ovs/fixtures/br_to_vlan_zero.cfg deleted file mode 100644 index 573541ac97..0000000000 --- a/test/units/modules/network/ovs/fixtures/br_to_vlan_zero.cfg +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/test/units/modules/network/ovs/fixtures/get_fail_mode_secure.cfg b/test/units/modules/network/ovs/fixtures/get_fail_mode_secure.cfg deleted file mode 100644 index 38bf3dc0e5..0000000000 --- a/test/units/modules/network/ovs/fixtures/get_fail_mode_secure.cfg +++ /dev/null @@ -1 +0,0 @@ -secure diff --git a/test/units/modules/network/ovs/fixtures/get_port_eth2_external_ids.cfg b/test/units/modules/network/ovs/fixtures/get_port_eth2_external_ids.cfg deleted file mode 100644 index 660fa5ae17..0000000000 --- a/test/units/modules/network/ovs/fixtures/get_port_eth2_external_ids.cfg +++ /dev/null @@ -1 +0,0 @@ -{foo=bar} diff --git a/test/units/modules/network/ovs/fixtures/get_port_eth2_tag.cfg b/test/units/modules/network/ovs/fixtures/get_port_eth2_tag.cfg deleted file mode 100644 index f599e28b8a..0000000000 --- a/test/units/modules/network/ovs/fixtures/get_port_eth2_tag.cfg +++ /dev/null @@ -1 +0,0 @@ -10 diff --git a/test/units/modules/network/ovs/fixtures/list_br_test_br.cfg b/test/units/modules/network/ovs/fixtures/list_br_test_br.cfg deleted file mode 100644 index 482c59adb1..0000000000 --- a/test/units/modules/network/ovs/fixtures/list_br_test_br.cfg +++ /dev/null @@ -1 +0,0 @@ -test-br diff --git a/test/units/modules/network/ovs/fixtures/list_ports_test_br.cfg b/test/units/modules/network/ovs/fixtures/list_ports_test_br.cfg deleted file mode 100644 index a908f0da45..0000000000 --- a/test/units/modules/network/ovs/fixtures/list_ports_test_br.cfg +++ /dev/null @@ -1 +0,0 @@ -eth2 diff --git a/test/units/modules/network/ovs/fixtures/openvswitch_db_disable_in_band_missing.cfg b/test/units/modules/network/ovs/fixtures/openvswitch_db_disable_in_band_missing.cfg deleted file mode 100644 index 3c9dafc69e..0000000000 --- a/test/units/modules/network/ovs/fixtures/openvswitch_db_disable_in_band_missing.cfg +++ /dev/null @@ -1,23 +0,0 @@ -_uuid : 64f04422-d510-4258-9648-ee0a982f58c1 -auto_attach : [] -controller : [] -datapath_id : "00002244f0645842" -datapath_type : "" -datapath_version : "<unknown>" -external_ids : {} -fail_mode : [] -flood_vlans : [] -flow_tables : {} -ipfix : [] -mcast_snooping_enable: false -mirrors : [] -name : test-br -netflow : [] -other_config : {} -ports : [2c9c1b35-a304-4dee-bb7a-092d656543c7] -protocols : [] -rstp_enable : false -rstp_status : {} -sflow : [] -status : {} -stp_enable : false diff --git a/test/units/modules/network/ovs/fixtures/openvswitch_db_disable_in_band_true.cfg b/test/units/modules/network/ovs/fixtures/openvswitch_db_disable_in_band_true.cfg deleted file mode 100644 index 4b9f3a799f..0000000000 --- a/test/units/modules/network/ovs/fixtures/openvswitch_db_disable_in_band_true.cfg +++ /dev/null @@ -1,23 +0,0 @@ -_uuid : 64f04422-d510-4258-9648-ee0a982f58c1 -auto_attach : [] -controller : [] -datapath_id : "00002244f0645842" -datapath_type : "" -datapath_version : "<unknown>" -external_ids : {} -fail_mode : [] -flood_vlans : [] -flow_tables : {} -ipfix : [] -mcast_snooping_enable: false -mirrors : [] -name : test-br -netflow : [] -other_config : {disable-in-band=true} -ports : [2c9c1b35-a304-4dee-bb7a-092d656543c7] -protocols : [] -rstp_enable : false -rstp_status : {} -sflow : [] -status : {} -stp_enable : false diff --git a/test/units/modules/network/ovs/ovs_module.py b/test/units/modules/network/ovs/ovs_module.py deleted file mode 100644 index 7864d9308f..0000000000 --- a/test/units/modules/network/ovs/ovs_module.py +++ /dev/null @@ -1,86 +0,0 @@ -# (c) 2017 Red Hat Inc. -# -# This file is part of Ansible -# -# Ansible is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# Ansible is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Ansible. If not, see <http://www.gnu.org/licenses/>. - -# Make coding more python3-ish -from __future__ import (absolute_import, division, print_function) -__metaclass__ = type - -import os -import json - -from units.modules.utils import AnsibleExitJson, AnsibleFailJson, ModuleTestCase - - -fixture_path = os.path.join(os.path.dirname(__file__), 'fixtures') -fixture_data = {} - - -def load_fixture(name): - path = os.path.join(fixture_path, name) - - if path in fixture_data: - return fixture_data[path] - - with open(path) as f: - data = f.read() - - try: - data = json.loads(data) - except Exception: - pass - - fixture_data[path] = data - return data - - -class TestOpenVSwitchModule(ModuleTestCase): - - def execute_module(self, failed=False, changed=False, - commands=None, test_name=None): - - self.load_fixtures(test_name) - - if failed: - result = self.failed() - self.assertTrue(result['failed'], result) - else: - result = self.changed(changed) - self.assertEqual(result['changed'], changed, result) - - if commands is not None: - self.assertEqual(commands, result['commands'], result['commands']) - - return result - - def failed(self): - with self.assertRaises(AnsibleFailJson) as exc: - self.module.main() - - result = exc.exception.args[0] - self.assertTrue(result['failed'], result) - return result - - def changed(self, changed=False): - with self.assertRaises(AnsibleExitJson) as exc: - self.module.main() - - result = exc.exception.args[0] - self.assertEqual(result['changed'], changed, result) - return result - - def load_fixtures(self, test_name): - pass diff --git a/test/units/modules/network/ovs/test_openvswitch_bridge.py b/test/units/modules/network/ovs/test_openvswitch_bridge.py deleted file mode 100644 index e1e1046c21..0000000000 --- a/test/units/modules/network/ovs/test_openvswitch_bridge.py +++ /dev/null @@ -1,232 +0,0 @@ -# -# (c) 2016 Red Hat Inc. -# -# This file is part of Ansible -# -# Ansible is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# Ansible is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Ansible. If not, see <http://www.gnu.org/licenses/>. - -# Make coding more python3-ish -from __future__ import (absolute_import, division, print_function) -__metaclass__ = type - -from ansible.modules.network.ovs import openvswitch_bridge -from units.compat.mock import patch, MagicMock -from units.modules.utils import set_module_args -from .ovs_module import TestOpenVSwitchModule, load_fixture - -import pytest - - -@pytest.fixture -def patched_openvswitch_bridge(monkeypatch): - mocked_bridge = MagicMock() - mocked_bridge.return_value = {'bridge': 'test-br2', 'parent': 'test-br', - 'vlan': 200, 'fail_mode': None, - 'external_ids': None, 'set': None} - monkeypatch.setattr(openvswitch_bridge, 'map_config_to_obj', mocked_bridge) - return openvswitch_bridge - - -test_name_side_effect_matrix = { - 'test_openvswitch_bridge_absent_idempotent': [ - (0, '', '')], - 'test_openvswitch_bridge_absent_removes_bridge': [ - (0, 'list_br_test_br.cfg', ''), - (0, '', ''), - (0, '', ''), - (0, '', ''), - (0, '', ''), - (0, '', '')], - 'test_openvswitch_bridge_present_idempotent': [ - (0, 'list_br_test_br.cfg', ''), - (0, 'br_to_parent_test_br.cfg', ''), - (0, 'br_to_vlan_zero.cfg', ''), - (0, 'get_fail_mode_secure.cfg', ''), - (0, 'br_get_external_id_foo_bar.cfg', '')], - 'test_openvswitch_bridge_present_creates_bridge': [ - (0, '', ''), - (0, '', ''), - (0, '', ''), - (0, '', '')], - 'test_openvswitch_bridge_present_creates_fake_bridge': [ - (0, '', ''), - (0, '', ''), - (0, '', ''), - (0, '', '')], - 'test_openvswitch_bridge_updates_vlan': [ - (0, '', ''), - (0, '', ''), - (0, '', ''), - (0, '', '')], - 'test_openvswitch_bridge_present_adds_external_id': [ - (0, 'list_br_test_br.cfg', ''), - (0, 'br_to_parent_test_br.cfg', ''), - (0, 'br_to_vlan_zero.cfg', ''), - (0, 'get_fail_mode_secure.cfg', ''), - (0, 'br_get_external_id_foo_bar.cfg', ''), - (0, '', '')], - 'test_openvswitch_bridge_present_clears_external_id': [ - (0, 'list_br_test_br.cfg', ''), - (0, 'br_to_parent_test_br.cfg', ''), - (0, 'br_to_vlan_zero.cfg', ''), - (0, 'get_fail_mode_secure.cfg', ''), - (0, 'br_get_external_id_foo_bar.cfg', ''), - (0, '', '')], - 'test_openvswitch_bridge_present_changes_fail_mode': [ - (0, 'list_br_test_br.cfg', ''), - (0, 'br_to_parent_test_br.cfg', ''), - (0, 'br_to_vlan_zero.cfg', ''), - (0, 'get_fail_mode_secure.cfg', ''), - (0, 'br_get_external_id_foo_bar.cfg', ''), - (0, '', '')], - 'test_openvswitch_bridge_present_runs_set_mode': [ - (0, '', ''), - (0, '', ''), - (0, '', ''), - (0, '', '')], -} - - -class TestOpenVSwitchBridgeModule(TestOpenVSwitchModule): - - module = openvswitch_bridge - - def setUp(self): - super(TestOpenVSwitchBridgeModule, self).setUp() - - self.mock_run_command = ( - patch('ansible.module_utils.basic.AnsibleModule.run_command')) - self.run_command = self.mock_run_command.start() - self.mock_get_bin_path = ( - patch('ansible.module_utils.basic.AnsibleModule.get_bin_path')) - self.get_bin_path = self.mock_get_bin_path.start() - - def tearDown(self): - super(TestOpenVSwitchBridgeModule, self).tearDown() - - self.mock_run_command.stop() - self.mock_get_bin_path.stop() - - def load_fixtures(self, test_name): - test_side_effects = [] - for s in test_name_side_effect_matrix[test_name]: - rc = s[0] - out = s[1] if s[1] == '' else str(load_fixture(s[1])) - err = s[2] - side_effect_with_fixture_loaded = (rc, out, err) - test_side_effects.append(side_effect_with_fixture_loaded) - self.run_command.side_effect = test_side_effects - - self.get_bin_path.return_value = '/usr/bin/ovs-vsctl' - - def test_openvswitch_bridge_absent_idempotent(self): - set_module_args(dict(state='absent', - bridge='test-br')) - self.execute_module(test_name='test_openvswitch_bridge_absent_idempotent') - - def test_openvswitch_bridge_absent_removes_bridge(self): - set_module_args(dict(state='absent', - bridge='test-br')) - commands = ['/usr/bin/ovs-vsctl -t 5 del-br test-br'] - self.execute_module(changed=True, commands=commands, - test_name='test_openvswitch_bridge_absent_removes_bridge') - - def test_openvswitch_bridge_present_idempotent(self): - set_module_args(dict(state='present', - bridge='test-br', - fail_mode='secure', - external_ids={'foo': 'bar'})) - self.execute_module(test_name='test_openvswitch_bridge_present_idempotent') - - def test_openvswitch_bridge_present_creates_bridge(self): - set_module_args(dict(state='present', - bridge='test-br', - fail_mode='secure', - external_ids={'foo': 'bar'})) - commands = [ - '/usr/bin/ovs-vsctl -t 5 add-br test-br', - '/usr/bin/ovs-vsctl -t 5 set-fail-mode test-br secure', - '/usr/bin/ovs-vsctl -t 5 br-set-external-id test-br foo bar' - ] - self.execute_module(changed=True, commands=commands, - test_name='test_openvswitch_bridge_present_creates_bridge') - - def test_openvswitch_bridge_present_creates_fake_bridge(self): - set_module_args(dict(state='present', - bridge='test-br2', - parent='test-br', - vlan=10)) - commands = [ - '/usr/bin/ovs-vsctl -t 5 add-br test-br2 test-br 10', - ] - self.execute_module(changed=True, commands=commands, - test_name='test_openvswitch_bridge_present_creates_fake_bridge') - - @pytest.mark.usefixtures('patched_openvswitch_bridge') - def test_openvswitch_bridge_updates_vlan(self): - set_module_args({'state': 'present', 'bridge': 'test-br2', 'parent': - 'test-br', 'vlan': 300}) - commands = [ - '/usr/bin/ovs-vsctl -t 5 set port test-br2 tag=300' - ] - self.execute_module(changed=True, commands=commands, - test_name='test_openvswitch_bridge_updates_vlan') - - def test_openvswitch_bridge_present_adds_external_id(self): - set_module_args(dict(state='present', - bridge='test-br', - fail_mode='secure', - external_ids={'bip': 'bop'})) - commands = [ - '/usr/bin/ovs-vsctl -t 5 br-set-external-id test-br bip bop' - ] - self.execute_module(changed=True, commands=commands, - test_name='test_openvswitch_bridge_present_adds_external_id') - - def test_openvswitch_bridge_present_clears_external_id(self): - set_module_args(dict(state='present', - bridge='test-br', - fail_mode='secure', - external_ids={'foo': ''})) - commands = [ - '/usr/bin/ovs-vsctl -t 5 br-set-external-id test-br foo ' - ] - self.execute_module(changed=True, commands=commands, - test_name='test_openvswitch_bridge_present_clears_external_id') - - def test_openvswitch_bridge_present_changes_fail_mode(self): - set_module_args(dict(state='present', - bridge='test-br', - fail_mode='standalone', - external_ids={'foo': 'bar'})) - commands = [ - '/usr/bin/ovs-vsctl -t 5 set-fail-mode test-br standalone' - ] - self.execute_module(changed=True, commands=commands, - test_name='test_openvswitch_bridge_present_changes_fail_mode') - - def test_openvswitch_bridge_present_runs_set_mode(self): - set_module_args(dict(state='present', - bridge='test-br', - fail_mode='secure', - external_ids={'foo': 'bar'}, - set="bridge test-br datapath_type=netdev")) - commands = [ - '/usr/bin/ovs-vsctl -t 5 add-br test-br -- set bridge test-br' - ' datapath_type=netdev', - '/usr/bin/ovs-vsctl -t 5 set-fail-mode test-br secure', - '/usr/bin/ovs-vsctl -t 5 br-set-external-id test-br foo bar' - ] - self.execute_module(changed=True, commands=commands, - test_name='test_openvswitch_bridge_present_runs_set_mode') diff --git a/test/units/modules/network/ovs/test_openvswitch_db.py b/test/units/modules/network/ovs/test_openvswitch_db.py deleted file mode 100644 index 0b0b154c0e..0000000000 --- a/test/units/modules/network/ovs/test_openvswitch_db.py +++ /dev/null @@ -1,173 +0,0 @@ -# -# (c) 2016 Red Hat Inc. -# -# This file is part of Ansible -# -# Ansible is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# Ansible is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Ansible. If not, see <http://www.gnu.org/licenses/>. - -# Make coding more python3-ish -from __future__ import (absolute_import, division, print_function) -__metaclass__ = type - -from ansible.modules.network.ovs import openvswitch_db -from units.compat.mock import patch, MagicMock -from units.modules.utils import set_module_args -from .ovs_module import TestOpenVSwitchModule, load_fixture - -import pytest - - -@pytest.fixture -def patched_openvswitch_db(monkeypatch): - mocked_ovs_db = MagicMock() - mocked_ovs_db.return_value = {'table': 'open_vswitch', - 'record': '.', - 'col': 'other_config', - 'key': 'pmd-cpu-mask', - 'value': '0xaaa00000000'} - monkeypatch.setattr(openvswitch_db, 'map_config_to_obj', mocked_ovs_db) - return openvswitch_db - - -test_name_side_effect_matrix = { - 'test_openvswitch_db_absent_idempotent': [ - (0, 'openvswitch_db_disable_in_band_missing.cfg', None), - (0, None, None)], - 'test_openvswitch_db_absent_removes_key': [ - (0, 'openvswitch_db_disable_in_band_true.cfg', None), - (0, None, None)], - 'test_openvswitch_db_present_idempotent': [ - (0, 'openvswitch_db_disable_in_band_true.cfg', None), - (0, None, None)], - 'test_openvswitch_db_present_idempotent_value': [ - (0, None, None)], - 'test_openvswitch_db_present_adds_key': [ - (0, 'openvswitch_db_disable_in_band_missing.cfg', None), - (0, None, None)], - 'test_openvswitch_db_present_updates_key': [ - (0, 'openvswitch_db_disable_in_band_true.cfg', None), - (0, None, None)], - 'test_openvswitch_db_present_missing_key_on_map': [ - (0, 'openvswitch_db_disable_in_band_true.cfg', None), - (0, None, None)], - 'test_openvswitch_db_present_stp_enable': [ - (0, 'openvswitch_db_disable_in_band_true.cfg', None), - (0, None, None)], -} - - -class TestOpenVSwitchDBModule(TestOpenVSwitchModule): - - module = openvswitch_db - - def setUp(self): - super(TestOpenVSwitchDBModule, self).setUp() - - self.mock_run_command = ( - patch('ansible.module_utils.basic.AnsibleModule.run_command')) - self.run_command = self.mock_run_command.start() - self.mock_get_bin_path = ( - patch('ansible.module_utils.basic.AnsibleModule.get_bin_path')) - self.get_bin_path = self.mock_get_bin_path.start() - - def tearDown(self): - super(TestOpenVSwitchDBModule, self).tearDown() - - self.mock_run_command.stop() - self.mock_get_bin_path.stop() - - def load_fixtures(self, test_name): - test_side_effects = [] - for s in test_name_side_effect_matrix[test_name]: - rc = s[0] - out = load_fixture(s[1]) if s[1] else None - err = s[2] - side_effect_with_fixture_loaded = (rc, out, err) - test_side_effects.append(side_effect_with_fixture_loaded) - self.run_command.side_effect = test_side_effects - - self.get_bin_path.return_value = '/usr/bin/ovs-vsctl' - - def test_openvswitch_db_absent_idempotent(self): - set_module_args(dict(state='absent', - table='Bridge', record='test-br', - col='other_config', key='disable-in-band', - value='true')) - self.execute_module(test_name='test_openvswitch_db_absent_idempotent') - - def test_openvswitch_db_absent_removes_key(self): - set_module_args(dict(state='absent', - table='Bridge', record='test-br', - col='other_config', key='disable-in-band', - value='true')) - self.execute_module( - changed=True, - commands=['/usr/bin/ovs-vsctl -t 5 remove Bridge test-br other_config' - ' disable-in-band=true'], - test_name='test_openvswitch_db_absent_removes_key') - - def test_openvswitch_db_present_idempotent(self): - set_module_args(dict(state='present', - table='Bridge', record='test-br', - col='other_config', key='disable-in-band', - value='true')) - self.execute_module(test_name='test_openvswitch_db_present_idempotent') - - @pytest.mark.usefixtures('patched_openvswitch_db') - def test_openvswitch_db_present_idempotent_value(self): - set_module_args({"col": "other_config", - "key": "pmd-cpu-mask", - "record": ".", - "table": "open_vswitch", - "value": "0xaaa00000000"}) - self.execute_module(test_name='test_openvswitch_db_present_idempotent_value') - - def test_openvswitch_db_present_adds_key(self): - set_module_args(dict(state='present', - table='Bridge', record='test-br', - col='other_config', key='disable-in-band', - value='true')) - self.execute_module( - changed=True, - commands=['/usr/bin/ovs-vsctl -t 5 set Bridge test-br other_config' - ':disable-in-band=true'], - test_name='test_openvswitch_db_present_adds_key') - - def test_openvswitch_db_present_updates_key(self): - set_module_args(dict(state='present', - table='Bridge', record='test-br', - col='other_config', key='disable-in-band', - value='false')) - self.execute_module( - changed=True, - commands=['/usr/bin/ovs-vsctl -t 5 set Bridge test-br other_config' - ':disable-in-band=false'], - test_name='test_openvswitch_db_present_updates_key') - - def test_openvswitch_db_present_missing_key_on_map(self): - set_module_args(dict(state='present', - table='Bridge', record='test-br', - col='other_config', - value='false')) - self.execute_module( - failed=True, - test_name='test_openvswitch_db_present_missing_key_on_map') - - def test_openvswitch_db_present_stp_enable(self): - set_module_args(dict(state='present', - table='Bridge', record='test-br', - col='stp_enable', - value='true')) - self.execute_module(changed=True, - test_name='test_openvswitch_db_present_stp_enable') diff --git a/test/units/modules/network/ovs/test_openvswitch_port.py b/test/units/modules/network/ovs/test_openvswitch_port.py deleted file mode 100644 index 1c2ebb9b19..0000000000 --- a/test/units/modules/network/ovs/test_openvswitch_port.py +++ /dev/null @@ -1,207 +0,0 @@ -# -# (c) 2016 Red Hat Inc. -# -# This file is part of Ansible -# -# Ansible is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# Ansible is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Ansible. If not, see <http://www.gnu.org/licenses/>. - -# Make coding more python3-ish -from __future__ import (absolute_import, division, print_function) -__metaclass__ = type - -from units.compat.mock import patch -from ansible.modules.network.ovs import openvswitch_port -from units.modules.utils import set_module_args -from .ovs_module import TestOpenVSwitchModule, load_fixture - -test_name_side_effect_matrix = { - 'test_openvswitch_port_absent_idempotent': [ - (0, '', '')], - 'test_openvswitch_port_absent_removes_port': [ - (0, 'list_ports_test_br.cfg', ''), - (0, 'get_port_eth2_tag.cfg', ''), - (0, 'get_port_eth2_external_ids.cfg', ''), - (0, '', '')], - 'test_openvswitch_port_present_idempotent': [ - (0, 'list_ports_test_br.cfg', ''), - (0, 'get_port_eth2_tag.cfg', ''), - (0, 'get_port_eth2_external_ids.cfg', ''), - (0, '', '')], - 'test_openvswitch_port_present_creates_port': [ - (0, '', ''), - (0, '', ''), - (0, '', '')], - 'test_openvswitch_port_present_changes_tag': [ - (0, 'list_ports_test_br.cfg', ''), - (0, 'get_port_eth2_tag.cfg', ''), - (0, 'get_port_eth2_external_ids.cfg', ''), - (0, '', '')], - 'test_openvswitch_port_present_changes_external_id': [ - (0, 'list_ports_test_br.cfg', ''), - (0, 'get_port_eth2_tag.cfg', ''), - (0, 'get_port_eth2_external_ids.cfg', ''), - (0, '', '')], - 'test_openvswitch_port_present_adds_external_id': [ - (0, 'list_ports_test_br.cfg', ''), - (0, 'get_port_eth2_tag.cfg', ''), - (0, 'get_port_eth2_external_ids.cfg', ''), - (0, '', '')], - 'test_openvswitch_port_present_clears_external_id': [ - (0, 'list_ports_test_br.cfg', ''), - (0, 'get_port_eth2_tag.cfg', ''), - (0, 'get_port_eth2_external_ids.cfg', ''), - (0, '', '')], - 'test_openvswitch_port_present_runs_set_mode': [ - (0, '', ''), - (0, '', ''), - (0, '', '')], -} - - -class TestOpenVSwitchPortModule(TestOpenVSwitchModule): - - module = openvswitch_port - - def setUp(self): - super(TestOpenVSwitchPortModule, self).setUp() - - self.mock_run_command = ( - patch('ansible.module_utils.basic.AnsibleModule.run_command')) - self.run_command = self.mock_run_command.start() - self.mock_get_bin_path = ( - patch('ansible.module_utils.basic.AnsibleModule.get_bin_path')) - self.get_bin_path = self.mock_get_bin_path.start() - - def tearDown(self): - super(TestOpenVSwitchPortModule, self).tearDown() - - self.mock_run_command.stop() - self.mock_get_bin_path.stop() - - def load_fixtures(self, test_name): - test_side_effects = [] - for s in test_name_side_effect_matrix[test_name]: - rc = s[0] - out = s[1] if s[1] == '' else str(load_fixture(s[1])) - err = s[2] - side_effect_with_fixture_loaded = (rc, out, err) - test_side_effects.append(side_effect_with_fixture_loaded) - self.run_command.side_effect = test_side_effects - - self.get_bin_path.return_value = '/usr/bin/ovs-vsctl' - - def test_openvswitch_port_absent_idempotent(self): - set_module_args(dict(state='absent', - bridge='test-br', - port='eth2')) - self.execute_module(test_name='test_openvswitch_port_absent_idempotent') - - def test_openvswitch_port_absent_removes_port(self): - set_module_args(dict(state='absent', - bridge='test-br', - port='eth2')) - commands = [ - '/usr/bin/ovs-vsctl -t 5 del-port test-br eth2', - ] - self.execute_module(changed=True, commands=commands, - test_name='test_openvswitch_port_absent_removes_port') - - def test_openvswitch_port_present_idempotent(self): - set_module_args(dict(state='present', - bridge='test-br', - port='eth2', - tag=10, - external_ids={'foo': 'bar'})) - self.execute_module(test_name='test_openvswitch_port_present_idempotent') - - def test_openvswitch_port_present_creates_port(self): - set_module_args(dict(state='present', - bridge='test-br', - port='eth2', - tag=10, - external_ids={'foo': 'bar'})) - commands = [ - '/usr/bin/ovs-vsctl -t 5 add-port test-br eth2 tag=10', - '/usr/bin/ovs-vsctl -t 5 set port eth2 external_ids:foo=bar' - ] - self.execute_module(changed=True, - commands=commands, - test_name='test_openvswitch_port_present_creates_port') - - def test_openvswitch_port_present_changes_tag(self): - set_module_args(dict(state='present', - bridge='test-br', - port='eth2', - tag=20, - external_ids={'foo': 'bar'})) - commands = [ - '/usr/bin/ovs-vsctl -t 5 set port eth2 tag=20' - ] - self.execute_module(changed=True, - commands=commands, - test_name='test_openvswitch_port_present_changes_tag') - - def test_openvswitch_port_present_changes_external_id(self): - set_module_args(dict(state='present', - bridge='test-br', - port='eth2', - tag=10, - external_ids={'foo': 'baz'})) - commands = [ - '/usr/bin/ovs-vsctl -t 5 set port eth2 external_ids:foo=baz' - ] - self.execute_module(changed=True, - commands=commands, - test_name='test_openvswitch_port_present_changes_external_id') - - def test_openvswitch_port_present_adds_external_id(self): - set_module_args(dict(state='present', - bridge='test-br', - port='eth2', - tag=10, - external_ids={'foo2': 'bar2'})) - commands = [ - '/usr/bin/ovs-vsctl -t 5 set port eth2 external_ids:foo2=bar2' - ] - self.execute_module(changed=True, - commands=commands, - test_name='test_openvswitch_port_present_adds_external_id') - - def test_openvswitch_port_present_clears_external_id(self): - set_module_args(dict(state='present', - bridge='test-br', - port='eth2', - tag=10, - external_ids={'foo': None})) - commands = [ - '/usr/bin/ovs-vsctl -t 5 remove port eth2 external_ids foo' - ] - self.execute_module(changed=True, - commands=commands, - test_name='test_openvswitch_port_present_clears_external_id') - - def test_openvswitch_port_present_runs_set_mode(self): - set_module_args(dict(state='present', - bridge='test-br', - port='eth2', - tag=10, - external_ids={'foo': 'bar'}, - set="port eth2 other_config:stp-path-cost=10")) - commands = [ - '/usr/bin/ovs-vsctl -t 5 add-port test-br eth2 tag=10 -- set' - ' port eth2 other_config:stp-path-cost=10', - '/usr/bin/ovs-vsctl -t 5 set port eth2 external_ids:foo=bar' - ] - self.execute_module(changed=True, commands=commands, - test_name='test_openvswitch_port_present_runs_set_mode') |