Drop awscli dependency (#9459)

Fixes https://github.com/certbot/certbot/issues/9458.

* update readme

* drop awscli

Co-authored-by: ohemorange <ebportnoy@gmail.com>
This commit is contained in:
Brad Warren 2022-11-16 17:10:18 -08:00 committed by GitHub
parent 455f9a0d6c
commit 652d5e96be
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 23 additions and 48 deletions

View file

@ -19,16 +19,16 @@ This package is installed in the Certbot development environment that is
created by following the instructions at
https://certbot.eff.org/docs/contributing.html#running-a-local-copy-of-the-client.
After activating that virtual environment, you can then configure AWS
credentials and create a key by running:
```
>aws configure --profile <profile name>
[interactive: enter secrets for IAM role]
>aws ec2 create-key-pair --profile <profile name> --key-name <key name> --query 'KeyMaterial' --output text > whatever/path/you/want.pem
```
Note: whatever you pick for `<key name>` will be shown to other users with AWS access.
These tests use the AWS SDK for Python (boto3) to manipulate EC2 instances.
Before running the tests, you'll need to set up credentials by following the
instructions at
https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#configuration.
You will also want to create a `~/.aws/config` file setting the region for your
profile to `us-east-1`, following the instructions in the boto3 quickstart guide above.
When prompted for a default region name, enter: `us-east-1`.
Lastly, you will want to create a file on your system containing a trusted SSH key
by following the instructions at
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html.
## Usage
To run tests, activate the virtual environment you created above and from this directory run:
@ -36,18 +36,6 @@ To run tests, activate the virtual environment you created above and from this d
>letstest targets/targets.yaml /path/to/your/key.pem <profile name> scripts/<test to run>
```
You can only run up to two tests at once. The following error is often indicative of there being too many AWS instances running on our account:
```
NameError: name 'instances' is not defined
```
If you see this, you can run the following command to shut down all running instances:
```
aws ec2 terminate-instances --profile <profile name> --instance-ids $(aws ec2 describe-instances --profile <profile name> | grep <key name> | cut -f8)
```
It will take a minute for these instances to shut down and become available again. Running this will invalidate any in progress tests.
A temporary directory whose name is output by the tests is also created with a log file from each instance of the test and a file named "results" containing the output above.
The tests take quite a while to run.

View file

@ -27,10 +27,6 @@ setup(
packages=find_packages(),
include_package_data=True,
install_requires=[
# awscli isn't required by the tests themselves, but it is a useful
# tool to have when using these tests to generate keys and control
# running instances so the dependency is declared here for convenience.
'awscli',
'boto3',
'botocore',
# The API from Fabric 2.0+ is used instead of the 1.0 API.

View file

@ -35,14 +35,6 @@ letstest = {path = "../../../letstest"}
windows-installer = {path = "../../../windows-installer"}
# Extra dependencies
# awscli is just listed here as a performance optimization. As of writing this,
# there are some conflicts in shared dependencies between it and other packages
# we depend on. To try and resolve them, poetry searches through older versions
# of awscli to see if that resolves the conflict, but there are over 1000
# versions of awscli on PyPI so this process takes too long. Providing a high
# minimum version here prevents poetry from searching this path and it fairly
# quickly resolves the dependency conflict in another way.
awscli = ">=1.22.76"
# As of writing this, cython is a build dependency of pyyaml. Since there
# doesn't appear to be a good way to automatically track down and pin build
# dependencies in Python (see

View file

@ -10,7 +10,6 @@ apacheconfig==0.3.2 ; python_version >= "3.7" and python_version < "4.0"
appnope==0.1.3 ; python_version >= "3.7" and python_version < "4.0" and sys_platform == "darwin"
astroid==2.11.7 ; python_version >= "3.7" and python_version < "4.0"
attrs==22.1.0 ; python_version >= "3.7" and python_version < "4.0"
awscli==1.27.7 ; python_version >= "3.7" and python_version < "4.0"
azure-devops==6.0.0b4 ; python_version >= "3.7" and python_version < "4.0"
babel==2.11.0 ; python_version >= "3.7" and python_version < "4.0"
backcall==0.2.0 ; python_version >= "3.7" and python_version < "4.0"
@ -18,8 +17,8 @@ backports-cached-property==1.0.2 ; python_version >= "3.7" and python_version <
bcrypt==4.0.1 ; python_version >= "3.7" and python_version < "4.0"
beautifulsoup4==4.11.1 ; python_version >= "3.7" and python_version < "4.0"
bleach==5.0.1 ; python_version >= "3.7" and python_version < "4.0"
boto3==1.26.7 ; python_version >= "3.7" and python_version < "4.0"
botocore==1.29.7 ; python_version >= "3.7" and python_version < "4.0"
boto3==1.26.8 ; python_version >= "3.7" and python_version < "4.0"
botocore==1.29.8 ; python_version >= "3.7" and python_version < "4.0"
cachecontrol==0.12.11 ; python_version >= "3.7" and python_version < "4.0"
cachetools==5.2.0 ; python_version >= "3.7" and python_version < "4.0"
cachy==0.3.0 ; python_version >= "3.7" and python_version < "4.0"
@ -28,7 +27,7 @@ cffi==1.15.1 ; python_version >= "3.7" and python_version < "4.0"
charset-normalizer==2.1.1 ; python_version >= "3.7" and python_version < "4"
cleo==1.0.0a5 ; python_version >= "3.7" and python_version < "4.0"
cloudflare==2.10.4 ; python_version >= "3.7" and python_version < "4.0"
colorama==0.4.4 ; python_version >= "3.7" and python_version < "4.0"
colorama==0.4.6 ; python_version >= "3.7" and python_version < "4.0" and sys_platform == "win32" or python_version >= "3.7" and python_version < "4.0" and platform_system == "Windows"
commonmark==0.9.1 ; python_version >= "3.7" and python_version < "4.0"
configargparse==1.5.3 ; python_version >= "3.7" and python_version < "4.0"
configobj==5.0.6 ; python_version >= "3.7" and python_version < "4.0"
@ -42,9 +41,9 @@ distlib==0.3.6 ; python_version >= "3.7" and python_version < "4.0"
distro==1.8.0 ; python_version >= "3.7" and python_version < "4.0"
dns-lexicon==3.11.7 ; python_version >= "3.7" and python_version < "4.0"
dnspython==2.2.1 ; python_version >= "3.7" and python_version < "4.0"
docutils==0.16 ; python_version >= "3.7" and python_version < "4.0"
docutils==0.17.1 ; python_version >= "3.7" and python_version < "4.0"
dulwich==0.20.50 ; python_version >= "3.7" and python_version < "4.0"
exceptiongroup==1.0.1 ; python_version >= "3.7" and python_version < "3.11"
exceptiongroup==1.0.2 ; python_version >= "3.7" and python_version < "3.11"
execnet==1.9.0 ; python_version >= "3.7" and python_version < "4.0"
fabric==2.7.1 ; python_version >= "3.7" and python_version < "4.0"
filelock==3.8.0 ; python_version >= "3.7" and python_version < "4.0"
@ -84,7 +83,7 @@ more-itertools==9.0.0 ; python_version >= "3.7" and python_version < "4.0"
msgpack==1.0.4 ; python_version >= "3.7" and python_version < "4.0"
msrest==0.6.21 ; python_version >= "3.7" and python_version < "4.0"
mypy-extensions==0.4.3 ; python_version >= "3.7" and python_version < "4.0"
mypy==0.990 ; python_version >= "3.7" and python_version < "4.0"
mypy==0.991 ; python_version >= "3.7" and python_version < "4.0"
oauth2client==4.1.3 ; python_version >= "3.7" and python_version < "4.0"
oauthlib==3.2.2 ; python_version >= "3.7" and python_version < "4.0"
packaging==21.3 ; python_version >= "3.7" and python_version < "4.0"
@ -97,7 +96,7 @@ pickleshare==0.7.5 ; python_version >= "3.7" and python_version < "4.0"
pip==22.3.1 ; python_version >= "3.7" and python_version < "4.0"
pkginfo==1.8.3 ; python_version >= "3.7" and python_version < "4.0"
pkgutil-resolve-name==1.3.10 ; python_version >= "3.7" and python_version < "3.9"
platformdirs==2.5.3 ; python_version >= "3.7" and python_version < "4.0"
platformdirs==2.5.4 ; python_version >= "3.7" and python_version < "4.0"
pluggy==1.0.0 ; python_version >= "3.7" and python_version < "4.0"
ply==3.11 ; python_version >= "3.7" and python_version < "4.0"
poetry-core==1.3.2 ; python_version >= "3.7" and python_version < "4.0"
@ -128,7 +127,7 @@ python-digitalocean==1.17.0 ; python_version >= "3.7" and python_version < "4.0"
pytz==2022.6 ; python_version >= "3.7" and python_version < "4.0"
pywin32-ctypes==0.2.0 ; python_version >= "3.7" and python_version < "4.0" and sys_platform == "win32"
pywin32==305 ; python_version >= "3.7" and python_version < "4.0" and sys_platform == "win32"
pyyaml==5.4.1 ; python_version >= "3.7" and python_version < "4.0"
pyyaml==6.0 ; python_version >= "3.7" and python_version < "4.0"
readme-renderer==37.3 ; python_version >= "3.7" and python_version < "4.0"
requests-download==0.1.2 ; python_version >= "3.7" and python_version < "4.0"
requests-file==1.5.1 ; python_version >= "3.7" and python_version < "4.0"
@ -137,7 +136,7 @@ requests-toolbelt==0.9.1 ; python_version >= "3.7" and python_version < "4.0"
requests==2.28.1 ; python_version >= "3.7" and python_version < "4"
rfc3986==2.0.0 ; python_version >= "3.7" and python_version < "4.0"
rich==12.6.0 ; python_version >= "3.7" and python_version < "4.0"
rsa==4.7.2 ; python_version >= "3.7" and python_version < "4"
rsa==4.9 ; python_version >= "3.7" and python_version < "4"
s3transfer==0.6.0 ; python_version >= "3.7" and python_version < "4.0"
secretstorage==3.3.3 ; python_version >= "3.7" and python_version < "4.0" and sys_platform == "linux"
semantic-version==2.10.0 ; python_version >= "3.7" and python_version < "4.0"
@ -148,7 +147,7 @@ six==1.16.0 ; python_version >= "3.7" and python_version < "4.0"
snowballstemmer==2.2.0 ; python_version >= "3.7" and python_version < "4.0"
soupsieve==2.3.2.post1 ; python_version >= "3.7" and python_version < "4.0"
sphinx-rtd-theme==1.1.1 ; python_version >= "3.7" and python_version < "4.0"
sphinx==5.1.1 ; python_version >= "3.7" and python_version < "4.0"
sphinx==5.3.0 ; python_version >= "3.7" and python_version < "4.0"
sphinxcontrib-applehelp==1.0.2 ; python_version >= "3.7" and python_version < "4.0"
sphinxcontrib-devhelp==1.0.2 ; python_version >= "3.7" and python_version < "4.0"
sphinxcontrib-htmlhelp==2.0.0 ; python_version >= "3.7" and python_version < "4.0"
@ -159,7 +158,7 @@ tldextract==3.4.0 ; python_version >= "3.7" and python_version < "4.0"
toml==0.10.2 ; python_version >= "3.7" and python_version < "4.0"
tomli==2.0.1 ; python_version >= "3.7" and python_full_version <= "3.11.0a6"
tomlkit==0.11.6 ; python_version >= "3.7" and python_version < "4.0"
tox==3.27.0 ; python_version >= "3.7" and python_version < "4.0"
tox==3.27.1 ; python_version >= "3.7" and python_version < "4.0"
traitlets==5.5.0 ; python_version >= "3.7" and python_version < "4.0"
twine==4.0.1 ; python_version >= "3.7" and python_version < "4.0"
typed-ast==1.5.4 ; python_version >= "3.7" and python_version < "3.8"
@ -169,13 +168,13 @@ types-pyrfc3339==1.1.1 ; python_version >= "3.7" and python_version < "4.0"
types-python-dateutil==2.8.19.3 ; python_version >= "3.7" and python_version < "4.0"
types-pytz==2022.6.0.1 ; python_version >= "3.7" and python_version < "4.0"
types-requests==2.28.11.4 ; python_version >= "3.7" and python_version < "4.0"
types-setuptools==65.5.0.2 ; python_version >= "3.7" and python_version < "4.0"
types-six==1.16.21.2 ; python_version >= "3.7" and python_version < "4.0"
types-setuptools==65.5.0.3 ; python_version >= "3.7" and python_version < "4.0"
types-six==1.16.21.3 ; python_version >= "3.7" and python_version < "4.0"
types-urllib3==1.26.25.3 ; python_version >= "3.7" and python_version < "4.0"
typing-extensions==4.4.0 ; python_version >= "3.7" and python_version < "4.0"
uritemplate==4.1.1 ; python_version >= "3.7" and python_version < "4.0"
urllib3==1.26.12 ; python_version >= "3.7" and python_version < "4"
virtualenv==20.16.6 ; python_version >= "3.7" and python_version < "4.0"
virtualenv==20.16.7 ; python_version >= "3.7" and python_version < "4.0"
wcwidth==0.2.5 ; python_version >= "3.7" and python_version < "4.0"
webencodings==0.5.1 ; python_version >= "3.7" and python_version < "4.0"
wheel==0.38.4 ; python_version >= "3.7" and python_version < "4.0"