In addition to parsing its configuration from a yaml file, it can now be
created from a dict. It can also be dumped as a dict, or as a yaml
stream. It is also now split into multiple classes so that the same
implementation can be used for job configs, and not just as a proxy for
~/.teuthology.yaml.
Signed-off-by: Zack Cerza <zack.cerza@inktank.com>
RemoteProcess behaves more like subprocess.Popen, with some important
differences.
A summary of the API changes:
* RemoteProcess.exitstatus is either an int or None; it is never a callable
nor a gevent.AsyncResult.
* New method: RemoteProcess.execute()
* New method: RemoteProcess.poll()
* New method: RemoteProcess.wait()
* New attribute: RemoteProcess.returncode - alias to exitstatus
* New property: RemoteProcess.finished - added because returncode can be None
if the connection was interrupted
* run.execute() is removed.
Signed-off-by: Zack Cerza <zack.cerza@inktank.com>
This reverts commit eafeece243.
I was having problems with my newly-created devstack task hanging
inexplicably. It turns out this commit was responsible.