summaryrefslogtreecommitdiffstats
path: root/apex
diff options
context:
space:
mode:
authorTim Rozet <trozet@redhat.com>2017-09-16 09:42:47 -0400
committerTim Rozet <trozet@redhat.com>2017-09-19 19:05:41 +0000
commitcbc3383820af559b1b69d14968916dd9f074c398 (patch)
treeb23c95bae1fdfa9fba2fb2937c9ec85338c5e68e /apex
parentf6792ad2fff60fae3759eaf7d4092012acf360db (diff)
Fix broken jumphost detach method when orig file exists
In the case where the backup ifcfg file exists (.orig) the functionality to detach the interface from ovs was broken. This fixes it and adds unit test case to cover that scenario. Change-Id: If6d8ca0ba5cf80df71bb82f52e9d204435374479 Signed-off-by: Tim Rozet <trozet@redhat.com> (cherry picked from commit 74336aa1ff8270e701c1e5f20c7a566715ed8d92)
Diffstat (limited to 'apex')
-rw-r--r--apex/network/jumphost.py7
-rw-r--r--apex/tests/test_apex_network_jumphost.py23
2 files changed, 26 insertions, 4 deletions
diff --git a/apex/network/jumphost.py b/apex/network/jumphost.py
index 2ecb7f4e..96b06cba 100644
--- a/apex/network/jumphost.py
+++ b/apex/network/jumphost.py
@@ -227,15 +227,14 @@ def detach_interface_from_ovs(network):
orig_ifcfg_file = os.path.join(NET_CFG_PATH,
"ifcfg-{}.orig".format(real_interface))
ifcfg_file = orig_ifcfg_file[:-len('.orig')]
+ bridge_ifcfg_file = os.path.join(NET_CFG_PATH,
+ "ifcfg-{}".format(bridge))
if os.path.isfile(orig_ifcfg_file):
logging.debug("Original interface file found: "
"{}".format(orig_ifcfg_file))
- shutil.move(orig_ifcfg_file, ifcfg_file)
else:
logging.info("No original ifcfg file found...will attempt to use "
- "bridge icfg file and re-create")
- bridge_ifcfg_file = os.path.join(NET_CFG_PATH,
- "ifcfg-{}".format(bridge))
+ "bridge ifcfg file and re-create")
if os.path.isfile(bridge_ifcfg_file):
ifcfg_params = generate_ifcfg_params(bridge_ifcfg_file, network)
if_content = """DEVICE={}
diff --git a/apex/tests/test_apex_network_jumphost.py b/apex/tests/test_apex_network_jumphost.py
index a23f1c56..da9703e3 100644
--- a/apex/tests/test_apex_network_jumphost.py
+++ b/apex/tests/test_apex_network_jumphost.py
@@ -203,6 +203,29 @@ class TestNetworkJumpHost:
os.remove(ifcfg_path)
@patch('subprocess.check_call')
+ @patch('apex.network.jumphost.is_ovs_bridge', return_value=True)
+ @patch('apex.network.jumphost.dump_ovs_ports', return_value=['enpfakes0'])
+ def test_detach_interface_orig_exists(self, dump_ports_func,
+ is_bridge_func, subprocess_func):
+ ifcfg_dir = con.TEST_DUMMY_CONFIG
+ shutil.copyfile(os.path.join(ifcfg_dir, 'ifcfg-br-dummy'),
+ os.path.join(ifcfg_dir, 'ifcfg-br-admin'))
+ shutil.copyfile(os.path.join(ifcfg_dir, 'ifcfg-dummy'),
+ os.path.join(ifcfg_dir, 'ifcfg-enpfakes0.orig'))
+ jumphost.NET_CFG_PATH = ifcfg_dir
+ output = jumphost.detach_interface_from_ovs('admin')
+ assert output is None
+ assert os.path.isfile(os.path.join(ifcfg_dir, 'ifcfg-enpfakes0'))
+ assert os.path.isfile(os.path.join(ifcfg_dir, 'ifcfg-br-admin'))
+ assert not os.path.isfile(os.path.join(ifcfg_dir,
+ 'ifcfg-enpfakes0.orig'))
+ for ifcfg in ('ifcfg-enpfakes0', 'ifcfg-enpfakes0.orig',
+ 'ifcfg-br-admin'):
+ ifcfg_path = os.path.join(ifcfg_dir, ifcfg)
+ if os.path.isfile(ifcfg_path):
+ os.remove(ifcfg_path)
+
+ @patch('subprocess.check_call')
@patch('apex.network.jumphost.is_ovs_bridge', return_value=False)
@patch('apex.network.jumphost.dump_ovs_ports', return_value=[])
def test_detach_interface_no_bridge(self, dump_ports_func,