summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Windisch <eric@cloudscaling.com>2011-03-09 14:31:23 -0500
committerEric Windisch <eric@cloudscaling.com>2011-03-09 14:31:23 -0500
commit23369a63f4b74fb64bf57554a3fd8b15e3e2b49c (patch)
tree5f14103510373937a82b4395188a1d53a2c8c0cf
parent1d7358e70379607c9cce02307f4336efbd135a5d (diff)
downloadnova-23369a63f4b74fb64bf57554a3fd8b15e3e2b49c.tar.gz
nova-23369a63f4b74fb64bf57554a3fd8b15e3e2b49c.tar.xz
nova-23369a63f4b74fb64bf57554a3fd8b15e3e2b49c.zip
Fixes uses of process_input
-rw-r--r--nova/utils.py4
-rw-r--r--nova/virt/disk.py4
-rw-r--r--nova/virt/libvirt_conn.py11
3 files changed, 8 insertions, 11 deletions
diff --git a/nova/utils.py b/nova/utils.py
index 7ddf056ea..0937522ec 100644
--- a/nova/utils.py
+++ b/nova/utils.py
@@ -131,7 +131,7 @@ def fetchfile(url, target):
def execute(*cmd, **kwargs):
process_input=kwargs.get('process_input', None)
addl_env=kwargs.get('addl_env', None)
- check_exit_code=kwargs.get('check_exit_code', True)
+ check_exit_code=kwargs.get('check_exit_code', 0)
stdin=kwargs.get('stdin', subprocess.PIPE)
stdout=kwargs.get('stdout', subprocess.PIPE)
stderr=kwargs.get('stderr', subprocess.PIPE)
@@ -151,7 +151,7 @@ def execute(*cmd, **kwargs):
obj.stdin.close()
if obj.returncode:
LOG.debug(_("Result was %s") % obj.returncode)
- if check_exit_code and obj.returncode != 0:
+ if check_exit_code is not None and obj.returncode != check_exit_code:
(stdout, stderr) = result
raise ProcessExecutionError(exit_code=obj.returncode,
stdout=stdout,
diff --git a/nova/virt/disk.py b/nova/virt/disk.py
index 203517275..a54cda003 100644
--- a/nova/virt/disk.py
+++ b/nova/virt/disk.py
@@ -175,8 +175,8 @@ def _inject_key_into_fs(key, fs):
utils.execute('sudo', 'chown', 'root', sshdir)
utils.execute('sudo', 'chmod', '700', sshdir)
keyfile = os.path.join(sshdir, 'authorized_keys')
- # TODO:EWINDISCH: not sure about the following /w execv patch
- utils.execute('sudo', 'tee', '-a', keyfile, '\n' + key.strip() + '\n')
+ utils.execute('sudo', 'tee', '-a', keyfile,
+ process_input='\n' + key.strip() + '\n')
def _inject_net_into_fs(net, fs):
diff --git a/nova/virt/libvirt_conn.py b/nova/virt/libvirt_conn.py
index 76f31f91a..6b555ecbb 100644
--- a/nova/virt/libvirt_conn.py
+++ b/nova/virt/libvirt_conn.py
@@ -485,13 +485,10 @@ class LibvirtConnection(object):
port = random.randint(int(start_port), int(end_port))
# netcat will exit with 0 only if the port is in use,
# so a nonzero return value implies it is unused
-
- # TODO(ewindisch): broken /w execvp patch.
- # subprocess lets us do this, but utils.execute
- # abstracts it away from us
- cmd = 'netcat', '0.0.0.0', port, '-w', '1', '</dev/null || echo free' % (port)
- stdout, stderr = utils.execute(cmd)
- if stdout.strip() == 'free':
+ cmd = 'netcat', '0.0.0.0', port, '-w', '1'
+ try:
+ stdout, stderr = utils.execute(*cmd, process_input='')
+ except ProcessExecutionError:
return port
raise Exception(_('Unable to find an open port'))