FS#57518 - [ansible] add *boto* to optdeps

Attached to Project: Community Packages
Opened by Konstantin Shalygin (k0ste) - Thursday, 15 February 2018, 11:40 GMT
Last edited by Sven-Hendrik Haase (Svenstaro) - Wednesday, 21 March 2018, 21:08 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Sven-Hendrik Haase (Svenstaro)
Architecture All
Severity Very Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

aws_s3 (http://docs.ansible.com/ansible/latest/aws_s3_module.html) module required 'python-boto' libs:
boto
boto3
botocore


Additional info:
* package version: 2.4.3.0-1
This task depends upon

Closed by  Sven-Hendrik Haase (Svenstaro)
Wednesday, 21 March 2018, 21:08 GMT
Reason for closing:  Fixed
Comment by Konstantin Shalygin (k0ste) - Monday, 05 March 2018, 14:41 GMT
  • Field changed: Percent Complete (100% → 0%)
Actually ansible fails:

"msg": "boto3 and botocore required for this module"

https://aur.archlinux.org/packages/python2-boto3/
https://aur.archlinux.org/packages/python2-botocore/

Comment by Konstantin Shalygin (k0ste) - Tuesday, 06 March 2018, 03:18 GMT
I was build community packages: python-boto3,python-botocore,python-s3transfer for python2.
Now s3 tasks executed fine.


TASK [Upload S3 object] ******************************************************************************************************************************
task path: /home/k0ste/sandbox/OpenTech/CEPH/s3_examples/s3_example_ansible.yml:17
Using module file /usr/lib/python2.7/site-packages/ansible/modules/cloud/amazon/aws_s3.py
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: k0ste
<127.0.0.1> EXEC /bin/sh -c 'LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 /usr/bin/python2 && sleep 0'
changed: [localhost] => {
"changed": true,
"invocation": {
"module_args": {
"aws_access_key": "JXUABTZZYHAFLCMF9VYV",
"aws_secret_key": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
"bucket": "elliot_gifs",
"dest": null,
"ec2_url": null,
"encrypt": false,
"expiry": 600,
"headers": null,
"ignore_nonexistent_bucket": false,
"marker": "",
"max_keys": 1000,
"metadata": null,
"mode": "put",
"object": "unlimited_power.gif",
"overwrite": "always",
"permission": [
"public-read"
],
"prefix": "",
"profile": null,
"region": null,
"retries": 0,
"rgw": true,
"s3_url": "<snip>",
"security_token": null,
"src": "/home/k0ste/ansible/unlimited_power.gif",
"validate_certs": true,
"version": null
}
},
"msg": "PUT operation complete",
"url": "http://<snip>/elliot_gifs/unlimited_power.gif?AWSAccessKeyId=JXUABTZZYHAFLCMF9VYV&Expires=1520306531&Signature=N0pPkegVifYUU0fD8URxo33MeeI%3D"
}


I will make features request for python2 support for this packages.
So ansible package should be have only python2-boto3 dependency.
Comment by Konstantin Shalygin (k0ste) - Tuesday, 06 March 2018, 03:23 GMT
 FS#57726 
 FS#57727 
 FS#57728 
Comment by Konstantin Shalygin (k0ste) - Friday, 09 March 2018, 02:43 GMT
Any news?
Comment by Sven-Hendrik Haase (Svenstaro) - Friday, 16 March 2018, 06:32 GMT
Try now.
Comment by Konstantin Shalygin (k0ste) - Friday, 16 March 2018, 11:30 GMT
Works now, but s3transfer lack of python-futures dependency.
When I installed futures - task works fine.



The full traceback is:
Traceback (most recent call last):
File "/tmp/ansible_Og1182/ansible_module_aws_s3.py", line 829, in <module>
main()
File "/tmp/ansible_Og1182/ansible_module_aws_s3.py", line 644, in main
s3 = get_s3_connection(module, aws_connect_kwargs, location, rgw, s3_url)
File "/tmp/ansible_Og1182/ansible_module_aws_s3.py", line 539, in get_s3_connection
return boto3_conn(**params)
File "/tmp/ansible_Og1182/ansible_modlib.zip/ansible/module_utils/ec2.py", line 99, in boto3_conn
File "/tmp/ansible_Og1182/ansible_modlib.zip/ansible/module_utils/ec2.py", line 118, in _boto3_conn
File "/usr/lib/python2.7/site-packages/boto3/session.py", line 263, in client
aws_session_token=aws_session_token, config=config)
File "/usr/lib/python2.7/site-packages/botocore/session.py", line 861, in create_client
client_config=config, api_version=api_version)
File "/usr/lib/python2.7/site-packages/botocore/client.py", line 70, in create_client
cls = self._create_client_class(service_name, service_model)
File "/usr/lib/python2.7/site-packages/botocore/client.py", line 95, in _create_client_class
base_classes=bases)
File "/usr/lib/python2.7/site-packages/botocore/hooks.py", line 227, in emit
return self._emit(event_name, kwargs)
File "/usr/lib/python2.7/site-packages/botocore/hooks.py", line 210, in _emit
response = handler(**kwargs)
File "/usr/lib/python2.7/site-packages/boto3/utils.py", line 61, in _handler
module = import_module(module)
File "/usr/lib/python2.7/site-packages/boto3/utils.py", line 52, in import_module
__import__(name)
File "/usr/lib/python2.7/site-packages/boto3/s3/inject.py", line 15, in <module>
from boto3.s3.transfer import create_transfer_manager
File "/usr/lib/python2.7/site-packages/boto3/s3/transfer.py", line 127, in <module>
from s3transfer.exceptions import RetriesExceededError as \
File "/usr/lib/python2.7/site-packages/s3transfer/__init__.py", line 134, in <module>
import concurrent.futures
ImportError: No module named concurrent.futures

fatal: [localhost]: FAILED! => {
"changed": false,
"module_stderr": "Traceback (most recent call last):\n File \"/tmp/ansible_Og1182/ansible_module_aws_s3.py\", line 829, in <module>\n main()\n File \"/tmp/ansible_Og1182/ansible_module_aws_s3.py\", line 644, in main\n s3 = get_s3_connection(module, aws_connect_kwargs, location, rgw, s3_url)\n File \"/tmp/ansible_Og1182/ansible_module_aws_s3.py\", line 539, in get_s3_connection\n return boto3_conn(**params)\n File \"/tmp/ansible_Og1182/ansible_modlib.zip/ansible/module_utils/ec2.py\", line 99, in boto3_conn\n File \"/tmp/ansible_Og1182/ansible_modlib.zip/ansible/module_utils/ec2.py\", line 118, in _boto3_conn\n File \"/usr/lib/python2.7/site-packages/boto3/session.py\", line 263, in client\n aws_session_token=aws_session_token, config=config)\n File \"/usr/lib/python2.7/site-packages/botocore/session.py\", line 861, in create_client\n client_config=config, api_version=api_version)\n File \"/usr/lib/python2.7/site-packages/botocore/client.py\", line 70, in create_client\n cls = self._create_client_class(service_name, service_model)\n File \"/usr/lib/python2.7/site-packages/botocore/client.py\", line 95, in _create_client_class\n base_classes=bases)\n File \"/usr/lib/python2.7/site-packages/botocore/hooks.py\", line 227, in emit\n return self._emit(event_name, kwargs)\n File \"/usr/lib/python2.7/site-packages/botocore/hooks.py\", line 210, in _emit\n response = handler(**kwargs)\n File \"/usr/lib/python2.7/site-packages/boto3/utils.py\", line 61, in _handler\n module = import_module(module)\n File \"/usr/lib/python2.7/site-packages/boto3/utils.py\", line 52, in import_module\n __import__(name)\n File \"/usr/lib/python2.7/site-packages/boto3/s3/inject.py\", line 15, in <module>\n from boto3.s3.transfer import create_transfer_manager\n File \"/usr/lib/python2.7/site-packages/boto3/s3/transfer.py\", line 127, in <module>\n from s3transfer.exceptions import RetriesExceededError as \\\n File \"/usr/lib/python2.7/site-packages/s3transfer/__init__.py\", line 134, in <module>\n import concurrent.futures\nImportError: No module named concurrent.futures\n",
"module_stdout": "",
"msg": "MODULE FAILURE",
"rc": 1
}
Comment by Sven-Hendrik Haase (Svenstaro) - Wednesday, 21 March 2018, 21:08 GMT
Thanks, that's fixed now.

Loading...