diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-byu-awslogin.spec | 395 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 397 insertions, 0 deletions
@@ -0,0 +1 @@ +/byu_awslogin-0.15.2.tar.gz diff --git a/python-byu-awslogin.spec b/python-byu-awslogin.spec new file mode 100644 index 0000000..c6d25a5 --- /dev/null +++ b/python-byu-awslogin.spec @@ -0,0 +1,395 @@ +%global _empty_manifest_terminate_build 0 +Name: python-byu-awslogin +Version: 0.15.2 +Release: 1 +Summary: An aws-adfs spinoff that fits BYU's needs +License: Apache-2.0 +URL: https://github.com/byu-oit/awslogin +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/ab/e6/213918472fdd536156c9283eb95d1c71a14c0a3a65ee3819de40e70a0f93/byu_awslogin-0.15.2.tar.gz +BuildArch: noarch + +Requires: python3-boto3 +Requires: python3-requests +Requires: python3-click +Requires: python3-future +Requires: python3-configparser +Requires: python3-beautifulsoup4 +Requires: python3-lxml +Requires: python3-prompt-toolkit + +%description +# AWSLOGIN +Python script for CLI and SDK access to AWS via ADFS while requiring MFA +access using <https://duo.com/> + +# History and Purpose + +BYU used to use the great [aws-adfs](https://github.com/venth/aws-adfs) +CLI tool to login to our AWS accounts. It worked great, especially the +DUO 2FA support. Eventually, we decided to write our own similar tool +but make it BYU-specific so that we could tailor it to our needs (which +basically means hard-code certain BYU-specific things) and remove some +of the required parameters. Since this tool will be used by BYU +employees only we had that option. We then morphed it a little more for +our use cases. This isn't something that you could use outside of BYU, +sorry. + +# DUO 2FA Requirements +In order for Duo 2FA to work properly Automatic Push needs to be enabled. + +# Installation + + - Python 3.6+ is recommended as python2 is EOL January 2020. + - It is highly recommended to use an application like [Pipx](https://pipxproject.github.io/pipx/) to install and use python cli applications. + - Follow the pipx [installation documentation](https://pipxproject.github.io/pipx/installation/) then simply run `pipx install byu_awslogin` + - Experimental Binaries are available on the releases page. These are new and in testing [Releases](https://gihtub.com/byu-oit/awslogin/releases) + - See the [installation options](https://github.com/byu-oit/awslogin/blob/master/INSTALLATION_OPTIONS.md) For additional options + page for step by step instructions for installing in various environments + +# Upgrading + +If you already have byu\_awslogin install and are looking to upgrade +simply run + +`pip3 install --upgrade byu_awslogin` or `pip install --upgrade +byu_awslogin` as appropriate for your python installation + +# Usage + +awslogin defaults to the default profile in your \~/.aws/config and +\~/.aws/credentials files. **\*If you already have a default profile you +want to save in your \~/.aws files make sure to do that before running +awslogin.**\* + +Once you're logged in, you can execute commands using the AWS CLI or AWS +SDK. Try running `aws s3 ls`. + +Currently, AWS temporary credentials are only valid for 1 hour. We cache +your ADFS session, however, so you can just re-run `awslogin` again to +get a new set of AWS credentials without logging in again to ADFS. Your +ADFS login session is valid for 8 hours, after which time you'll be +required to login to ADFS again to obtain a new session. + +To switch accounts after you've already authenticated to an account, +just run awslogin again and select a new account/role combination. + +To use it: + + - Run `awslogin` and it will prompt you for the AWS account and role + to use. + - Run `awslogin --account <account name> --role <role name>` to skip + the prompting for account and name. You could specify just one of + the arguments as well. + - Run `awslogin --profile <profile name>` to specifiy an alternative + profile + - Run `awslogin --region <region name>` to specify a different region. + The default region is *us-west-2*. + - Run `awslogin --status` for the current status of the default + profile + - Run `awslogin --status --profile dev` for the current status of the + dev profile + - Run `awslogin --status --profile all` for the current status of the + all profiles + - Run `awslogin --logout` to logout of a cached ADFS session + - Run `awslogin --version` to display the running version of awslogin + - Run `awslogin --help` for full help message + +# Bash or ZSH Completion +Bash: +- Run the following: `_AWSLOGIN_COMPLETE=source awslogin > ~/_awslogin` Then add `source /path/to/_awslogin` to .bashrc + +ZSH: +- Run the following: `_AWSLOGIN_COMPLETE=source_zsh awslogin > ~/_awslogin` Then add `source /path/to/_awslogin` to .zshrc + +Alternatively put the `_awslogin` in your `/etc/bash_completion.d` or similiar directory (`~/.zfunc`) to load at shells startup + +To test if it works run awslogin at least once for the account and role cache to populate. On next login `awslogin -a [TAB][TAB]` should output available accounts and `awslogin -a {some account} -r [TAB][TAB]` should output available roles for the selected account + +Limitation: Accounts and Role completion at the CLI is loaded from a cache file. This file will be updated anytime awslogin is ran. + +# Reporting bugs or requesting features + + - Enter an issue on the github repo. + - Or, even better if you can, fix the issue and make a pull request. + +# Deploying changes + + - Update the version in `pyproject.toml` and `__version__.py` + - Commit the changes and push. + - Build binaries + - Create a new release (add binaries and sha256sums.txt) with the version number and Github Actions will build, test and publish + +# TODO + + - Write tests + - Write more tests to increase overall coverage + + +%package -n python3-byu-awslogin +Summary: An aws-adfs spinoff that fits BYU's needs +Provides: python-byu-awslogin +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-byu-awslogin +# AWSLOGIN +Python script for CLI and SDK access to AWS via ADFS while requiring MFA +access using <https://duo.com/> + +# History and Purpose + +BYU used to use the great [aws-adfs](https://github.com/venth/aws-adfs) +CLI tool to login to our AWS accounts. It worked great, especially the +DUO 2FA support. Eventually, we decided to write our own similar tool +but make it BYU-specific so that we could tailor it to our needs (which +basically means hard-code certain BYU-specific things) and remove some +of the required parameters. Since this tool will be used by BYU +employees only we had that option. We then morphed it a little more for +our use cases. This isn't something that you could use outside of BYU, +sorry. + +# DUO 2FA Requirements +In order for Duo 2FA to work properly Automatic Push needs to be enabled. + +# Installation + + - Python 3.6+ is recommended as python2 is EOL January 2020. + - It is highly recommended to use an application like [Pipx](https://pipxproject.github.io/pipx/) to install and use python cli applications. + - Follow the pipx [installation documentation](https://pipxproject.github.io/pipx/installation/) then simply run `pipx install byu_awslogin` + - Experimental Binaries are available on the releases page. These are new and in testing [Releases](https://gihtub.com/byu-oit/awslogin/releases) + - See the [installation options](https://github.com/byu-oit/awslogin/blob/master/INSTALLATION_OPTIONS.md) For additional options + page for step by step instructions for installing in various environments + +# Upgrading + +If you already have byu\_awslogin install and are looking to upgrade +simply run + +`pip3 install --upgrade byu_awslogin` or `pip install --upgrade +byu_awslogin` as appropriate for your python installation + +# Usage + +awslogin defaults to the default profile in your \~/.aws/config and +\~/.aws/credentials files. **\*If you already have a default profile you +want to save in your \~/.aws files make sure to do that before running +awslogin.**\* + +Once you're logged in, you can execute commands using the AWS CLI or AWS +SDK. Try running `aws s3 ls`. + +Currently, AWS temporary credentials are only valid for 1 hour. We cache +your ADFS session, however, so you can just re-run `awslogin` again to +get a new set of AWS credentials without logging in again to ADFS. Your +ADFS login session is valid for 8 hours, after which time you'll be +required to login to ADFS again to obtain a new session. + +To switch accounts after you've already authenticated to an account, +just run awslogin again and select a new account/role combination. + +To use it: + + - Run `awslogin` and it will prompt you for the AWS account and role + to use. + - Run `awslogin --account <account name> --role <role name>` to skip + the prompting for account and name. You could specify just one of + the arguments as well. + - Run `awslogin --profile <profile name>` to specifiy an alternative + profile + - Run `awslogin --region <region name>` to specify a different region. + The default region is *us-west-2*. + - Run `awslogin --status` for the current status of the default + profile + - Run `awslogin --status --profile dev` for the current status of the + dev profile + - Run `awslogin --status --profile all` for the current status of the + all profiles + - Run `awslogin --logout` to logout of a cached ADFS session + - Run `awslogin --version` to display the running version of awslogin + - Run `awslogin --help` for full help message + +# Bash or ZSH Completion +Bash: +- Run the following: `_AWSLOGIN_COMPLETE=source awslogin > ~/_awslogin` Then add `source /path/to/_awslogin` to .bashrc + +ZSH: +- Run the following: `_AWSLOGIN_COMPLETE=source_zsh awslogin > ~/_awslogin` Then add `source /path/to/_awslogin` to .zshrc + +Alternatively put the `_awslogin` in your `/etc/bash_completion.d` or similiar directory (`~/.zfunc`) to load at shells startup + +To test if it works run awslogin at least once for the account and role cache to populate. On next login `awslogin -a [TAB][TAB]` should output available accounts and `awslogin -a {some account} -r [TAB][TAB]` should output available roles for the selected account + +Limitation: Accounts and Role completion at the CLI is loaded from a cache file. This file will be updated anytime awslogin is ran. + +# Reporting bugs or requesting features + + - Enter an issue on the github repo. + - Or, even better if you can, fix the issue and make a pull request. + +# Deploying changes + + - Update the version in `pyproject.toml` and `__version__.py` + - Commit the changes and push. + - Build binaries + - Create a new release (add binaries and sha256sums.txt) with the version number and Github Actions will build, test and publish + +# TODO + + - Write tests + - Write more tests to increase overall coverage + + +%package help +Summary: Development documents and examples for byu-awslogin +Provides: python3-byu-awslogin-doc +%description help +# AWSLOGIN +Python script for CLI and SDK access to AWS via ADFS while requiring MFA +access using <https://duo.com/> + +# History and Purpose + +BYU used to use the great [aws-adfs](https://github.com/venth/aws-adfs) +CLI tool to login to our AWS accounts. It worked great, especially the +DUO 2FA support. Eventually, we decided to write our own similar tool +but make it BYU-specific so that we could tailor it to our needs (which +basically means hard-code certain BYU-specific things) and remove some +of the required parameters. Since this tool will be used by BYU +employees only we had that option. We then morphed it a little more for +our use cases. This isn't something that you could use outside of BYU, +sorry. + +# DUO 2FA Requirements +In order for Duo 2FA to work properly Automatic Push needs to be enabled. + +# Installation + + - Python 3.6+ is recommended as python2 is EOL January 2020. + - It is highly recommended to use an application like [Pipx](https://pipxproject.github.io/pipx/) to install and use python cli applications. + - Follow the pipx [installation documentation](https://pipxproject.github.io/pipx/installation/) then simply run `pipx install byu_awslogin` + - Experimental Binaries are available on the releases page. These are new and in testing [Releases](https://gihtub.com/byu-oit/awslogin/releases) + - See the [installation options](https://github.com/byu-oit/awslogin/blob/master/INSTALLATION_OPTIONS.md) For additional options + page for step by step instructions for installing in various environments + +# Upgrading + +If you already have byu\_awslogin install and are looking to upgrade +simply run + +`pip3 install --upgrade byu_awslogin` or `pip install --upgrade +byu_awslogin` as appropriate for your python installation + +# Usage + +awslogin defaults to the default profile in your \~/.aws/config and +\~/.aws/credentials files. **\*If you already have a default profile you +want to save in your \~/.aws files make sure to do that before running +awslogin.**\* + +Once you're logged in, you can execute commands using the AWS CLI or AWS +SDK. Try running `aws s3 ls`. + +Currently, AWS temporary credentials are only valid for 1 hour. We cache +your ADFS session, however, so you can just re-run `awslogin` again to +get a new set of AWS credentials without logging in again to ADFS. Your +ADFS login session is valid for 8 hours, after which time you'll be +required to login to ADFS again to obtain a new session. + +To switch accounts after you've already authenticated to an account, +just run awslogin again and select a new account/role combination. + +To use it: + + - Run `awslogin` and it will prompt you for the AWS account and role + to use. + - Run `awslogin --account <account name> --role <role name>` to skip + the prompting for account and name. You could specify just one of + the arguments as well. + - Run `awslogin --profile <profile name>` to specifiy an alternative + profile + - Run `awslogin --region <region name>` to specify a different region. + The default region is *us-west-2*. + - Run `awslogin --status` for the current status of the default + profile + - Run `awslogin --status --profile dev` for the current status of the + dev profile + - Run `awslogin --status --profile all` for the current status of the + all profiles + - Run `awslogin --logout` to logout of a cached ADFS session + - Run `awslogin --version` to display the running version of awslogin + - Run `awslogin --help` for full help message + +# Bash or ZSH Completion +Bash: +- Run the following: `_AWSLOGIN_COMPLETE=source awslogin > ~/_awslogin` Then add `source /path/to/_awslogin` to .bashrc + +ZSH: +- Run the following: `_AWSLOGIN_COMPLETE=source_zsh awslogin > ~/_awslogin` Then add `source /path/to/_awslogin` to .zshrc + +Alternatively put the `_awslogin` in your `/etc/bash_completion.d` or similiar directory (`~/.zfunc`) to load at shells startup + +To test if it works run awslogin at least once for the account and role cache to populate. On next login `awslogin -a [TAB][TAB]` should output available accounts and `awslogin -a {some account} -r [TAB][TAB]` should output available roles for the selected account + +Limitation: Accounts and Role completion at the CLI is loaded from a cache file. This file will be updated anytime awslogin is ran. + +# Reporting bugs or requesting features + + - Enter an issue on the github repo. + - Or, even better if you can, fix the issue and make a pull request. + +# Deploying changes + + - Update the version in `pyproject.toml` and `__version__.py` + - Commit the changes and push. + - Build binaries + - Create a new release (add binaries and sha256sums.txt) with the version number and Github Actions will build, test and publish + +# TODO + + - Write tests + - Write more tests to increase overall coverage + + +%prep +%autosetup -n byu-awslogin-0.15.2 + +%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-byu-awslogin -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 0.15.2-1 +- Package Spec generated @@ -0,0 +1 @@ +f025a5b1ccfa506fa95515c7e61929f9 byu_awslogin-0.15.2.tar.gz |
