change File "/root/haven/env/lib/python3.4/site-packages/oslo_vmware/service.py", line 149, in open to folowing: return six.StringIO(resp.text) will raise: Traceback (most recent call last): File "vmware.py", line 149, in vmware = VirtualMachine('192.85.168.132', 'toolchain', password) File "vmware.py", line 64, in __init__ interval=interval) File "vmware.py", line 48, in __init__ self.sess = get_session(host, username, password, retries, interval) File "vmware.py", line 19, in get_session interval, File "/root/haven/env/lib/python3.4/site-packages/oslo_vmware/api.py", line 184, in __init__ self._create_session() File "/root/haven/env/lib/python3.4/site-packages/oslo_vmware/api.py", line 123, in func return evt.wait() File "/root/haven/env/lib/python3.4/site-packages/eventlet/event.py", line 121, in wait return hubs.get_hub().switch() File "/root/haven/env/lib/python3.4/site-packages/eventlet/hubs/hub.py", line 294, in switch return self.greenlet.switch() File "/root/haven/env/lib/python3.4/site-packages/oslo_vmware/common/loopingcall.py", line 124, in _inner idle = self.f(*self.args, **self.kw) File "/root/haven/env/lib/python3.4/site-packages/oslo_vmware/api.py", line 96, in _func result = f(*args, **kwargs) File "/root/haven/env/lib/python3.4/site-packages/oslo_concurrency/lockutils.py", line 271, in inner return f(*args, **kwargs) File "/root/haven/env/lib/python3.4/site-packages/oslo_vmware/api.py", line 231, in _create_session session_manager = self.vim.service_content.sessionManager File "/root/haven/env/lib/python3.4/site-packages/oslo_vmware/api.py", line 200, in vim pool_maxsize=self._pool_size) File "/root/haven/env/lib/python3.4/site-packages/oslo_vmware/vim.py", line 44, in __init__ pool_maxsize) File "/root/haven/env/lib/python3.4/site-packages/oslo_vmware/service.py", line 204, in __init__ cache=_CACHE) File "/root/haven/env/lib/python3.4/site-packages/suds/client.py", line 115, in __init__ self.wsdl = reader.open(url) File "/root/haven/env/lib/python3.4/site-packages/suds/reader.py", line 150, in open d = self.fn(url, self.options) File "/root/haven/env/lib/python3.4/site-packages/suds/wsdl.py", line 136, in __init__ d = reader.open(url) File "/root/haven/env/lib/python3.4/site-packages/suds/reader.py", line 74, in open d = self.download(url) File "/root/haven/env/lib/python3.4/site-packages/suds/reader.py", line 100, in download return sax.parse(string=content) File "/root/haven/env/lib/python3.4/site-packages/suds/sax/parser.py", line 132, in parse source.setByteStream(suds.BytesIO(string)) TypeError: 'str' does not support the buffer interface as I dive into suds's source code, found this: https://bitbucket.org/jurko/suds/src/94664ddd46a61d06862fa8fb6ba7b9e054214f57/suds/__init__.py?at=default&fileviewer=file-view-default#__init__.py-130 if sys.version_info < (3, 0): from cStringIO import StringIO as BytesIO else: from io import BytesIO py2 using StringIO as BytesIO, but py3 using real BytesIO, so when "return six.StringIO(resp.text)" in oslo_vmware/service.py will pass StringIO to suds.BytesIO(string), will raise like above. So, in order to make it work with suds, in oslo_vmware/service.py, we have to use six.BytesIO(resp.content) instead in py3.