vnf_generic: convert sshmanager to class 43/27643/4
authorRoss Brattain <ross.b.brattain@intel.com>
Thu, 26 Jan 2017 23:14:59 +0000 (15:14 -0800)
committerRoss Brattain <ross.b.brattain@intel.com>
Wed, 8 Feb 2017 06:50:31 +0000 (06:50 +0000)
commit0464f576ffaa830a30f984df3e61bd29b15ddcaa
treef7fce48f61f1d96a33cf6aca398c05c594dd7b4c
parenta4241e6e9b121447a50fdfe0d79b322c2e2aaea9
vnf_generic: convert sshmanager to class

@contextmanager have an issue with respect to exceptions that makes
them not suitable for real usage.

@contextmanager uses yield to create a generator and then uses
generator.throw() to raise any exceptions.  Exceptions thrown from
generators loose their call stack due to the way generators work, so any
exception inside a context manager is harder to debug. For this reason
we don't use @contextmanager and instead always define a new class with
__enter__ and __exit__.

There is sample code that demonstrates the
issue with @contextmanager and generator.throw() here
https://gist.github.com/rbbratta/e28b6e64a4551522c3ac9815ca7f25f0

Change-Id: I5383c01f40a63e33680112f39b5bd9c858e328f1
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
tests/unit/benchmark/scenarios/networking/test_vnf_generic.py
yardstick/benchmark/scenarios/networking/vnf_generic.py