summaryrefslogtreecommitdiff
path: root/python-aws2-wrap.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-05 12:13:43 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-05 12:13:43 +0000
commitb8c884413280aa7e9cdc581dae3dfd460b9329ce (patch)
tree4b13461f3a399e19429b054eddf1b25d5bcb5489 /python-aws2-wrap.spec
parente081673a541c759d5c993ae1dbeebeb10e002f60 (diff)
automatic import of python-aws2-wrapopeneuler20.03
Diffstat (limited to 'python-aws2-wrap.spec')
-rw-r--r--python-aws2-wrap.spec463
1 files changed, 463 insertions, 0 deletions
diff --git a/python-aws2-wrap.spec b/python-aws2-wrap.spec
new file mode 100644
index 0000000..fd004c5
--- /dev/null
+++ b/python-aws2-wrap.spec
@@ -0,0 +1,463 @@
+%global _empty_manifest_terminate_build 0
+Name: python-aws2-wrap
+Version: 1.3.1
+Release: 1
+Summary: A wrapper for executing a command with AWS CLI v2 and SSO
+License: GPL-3.0-or-later
+URL: https://github.com/linaro-its/aws2-wrap
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/db/07/db4c98b4d44ee824ad21563910d198f0da2561a6c7cfeaef1b954979c5c6/aws2-wrap-1.3.1.tar.gz
+BuildArch: noarch
+
+Requires: python3-psutil
+
+%description
+# aws2-wrap
+
+[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=linaro-its_aws2-wrap&metric=alert_status)](https://sonarcloud.io/dashboard?id=linaro-its_aws2-wrap)
+
+This is a simple script to make it easier to use AWS Single Sign On credentials with tools that don't understand the `sso` entries in an AWS profile.
+
+The script provides the following capabilities:
+
+* Run a command using AWS SSO credentials
+* Generate a temporary profile in the $AWS_CONFIG_FILE and $AWS_SHARED_CREDENTIALS_FILE file
+* Exporting the AWS SSO credentials
+* Use the credentials via .aws/config
+* Assume a role via AWS SSO
+
+Please note that the script is called `aws2-wrap` to show that it works with AWS CLI v2, even though the CLI tool is no longer called `aws2`.
+
+## Install
+
+### Using `pip`
+
+<https://pypi.org/project/aws2-wrap>
+
+```
+pip3 install aws2-wrap
+```
+
+### Using `brew`
+
+```
+brew install aws2-wrap
+```
+
+## Run a command using AWS SSO credentials
+
+`aws2-wrap [--profile <awsprofilename>] [--exec] <command>`
+
+Note that if you are using `--exec` and `<command>` contains spaces, it must be surrounded with double-quotation marks.
+
+You can also specify the profile to be used via AWS_PROFILE which then allows the same profile to be used by subsequent tools and commands.
+
+Examples:
+
+`aws2-wrap --profile MySSOProfile terraform plan`
+
+`aws2-wrap --profile MySSOProfile --exec "terraform plan"`
+
+`AWS_PROFILE=MySSOProfile aws2-wrap terraform plan`
+
+If you are having problems with the use of quotes in the command, you may find one of the other methods works better for you.
+
+## Generate a temporary profile in the $AWS_CONFIG_FILE and $AWS_SHARED_CREDENTIALS_FILE file
+
+There are some utilities which work better with the configuration files rather than the environment variables. For example, if you need to access more than one profile at a time.
+
+`aws2-wrap --generate --profile $AWS_PROFILE --credentialsfile $AWS_SHARED_CREDENTIALS_FILE --configfile $AWS_CONFIG_FILE --outprofile $DESTINATION_PROFILE`
+
+Optionally, you can specify `--generatestdout` instead of `--generate`. `--outprofile` is still required in order to name the section but `--credentialsfile` and `--configfile` are ignored. With this command option, the generated credentials will then be output to the console.
+
+## Export the AWS SSO credentials
+
+There may be circumstances when it is easier/better to set the appropriate environment variables so that they can be re-used by any `aws` command.
+
+Since the script cannot directly set the environment variables in the calling shell process, it is necessary to use the following syntax:
+
+`eval "$(aws2-wrap [--profile <awsprofilename>] --export)"`
+
+For example:
+
+`eval "$(aws2-wrap --profile MySSOProfile --export)"`
+
+If you are using PowerShell, the equivalent command is:
+
+`aws2-wrap --profile MySSOProfile --export | invoke-expression`
+
+## Use the credentials via .aws/config
+
+If you are using a tool that works with normal AWS credentials but doesn't understand the new AWS SSO credentials, another option is to add a profile to `.aws/config` that calls the `aws2-wrap` script.
+
+For example, add the following block to `.aws/config`:
+
+```text
+[profile Wrapped]
+credential_process = aws2-wrap --process --profile <awsprofilename>
+```
+
+then, after authentication, you can run any command that uses AWS credentials by specifying the "Wrapped" profile:
+
+```text
+aws sso login --profile <awsprofilename>
+export AWS_PROFILE=Wrapped
+export AWS_SDK_LOAD_CONFIG=1
+terraform plan
+```
+
+Note that because the profile is being specified via `AWS_PROFILE`, it is sometimes necessary (as shown above) to set `AWS_SDK_LOAD_CONFIG` in order to get tools like `terraform` to successfully retrieve the credentials.
+
+## Assume a role via AWS SSO
+
+Your `.aws/config` file can look like this:
+
+```text
+[default]
+sso_start_url = xxxxxxxxxxxx
+sso_region = us-west-2
+sso_account_id = xxxxxxxxxxxx
+sso_role_name = SSORoleName
+
+[profile account1]
+role_arn = arn:aws:iam::xxxxxxxxxxxx:role/role-to-be-assumed
+source_profile = default
+region = ap-northeast-1
+```
+
+allowing you to then run:
+
+`aws2-wrap --profile account1 <command>`
+
+and `<command>` will be run under `role-to-be-assumed`.
+
+## Contributing
+
+Contributions are more than welcome, particularly if you are able to expand on the test code. Please ensure, though, that before you submit a Pull Request, you run `make test` to ensure that your changes don't break any of the existing tests and `make pylint` to ensure that the linter is happy. Please note that the CI/CD pylint test *may* use different pylint rules from your own local setup.
+
+Please also note that `make pylint` will only report errors. You *may* want to explicitly run `python3 -m pylint setup.py aws2wrap`
+
+## Credits
+
+Thanks to @nitrocode, @chenrui333, @l1n, @sodul, @damian-bisignano, @flyinprogrammer, @abeluck, @topu, @bigwheel, @krabbit, @jscook2345, @hieki, @blazdivjak, @fukushun1994, @johann8384, @ppezoldt, @atwoodjw, @lummish, @life36-vinny, @lukemassa and @axelri for their contributions.
+
+
+
+
+%package -n python3-aws2-wrap
+Summary: A wrapper for executing a command with AWS CLI v2 and SSO
+Provides: python-aws2-wrap
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-aws2-wrap
+# aws2-wrap
+
+[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=linaro-its_aws2-wrap&metric=alert_status)](https://sonarcloud.io/dashboard?id=linaro-its_aws2-wrap)
+
+This is a simple script to make it easier to use AWS Single Sign On credentials with tools that don't understand the `sso` entries in an AWS profile.
+
+The script provides the following capabilities:
+
+* Run a command using AWS SSO credentials
+* Generate a temporary profile in the $AWS_CONFIG_FILE and $AWS_SHARED_CREDENTIALS_FILE file
+* Exporting the AWS SSO credentials
+* Use the credentials via .aws/config
+* Assume a role via AWS SSO
+
+Please note that the script is called `aws2-wrap` to show that it works with AWS CLI v2, even though the CLI tool is no longer called `aws2`.
+
+## Install
+
+### Using `pip`
+
+<https://pypi.org/project/aws2-wrap>
+
+```
+pip3 install aws2-wrap
+```
+
+### Using `brew`
+
+```
+brew install aws2-wrap
+```
+
+## Run a command using AWS SSO credentials
+
+`aws2-wrap [--profile <awsprofilename>] [--exec] <command>`
+
+Note that if you are using `--exec` and `<command>` contains spaces, it must be surrounded with double-quotation marks.
+
+You can also specify the profile to be used via AWS_PROFILE which then allows the same profile to be used by subsequent tools and commands.
+
+Examples:
+
+`aws2-wrap --profile MySSOProfile terraform plan`
+
+`aws2-wrap --profile MySSOProfile --exec "terraform plan"`
+
+`AWS_PROFILE=MySSOProfile aws2-wrap terraform plan`
+
+If you are having problems with the use of quotes in the command, you may find one of the other methods works better for you.
+
+## Generate a temporary profile in the $AWS_CONFIG_FILE and $AWS_SHARED_CREDENTIALS_FILE file
+
+There are some utilities which work better with the configuration files rather than the environment variables. For example, if you need to access more than one profile at a time.
+
+`aws2-wrap --generate --profile $AWS_PROFILE --credentialsfile $AWS_SHARED_CREDENTIALS_FILE --configfile $AWS_CONFIG_FILE --outprofile $DESTINATION_PROFILE`
+
+Optionally, you can specify `--generatestdout` instead of `--generate`. `--outprofile` is still required in order to name the section but `--credentialsfile` and `--configfile` are ignored. With this command option, the generated credentials will then be output to the console.
+
+## Export the AWS SSO credentials
+
+There may be circumstances when it is easier/better to set the appropriate environment variables so that they can be re-used by any `aws` command.
+
+Since the script cannot directly set the environment variables in the calling shell process, it is necessary to use the following syntax:
+
+`eval "$(aws2-wrap [--profile <awsprofilename>] --export)"`
+
+For example:
+
+`eval "$(aws2-wrap --profile MySSOProfile --export)"`
+
+If you are using PowerShell, the equivalent command is:
+
+`aws2-wrap --profile MySSOProfile --export | invoke-expression`
+
+## Use the credentials via .aws/config
+
+If you are using a tool that works with normal AWS credentials but doesn't understand the new AWS SSO credentials, another option is to add a profile to `.aws/config` that calls the `aws2-wrap` script.
+
+For example, add the following block to `.aws/config`:
+
+```text
+[profile Wrapped]
+credential_process = aws2-wrap --process --profile <awsprofilename>
+```
+
+then, after authentication, you can run any command that uses AWS credentials by specifying the "Wrapped" profile:
+
+```text
+aws sso login --profile <awsprofilename>
+export AWS_PROFILE=Wrapped
+export AWS_SDK_LOAD_CONFIG=1
+terraform plan
+```
+
+Note that because the profile is being specified via `AWS_PROFILE`, it is sometimes necessary (as shown above) to set `AWS_SDK_LOAD_CONFIG` in order to get tools like `terraform` to successfully retrieve the credentials.
+
+## Assume a role via AWS SSO
+
+Your `.aws/config` file can look like this:
+
+```text
+[default]
+sso_start_url = xxxxxxxxxxxx
+sso_region = us-west-2
+sso_account_id = xxxxxxxxxxxx
+sso_role_name = SSORoleName
+
+[profile account1]
+role_arn = arn:aws:iam::xxxxxxxxxxxx:role/role-to-be-assumed
+source_profile = default
+region = ap-northeast-1
+```
+
+allowing you to then run:
+
+`aws2-wrap --profile account1 <command>`
+
+and `<command>` will be run under `role-to-be-assumed`.
+
+## Contributing
+
+Contributions are more than welcome, particularly if you are able to expand on the test code. Please ensure, though, that before you submit a Pull Request, you run `make test` to ensure that your changes don't break any of the existing tests and `make pylint` to ensure that the linter is happy. Please note that the CI/CD pylint test *may* use different pylint rules from your own local setup.
+
+Please also note that `make pylint` will only report errors. You *may* want to explicitly run `python3 -m pylint setup.py aws2wrap`
+
+## Credits
+
+Thanks to @nitrocode, @chenrui333, @l1n, @sodul, @damian-bisignano, @flyinprogrammer, @abeluck, @topu, @bigwheel, @krabbit, @jscook2345, @hieki, @blazdivjak, @fukushun1994, @johann8384, @ppezoldt, @atwoodjw, @lummish, @life36-vinny, @lukemassa and @axelri for their contributions.
+
+
+
+
+%package help
+Summary: Development documents and examples for aws2-wrap
+Provides: python3-aws2-wrap-doc
+%description help
+# aws2-wrap
+
+[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=linaro-its_aws2-wrap&metric=alert_status)](https://sonarcloud.io/dashboard?id=linaro-its_aws2-wrap)
+
+This is a simple script to make it easier to use AWS Single Sign On credentials with tools that don't understand the `sso` entries in an AWS profile.
+
+The script provides the following capabilities:
+
+* Run a command using AWS SSO credentials
+* Generate a temporary profile in the $AWS_CONFIG_FILE and $AWS_SHARED_CREDENTIALS_FILE file
+* Exporting the AWS SSO credentials
+* Use the credentials via .aws/config
+* Assume a role via AWS SSO
+
+Please note that the script is called `aws2-wrap` to show that it works with AWS CLI v2, even though the CLI tool is no longer called `aws2`.
+
+## Install
+
+### Using `pip`
+
+<https://pypi.org/project/aws2-wrap>
+
+```
+pip3 install aws2-wrap
+```
+
+### Using `brew`
+
+```
+brew install aws2-wrap
+```
+
+## Run a command using AWS SSO credentials
+
+`aws2-wrap [--profile <awsprofilename>] [--exec] <command>`
+
+Note that if you are using `--exec` and `<command>` contains spaces, it must be surrounded with double-quotation marks.
+
+You can also specify the profile to be used via AWS_PROFILE which then allows the same profile to be used by subsequent tools and commands.
+
+Examples:
+
+`aws2-wrap --profile MySSOProfile terraform plan`
+
+`aws2-wrap --profile MySSOProfile --exec "terraform plan"`
+
+`AWS_PROFILE=MySSOProfile aws2-wrap terraform plan`
+
+If you are having problems with the use of quotes in the command, you may find one of the other methods works better for you.
+
+## Generate a temporary profile in the $AWS_CONFIG_FILE and $AWS_SHARED_CREDENTIALS_FILE file
+
+There are some utilities which work better with the configuration files rather than the environment variables. For example, if you need to access more than one profile at a time.
+
+`aws2-wrap --generate --profile $AWS_PROFILE --credentialsfile $AWS_SHARED_CREDENTIALS_FILE --configfile $AWS_CONFIG_FILE --outprofile $DESTINATION_PROFILE`
+
+Optionally, you can specify `--generatestdout` instead of `--generate`. `--outprofile` is still required in order to name the section but `--credentialsfile` and `--configfile` are ignored. With this command option, the generated credentials will then be output to the console.
+
+## Export the AWS SSO credentials
+
+There may be circumstances when it is easier/better to set the appropriate environment variables so that they can be re-used by any `aws` command.
+
+Since the script cannot directly set the environment variables in the calling shell process, it is necessary to use the following syntax:
+
+`eval "$(aws2-wrap [--profile <awsprofilename>] --export)"`
+
+For example:
+
+`eval "$(aws2-wrap --profile MySSOProfile --export)"`
+
+If you are using PowerShell, the equivalent command is:
+
+`aws2-wrap --profile MySSOProfile --export | invoke-expression`
+
+## Use the credentials via .aws/config
+
+If you are using a tool that works with normal AWS credentials but doesn't understand the new AWS SSO credentials, another option is to add a profile to `.aws/config` that calls the `aws2-wrap` script.
+
+For example, add the following block to `.aws/config`:
+
+```text
+[profile Wrapped]
+credential_process = aws2-wrap --process --profile <awsprofilename>
+```
+
+then, after authentication, you can run any command that uses AWS credentials by specifying the "Wrapped" profile:
+
+```text
+aws sso login --profile <awsprofilename>
+export AWS_PROFILE=Wrapped
+export AWS_SDK_LOAD_CONFIG=1
+terraform plan
+```
+
+Note that because the profile is being specified via `AWS_PROFILE`, it is sometimes necessary (as shown above) to set `AWS_SDK_LOAD_CONFIG` in order to get tools like `terraform` to successfully retrieve the credentials.
+
+## Assume a role via AWS SSO
+
+Your `.aws/config` file can look like this:
+
+```text
+[default]
+sso_start_url = xxxxxxxxxxxx
+sso_region = us-west-2
+sso_account_id = xxxxxxxxxxxx
+sso_role_name = SSORoleName
+
+[profile account1]
+role_arn = arn:aws:iam::xxxxxxxxxxxx:role/role-to-be-assumed
+source_profile = default
+region = ap-northeast-1
+```
+
+allowing you to then run:
+
+`aws2-wrap --profile account1 <command>`
+
+and `<command>` will be run under `role-to-be-assumed`.
+
+## Contributing
+
+Contributions are more than welcome, particularly if you are able to expand on the test code. Please ensure, though, that before you submit a Pull Request, you run `make test` to ensure that your changes don't break any of the existing tests and `make pylint` to ensure that the linter is happy. Please note that the CI/CD pylint test *may* use different pylint rules from your own local setup.
+
+Please also note that `make pylint` will only report errors. You *may* want to explicitly run `python3 -m pylint setup.py aws2wrap`
+
+## Credits
+
+Thanks to @nitrocode, @chenrui333, @l1n, @sodul, @damian-bisignano, @flyinprogrammer, @abeluck, @topu, @bigwheel, @krabbit, @jscook2345, @hieki, @blazdivjak, @fukushun1994, @johann8384, @ppezoldt, @atwoodjw, @lummish, @life36-vinny, @lukemassa and @axelri for their contributions.
+
+
+
+
+%prep
+%autosetup -n aws2-wrap-1.3.1
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-aws2-wrap -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 1.3.1-1
+- Package Spec generated