Reduce number of novaclient calls

Currently, each client creates a new session for
each call. This fix makes novaclient re-use
sessions in the most obvoius cases.

Partial-Bug: #1247056

Change-Id: Ie99ecb66304cf40e4f5fdd31fab5162ed11b863e
Merge "Reduce number of novaclient calls"
Use six.StringIO/BytesIO instead of StringIO.StringIO

to keep Python 3.x compatibility, use six.StringIO/BytesIO to
replace StringIO.StringIO

StringIO works for unicode
BytesIO works for bytes

Change-Id: I1d4db56dd082916879b851f2d9ac71d17c0db94f
Closes-Bug: #1280100