cloudtools / stacker

An AWS CloudFormation Stack orchestrator/manager.
http://stacker.readthedocs.io/en/stable/
BSD 2-Clause "Simplified" License
711 stars 167 forks source link

stacker build fails with version 1.7 #726

Closed dmongit closed 5 years ago

dmongit commented 5 years ago

Using an AWS buildspec file, I have a pip install stacker command that installs stacker just fine.

When I run stacker build -r stacker.yml, I get an error. I tracked the error down to s3transfer not being happy with the version of boto3.

When I revert back to install pip install stacker 1.6, everything works.

Error Message:

File "/usr/local/lib/python2.7/dist-packages/s3transfer/utils.py", line 27, in from botocore.exceptions import ReadTimeoutError ImportError: cannot import name ReadTimeoutError

phobologic commented 5 years ago

@dmongit thanks for the report - can you share the versions of boto3 and botocore that you have installed that's causing the issue? I see ReadTimeoutError in botocore.exceptions going back as far as 1.12.31 at least.

dmongit commented 5 years ago

@phobologic Not sure about botocore. Since I'm running it off of AWS CI/CD, I'm at the mercy of what is already installed on that build box? I'm using image aws/codebuild/nodejs:6.3.1 for the build.

Here are snippets from my logs, first using stacker 1.7 and second using 1.6 as a comparison.

stacker 1.7 when things failed Collecting boto3>=1.9.111<2.0 (from stacker) Collecting s3transfer<0.3.0,>=0.2.0 (from boto3>=1.9.111<2.0->stacker) Successfully installed boto3-1.9.130 s3transfer-0.2.0

Latests, explicitly using stacker 1.6: Collecting boto3<1.8.0,>=1.7.0 (from stacker<1.6.1,>=1.6.0) s3transfer<0.2.0,>=0.1.10->boto3<1.8.0,>=1.7.0->stacker<1.6.1,>=1.6.0) Requirement already satisfied: botocore in /usr/local/lib/python2.7/dist-packages (from stacker) Successfully installed boto3-1.7.84

josjaf commented 5 years ago

I'm getting this error too

dmongit commented 5 years ago

@josjaf I went back to stacker v1.6 and I am still on 1.6

troyready commented 5 years ago

You can work around this for now by changing your pip install stacker line to:

pip install 'botocore>=1.12.111'
pip install stacker

I've opened a PR (#729 ) to make that work out of the box again

phobologic commented 5 years ago

Thanks @troyready - I am going to do a dot release to clear this up tonight.