summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-08-02 22:59:23 +0000
committerGerrit Code Review <review@openstack.org>2012-08-02 22:59:23 +0000
commit8a77bff0a36b7bf575227822d910e97da785f362 (patch)
tree476ad51d6f5524858380718f3465212b2f019ba4
parenteaf6e3ae2eb0d9ec46a6372d06842e033031c061 (diff)
parent04a0bd690579a91b487b2865c52b6d073b25ad5d (diff)
Merge "Update usage of 'ip' to handle more return codes"
-rw-r--r--nova/network/linux_net.py17
1 files changed, 10 insertions, 7 deletions
diff --git a/nova/network/linux_net.py b/nova/network/linux_net.py
index ee600dafb..2bf467cb3 100644
--- a/nova/network/linux_net.py
+++ b/nova/network/linux_net.py
@@ -1171,14 +1171,15 @@ class QuantumLinuxBridgeInterfaceDriver(LinuxNetInterfaceDriver):
utils.execute('brctl', 'setfd', bridge, str(0), run_as_root=True)
utils.execute('brctl', 'stp', bridge, 'off', run_as_root=True)
utils.execute('ip', 'link', 'set', bridge, 'address', mac_address,
- run_as_root=True)
- utils.execute('ip', 'link', 'set', bridge, 'up', run_as_root=True)
+ run_as_root=True, check_exit_code=[0, 2, 254])
+ utils.execute('ip', 'link', 'set', bridge, 'up', run_as_root=True,
+ check_exit_code=[0, 2, 254])
LOG.debug(_("Done starting bridge %s"), bridge)
full_ip = '%s/%s' % (network['dhcp_server'],
network['cidr'].rpartition('/')[2])
utils.execute('ip', 'address', 'add', full_ip, 'dev', bridge,
- run_as_root=True)
+ run_as_root=True, check_exit_code=[0, 2, 254])
return dev
@@ -1189,7 +1190,8 @@ class QuantumLinuxBridgeInterfaceDriver(LinuxNetInterfaceDriver):
return None
else:
try:
- utils.execute('ip', 'link', 'delete', dev, run_as_root=True)
+ utils.execute('ip', 'link', 'delete', dev, run_as_root=True,
+ check_exit_code=[0, 2, 254])
except exception.ProcessExecutionError:
LOG.error(_("Failed unplugging gateway interface '%s'"), dev)
raise
@@ -1202,14 +1204,15 @@ class QuantumLinuxBridgeInterfaceDriver(LinuxNetInterfaceDriver):
try:
# First, try with 'ip'
utils.execute('ip', 'tuntap', 'add', dev, 'mode', 'tap',
- run_as_root=True)
+ run_as_root=True, check_exit_code=[0, 2, 254])
except exception.ProcessExecutionError:
# Second option: tunctl
utils.execute('tunctl', '-b', '-t', dev, run_as_root=True)
if mac_address:
utils.execute('ip', 'link', 'set', dev, 'address', mac_address,
- run_as_root=True)
- utils.execute('ip', 'link', 'set', dev, 'up', run_as_root=True)
+ run_as_root=True, check_exit_code=[0, 2, 254])
+ utils.execute('ip', 'link', 'set', dev, 'up', run_as_root=True,
+ check_exit_code=[0, 2, 254])
def get_dev(self, network):
dev = self.GATEWAY_INTERFACE_PREFIX + str(network['uuid'][0:11])