diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-08-02 22:59:23 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-08-02 22:59:23 +0000 |
| commit | 8a77bff0a36b7bf575227822d910e97da785f362 (patch) | |
| tree | 476ad51d6f5524858380718f3465212b2f019ba4 | |
| parent | eaf6e3ae2eb0d9ec46a6372d06842e033031c061 (diff) | |
| parent | 04a0bd690579a91b487b2865c52b6d073b25ad5d (diff) | |
Merge "Update usage of 'ip' to handle more return codes"
| -rw-r--r-- | nova/network/linux_net.py | 17 |
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]) |
