summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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,