summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorDan Prince <dan.prince@rackspace.com>2011-03-10 21:44:01 -0500
committerDan Prince <dan.prince@rackspace.com>2011-03-10 21:44:01 -0500
commitb9a479ffc8e9db0c1888047d7f3df99b3b57b2ec (patch)
treeafb8b9509d9ee8addfd35e2b4a3938392fb97bbc /nova
parent7ca1669603132e3afd14606dda3f95ccbce08a41 (diff)
downloadnova-b9a479ffc8e9db0c1888047d7f3df99b3b57b2ec.tar.gz
nova-b9a479ffc8e9db0c1888047d7f3df99b3b57b2ec.tar.xz
nova-b9a479ffc8e9db0c1888047d7f3df99b3b57b2ec.zip
Make linux_net ensure_bridge commands that add and remove ip addr's from
devices/bridges work with with the latest utils.execute method (execvp).
Diffstat (limited to 'nova')
-rw-r--r--nova/network/linux_net.py17
1 files changed, 12 insertions, 5 deletions
diff --git a/nova/network/linux_net.py b/nova/network/linux_net.py
index 9f9d282b6..e69ed2f75 100644
--- a/nova/network/linux_net.py
+++ b/nova/network/linux_net.py
@@ -513,11 +513,9 @@ def ensure_bridge(bridge, interface, net_attrs=None):
for line in out.split("\n"):
fields = line.split()
if fields and fields[0] == "inet":
- params = ' '.join(fields[1:-1])
- _execute('sudo', 'ip', 'addr',
- 'del', params, 'dev', fields[-1])
- _execute('sudo', 'ip', 'addr',
- 'add', params, 'dev', bridge)
+ params = fields[1:-1]
+ _execute(*_ip_bridge_cmd('del', params, fields[-1]))
+ _execute(*_ip_bridge_cmd('add', params, bridge))
if gateway:
_execute('sudo', 'route', 'add', '0.0.0.0', 'gw', gateway)
out, err = _execute('sudo', 'brctl', 'addif', bridge, interface,
@@ -739,3 +737,12 @@ def _ra_pid_for(bridge):
if os.path.exists(pid_file):
with open(pid_file, 'r') as f:
return int(f.read())
+
+
+def _ip_bridge_cmd(action, params, device):
+ """Build commands to add/del ips to bridges/devices"""
+
+ cmd = ['sudo', 'ip', 'addr', action]
+ cmd.extend(params)
+ cmd.extend(['dev', device])
+ return cmd