From e426499669eaebae2864df9847fc66b14d64e3c1 Mon Sep 17 00:00:00 2001 From: Hugo Date: Wed, 9 Mar 2022 13:12:36 -0300 Subject: [PATCH 1/6] exporter logic created --- awscli/customizations/configure/configure.py | 2 ++ awscli/customizations/configure/exporter.py | 32 ++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 awscli/customizations/configure/exporter.py diff --git a/awscli/customizations/configure/configure.py b/awscli/customizations/configure/configure.py index b2031bb7c168..621cdc582a81 100644 --- a/awscli/customizations/configure/configure.py +++ b/awscli/customizations/configure/configure.py @@ -25,6 +25,7 @@ from awscli.customizations.configure.importer import ConfigureImportCommand from awscli.customizations.configure.listprofiles import ListProfilesCommand from awscli.customizations.configure.sso import ConfigureSSOCommand +from awscli.customizations.configure.exporter import ConfigureExportCommand from . import mask_value, profile_to_section @@ -80,6 +81,7 @@ class ConfigureCommand(BasicCommand): {'name': 'import', 'command_class': ConfigureImportCommand}, {'name': 'list-profiles', 'command_class': ListProfilesCommand}, {'name': 'sso', 'command_class': ConfigureSSOCommand}, + {'name': 'export-credentials', 'command_class': ConfigureExportCommand}, ] # If you want to add new values to prompt, update this list here. diff --git a/awscli/customizations/configure/exporter.py b/awscli/customizations/configure/exporter.py new file mode 100644 index 000000000000..e08571637d60 --- /dev/null +++ b/awscli/customizations/configure/exporter.py @@ -0,0 +1,32 @@ +import sys +import json +import os + +sys.path.insert(0, 'D:/Repos GitKraken/aws-cli') +from awscli.customizations.commands import BasicCommand +from awscli.customizations.configure.writer import ConfigFileWriter + +class ConfigureExportCommand(BasicCommand): + NAME = 'export-credentials' + DESCRIPTION = 'Exports the AWS credentials used with the command "aws configure" to a the config file.' + EXAMPLES = 'aws configure export-credentials' + + def __init__(self, session): + super(ConfigureExportCommand, self).__init__(session) + + def _run_main(self, parsed_args, parsed_globals): + self.export_credentials(self._session) + return 0 + + def export_credentials(self, session): + """ + Exports the AWS credentials used with the command 'aws configure' to a file. + """ + credentials = session.get_credentials() + if credentials is None: + raise RuntimeError('No credentials available. Try running "aws configure" first.') + try: + with open('credentials.json', 'w') as f: + json.dump(credentials.get_frozen_credentials(), f) + except: + raise RuntimeError('Failed while trying to export credentials. Check your permissions and try again.') \ No newline at end of file From 58adc7a207d14fecda41518dd62513851a9d707f Mon Sep 17 00:00:00 2001 From: Hugo Date: Wed, 9 Mar 2022 20:39:10 -0300 Subject: [PATCH 2/6] update in stdout --- awscli/customizations/configure/exporter.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/awscli/customizations/configure/exporter.py b/awscli/customizations/configure/exporter.py index e08571637d60..c06c62350640 100644 --- a/awscli/customizations/configure/exporter.py +++ b/awscli/customizations/configure/exporter.py @@ -1,10 +1,11 @@ +from awscli.customizations.configure.writer import ConfigFileWriter +from awscli.customizations.commands import BasicCommand import sys import json import os sys.path.insert(0, 'D:/Repos GitKraken/aws-cli') -from awscli.customizations.commands import BasicCommand -from awscli.customizations.configure.writer import ConfigFileWriter + class ConfigureExportCommand(BasicCommand): NAME = 'export-credentials' @@ -13,7 +14,7 @@ class ConfigureExportCommand(BasicCommand): def __init__(self, session): super(ConfigureExportCommand, self).__init__(session) - + def _run_main(self, parsed_args, parsed_globals): self.export_credentials(self._session) return 0 @@ -24,9 +25,13 @@ def export_credentials(self, session): """ credentials = session.get_credentials() if credentials is None: - raise RuntimeError('No credentials available. Try running "aws configure" first.') + raise RuntimeError( + 'No credentials available. Try running "aws configure" first.') try: - with open('credentials.json', 'w') as f: - json.dump(credentials.get_frozen_credentials(), f) + credentials_data = credentials.get_frozen_credentials() + dump = {'aws_access_key_id': credentials_data.access_key, + 'aws_secret_access_key': credentials_data.secret_key, 'aws_session_token': credentials_data.token} + print(json.dumps(dump, indent=4)) except: - raise RuntimeError('Failed while trying to export credentials. Check your permissions and try again.') \ No newline at end of file + raise RuntimeError( + 'Failed while trying to export credentials. Check your permissions and try again.') From 6ba9b60fadf1de19cb8494b3c4b614dc0cb797ea Mon Sep 17 00:00:00 2001 From: Hugo Castro <39707889+HugoCL@users.noreply.github.com> Date: Mon, 14 Mar 2022 14:53:24 -0300 Subject: [PATCH 3/6] rm testing variable --- awscli/customizations/configure/exporter.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/awscli/customizations/configure/exporter.py b/awscli/customizations/configure/exporter.py index c06c62350640..ff047f006516 100644 --- a/awscli/customizations/configure/exporter.py +++ b/awscli/customizations/configure/exporter.py @@ -4,8 +4,6 @@ import json import os -sys.path.insert(0, 'D:/Repos GitKraken/aws-cli') - class ConfigureExportCommand(BasicCommand): NAME = 'export-credentials' From 1d4335a6d59ad5c18eeb31523298c1ca72c64e6a Mon Sep 17 00:00:00 2001 From: HugoCL Date: Wed, 23 Mar 2022 18:59:42 +0000 Subject: [PATCH 4/6] Updated the credentials data output --- .gitpod.yml | 8 ++++++++ awscli/customizations/configure/exporter.py | 7 +++++-- 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 .gitpod.yml diff --git a/.gitpod.yml b/.gitpod.yml new file mode 100644 index 000000000000..a9c428b680eb --- /dev/null +++ b/.gitpod.yml @@ -0,0 +1,8 @@ +# This configuration file was automatically generated by Gitpod. +# Please adjust to your needs (see https://www.gitpod.io/docs/config-gitpod-file) +# and commit this file to your remote git repository to share the goodness with others. + +tasks: + - init: pip install -r requirements.txt + + diff --git a/awscli/customizations/configure/exporter.py b/awscli/customizations/configure/exporter.py index ff047f006516..25d3ba912d4c 100644 --- a/awscli/customizations/configure/exporter.py +++ b/awscli/customizations/configure/exporter.py @@ -1,5 +1,6 @@ from awscli.customizations.configure.writer import ConfigFileWriter from awscli.customizations.commands import BasicCommand +from awscli.customizations.utils import uni_print import sys import json import os @@ -28,8 +29,10 @@ def export_credentials(self, session): try: credentials_data = credentials.get_frozen_credentials() dump = {'aws_access_key_id': credentials_data.access_key, - 'aws_secret_access_key': credentials_data.secret_key, 'aws_session_token': credentials_data.token} - print(json.dumps(dump, indent=4)) + 'aws_secret_access_key': credentials_data.secret_key} + if credentials_data.token is not None: + dump['aws_session_token'] = credentials_data.token + uni_print(json.dumps(dump, indent=4)) except: raise RuntimeError( 'Failed while trying to export credentials. Check your permissions and try again.') From 6f46ca03015f18bbaa9f46f15475520b07b56b52 Mon Sep 17 00:00:00 2001 From: HugoCL Date: Wed, 23 Mar 2022 19:12:44 +0000 Subject: [PATCH 5/6] rm gitpod --- .gitpod.yml | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 .gitpod.yml diff --git a/.gitpod.yml b/.gitpod.yml deleted file mode 100644 index a9c428b680eb..000000000000 --- a/.gitpod.yml +++ /dev/null @@ -1,8 +0,0 @@ -# This configuration file was automatically generated by Gitpod. -# Please adjust to your needs (see https://www.gitpod.io/docs/config-gitpod-file) -# and commit this file to your remote git repository to share the goodness with others. - -tasks: - - init: pip install -r requirements.txt - - From 02e5d1f623295cb661e6bc15360f1d016683b715 Mon Sep 17 00:00:00 2001 From: HugoCL Date: Wed, 23 Mar 2022 19:15:29 +0000 Subject: [PATCH 6/6] rm unused imports --- awscli/customizations/configure/exporter.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/awscli/customizations/configure/exporter.py b/awscli/customizations/configure/exporter.py index 25d3ba912d4c..b2bef88eb79e 100644 --- a/awscli/customizations/configure/exporter.py +++ b/awscli/customizations/configure/exporter.py @@ -1,9 +1,7 @@ from awscli.customizations.configure.writer import ConfigFileWriter from awscli.customizations.commands import BasicCommand from awscli.customizations.utils import uni_print -import sys import json -import os class ConfigureExportCommand(BasicCommand):