From 652d5e96be75f994ce0cdb3a1a7cd7323c1c3177 Mon Sep 17 00:00:00 2001 From: Brad Warren Date: Wed, 16 Nov 2022 17:10:18 -0800 Subject: [PATCH] Drop awscli dependency (#9459) Fixes https://github.com/certbot/certbot/issues/9458. * update readme * drop awscli Co-authored-by: ohemorange --- letstest/README.md | 30 +++++++++------------------- letstest/setup.py | 4 ---- tools/pinning/current/pyproject.toml | 8 -------- tools/requirements.txt | 29 +++++++++++++-------------- 4 files changed, 23 insertions(+), 48 deletions(-) diff --git a/letstest/README.md b/letstest/README.md index c569d1e8f..3f6017af3 100644 --- a/letstest/README.md +++ b/letstest/README.md @@ -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 -[interactive: enter secrets for IAM role] ->aws ec2 create-key-pair --profile --key-name --query 'KeyMaterial' --output text > whatever/path/you/want.pem -``` -Note: whatever you pick for `` 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 scripts/ ``` -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 --instance-ids $(aws ec2 describe-instances --profile | grep | 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. diff --git a/letstest/setup.py b/letstest/setup.py index 4f05c8754..101b22e31 100644 --- a/letstest/setup.py +++ b/letstest/setup.py @@ -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. diff --git a/tools/pinning/current/pyproject.toml b/tools/pinning/current/pyproject.toml index d1ebe025a..70ae0b88a 100644 --- a/tools/pinning/current/pyproject.toml +++ b/tools/pinning/current/pyproject.toml @@ -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 diff --git a/tools/requirements.txt b/tools/requirements.txt index 1a1562cf5..2d5640941 100644 --- a/tools/requirements.txt +++ b/tools/requirements.txt @@ -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"