Bug 1306492

Summary: python2-boto3 RPM missing dependency on python-futures
Product: [Fedora] Fedora Reporter: Charles Simpson <csimpson>
Component: python-boto3Assignee: Fabio Alessandro Locati <fale>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 23CC: fale
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python-boto3-1.2.3-3.fc22 python-boto3-1.2.3-3.fc23 python-boto3-1.2.3-3.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-02-22 20:50:28 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Charles Simpson 2016-02-11 01:44:47 UTC
Description of problem:
Boto 3 uses concurrent.futures in s3.transfer. Without the backport of concurrent.futures from python-futures installed, s3 cannot be used from Boto 3.

How reproducible:
Always

Steps to Reproduce:
1. Install python2-boto3 via dnf *without* python-futures previously installed
2. Configure AWS credentials per https://github.com/boto/boto3#quick-start
3. From a Python interpreter:

    >>> import boto3
    >>> s3 = boto3.resource('s3')

4. Manually install python-futures via dnf
5. Repeat snippet in Python interpreter; call no longer crashes.

Actual results:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/site-packages/boto3/__init__.py", line 87, in resource
    return _get_default_session().resource(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/boto3/session.py", line 292, in resource
    aws_session_token=aws_session_token, config=config)
  File "/usr/lib/python2.7/site-packages/boto3/session.py", line 200, in client
    aws_session_token=aws_session_token, config=config)
  File "/usr/lib/python2.7/site-packages/botocore/session.py", line 796, in create_client
    client_config=config, api_version=api_version)
  File "/usr/lib/python2.7/site-packages/botocore/client.py", line 59, in create_client
    cls = self._create_client_class(service_name, service_model)
  File "/usr/lib/python2.7/site-packages/botocore/client.py", line 76, in _create_client_class
    base_classes=bases)
  File "/usr/lib/python2.7/site-packages/botocore/hooks.py", line 226, in emit
    return self._emit(event_name, kwargs)
  File "/usr/lib/python2.7/site-packages/botocore/hooks.py", line 209, in _emit
    response = handler(**kwargs)
  File "/usr/lib/python2.7/site-packages/boto3/utils.py", line 59, 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 13, in <module>
    from boto3.s3.transfer import S3Transfer
  File "/usr/lib/python2.7/site-packages/boto3/s3/transfer.py", line 135, in <module>
    from concurrent import futures
ImportError: No module named concurrent


Expected results:

python2-boto3 RPM requires python-futures so that python-futures also gets installed and provided snippet does not crash.


Additional info:
Usage of concurrent.futures in source code: https://github.com/boto/boto3/blob/develop/boto3/s3/transfer.py#L135
Boto 3 setup.cfg requiring futures: https://github.com/boto/boto3/blob/develop/setup.cfg#L8
Missing requires: http://pkgs.fedoraproject.org/cgit/rpms/python-boto3.git/tree/python-boto3.spec#n41

Impacts versions 22, 23, and rawhide, but Bugzilla will only let me select one.

Comment 1 Fedora Update System 2016-02-11 09:35:32 UTC
python-boto3-1.2.3-3.fc22 has been submitted as an update to Fedora 22. https://bodhi.fedoraproject.org/updates/FEDORA-2016-f7e91f03a2

Comment 2 Fedora Update System 2016-02-11 09:35:34 UTC
python-boto3-1.2.3-3.fc23 has been submitted as an update to Fedora 23. https://bodhi.fedoraproject.org/updates/FEDORA-2016-e83dc0f643

Comment 3 Fedora Update System 2016-02-11 09:35:40 UTC
python-boto3-1.2.3-3.el7 has been submitted as an update to Fedora EPEL 7. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2016-1ee30cef86

Comment 4 Fedora Update System 2016-02-12 13:51:40 UTC
python-boto3-1.2.3-3.fc22 has been pushed to the Fedora 22 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-f7e91f03a2

Comment 5 Fedora Update System 2016-02-12 17:21:11 UTC
python-boto3-1.2.3-3.el7 has been pushed to the Fedora EPEL 7 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2016-1ee30cef86

Comment 6 Fedora Update System 2016-02-14 16:23:56 UTC
python-boto3-1.2.3-3.fc23 has been pushed to the Fedora 23 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-e83dc0f643

Comment 7 Fedora Update System 2016-02-22 20:50:26 UTC
python-boto3-1.2.3-3.fc22 has been pushed to the Fedora 22 stable repository. If problems still persist, please make note of it in this bug report.

Comment 8 Fedora Update System 2016-02-23 01:24:50 UTC
python-boto3-1.2.3-3.fc23 has been pushed to the Fedora 23 stable repository. If problems still persist, please make note of it in this bug report.

Comment 9 Fedora Update System 2016-02-28 20:24:44 UTC
python-boto3-1.2.3-3.el7 has been pushed to the Fedora EPEL 7 stable repository. If problems still persist, please make note of it in this bug report.