Here is a smaller reproducer (aka one that uses the newly-introduced wrappers for swift)
(undercloud) [stack@undercloud-0 ~]$ echo 'test' > /tmp/foo
(undercloud) [stack@undercloud-0 ~]$ python3 prova.py
Traceback (most recent call last):
File "/usr/lib64/python3.6/http/client.py", line 986, in send
self.sock.sendall(data)
TypeError: a bytes-like object is required, not 'str'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "prova.py", line 26, in <module>
swiftutils.put_object_string(conn, 'overcloud', 'foo', file_content)
File "/usr/lib/python3.6/site-packages/tripleo_common/utils/swift.py", line 192, in put_object_string
return swift.put_object(container, object_name, contents)
File "/usr/lib/python3.6/site-packages/swiftclient/client.py", line 1895, in put_object
response_dict=response_dict)
File "/usr/lib/python3.6/site-packages/swiftclient/client.py", line 1737, in _retry
service_token=self.service_token, **kwargs)
File "/usr/lib/python3.6/site-packages/swiftclient/client.py", line 1364, in put_object
conn.putrequest(path, headers=headers, data=data)
File "/usr/lib/python3.6/site-packages/swiftclient/client.py", line 468, in putrequest
return self.request('PUT', full_path, data, headers, files)
File "/usr/lib/python3.6/site-packages/swiftclient/client.py", line 458, in request
files=files, **self.requests_args)
File "/usr/lib/python3.6/site-packages/swiftclient/client.py", line 441, in _request
return self.request_session.request(*arg, **kwarg)
File "/usr/lib/python3.6/site-packages/requests/sessions.py", line 524, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python3.6/site-packages/requests/sessions.py", line 637, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python3.6/site-packages/requests/adapters.py", line 472, in send
low_conn.send(i)
File "/usr/lib64/python3.6/http/client.py", line 990, in send
self.sock.sendall(d)
TypeError: a bytes-like object is required, not 'str'
(undercloud) [stack@undercloud-0 ~]$ cat prova.py
from keystoneauth1 import session
from keystoneauth1.identity import v3
from swiftclient.client import Connection
from tripleo_common.utils import swift as swiftutils
Here is a smaller reproducer (aka one that uses the newly-introduced wrappers for swift) python3. 6/http/ client. py", line 986, in send sock.sendall( data)
(undercloud) [stack@undercloud-0 ~]$ echo 'test' > /tmp/foo
(undercloud) [stack@undercloud-0 ~]$ python3 prova.py
Traceback (most recent call last):
File "/usr/lib64/
self.
TypeError: a bytes-like object is required, not 'str'
During handling of the above exception, another exception occurred:
Traceback (most recent call last): put_object_ string( conn, 'overcloud', 'foo', file_content) python3. 6/site- packages/ tripleo_ common/ utils/swift. py", line 192, in put_object_string object( container, object_name, contents) python3. 6/site- packages/ swiftclient/ client. py", line 1895, in put_object dict=response_ dict) python3. 6/site- packages/ swiftclient/ client. py", line 1737, in _retry token=self. service_ token, **kwargs) python3. 6/site- packages/ swiftclient/ client. py", line 1364, in put_object putrequest( path, headers=headers, data=data) python3. 6/site- packages/ swiftclient/ client. py", line 468, in putrequest python3. 6/site- packages/ swiftclient/ client. py", line 458, in request requests_ args) python3. 6/site- packages/ swiftclient/ client. py", line 441, in _request session. request( *arg, **kwarg) python3. 6/site- packages/ requests/ sessions. py", line 524, in request python3. 6/site- packages/ requests/ sessions. py", line 637, in send send(request, **kwargs) python3. 6/site- packages/ requests/ adapters. py", line 472, in send conn.send( i) python3. 6/http/ client. py", line 990, in send sock.sendall( d) identity import v3 common. utils import swift as swiftutils
File "prova.py", line 26, in <module>
swiftutils.
File "/usr/lib/
return swift.put_
File "/usr/lib/
response_
File "/usr/lib/
service_
File "/usr/lib/
conn.
File "/usr/lib/
return self.request('PUT', full_path, data, headers, files)
File "/usr/lib/
files=files, **self.
File "/usr/lib/
return self.request_
File "/usr/lib/
resp = self.send(prep, **send_kwargs)
File "/usr/lib/
r = adapter.
File "/usr/lib/
low_
File "/usr/lib64/
self.
TypeError: a bytes-like object is required, not 'str'
(undercloud) [stack@undercloud-0 ~]$ cat prova.py
from keystoneauth1 import session
from keystoneauth1.
from swiftclient.client import Connection
from tripleo_
_authurl = 'http:// 192.168. 24.1:5000/ v3/' hiera.yaml keystone: :admin_ password) vwJefUgMGAA' domain_ name': 'Default', domain_ name': 'Default',
_auth_version = '3'
_user = 'admin'
# (sudo hiera -c /etc/puppet/
_key = '6aMpWobr5ySX47
_os_options = {
'user_
'project_
'project_name': 'admin'
}
conn = Connection( _authurl, options= _os_options, version= _auth_version
authurl=
user=_user,
key=_key,
os_
auth_
)
with open('/tmp/foo') as file_content: put_object_ string( conn, 'overcloud', 'foo', file_content)
swiftutils.