Closed felipe1982 closed 6 years ago
sudo pip install awsume==2.1.5
problems go away
This is likely from an issue with the update from 2.x to 3.x. The way AWSume cache credentials has changed since 2.x, so what you'll want to do is to stop autoawsume
with awsume -k
, and then either remove all of AWSume's cache files in your ~/.aws/cli/cache/
directory, or run your AWSume commands with the -r
flag, to ignore the cache and refresh it with the correct, current format (preferably removing the cache files).
However it would be better if AWSume handled backwards-incompatibility gracefully, so I will work on an update to handle these kinds of situations.
If removing the cache or -r
doesn't work, please let me know!
solved.
[sudo] password for root:
Collecting awsume
Using cached awsume-3.0.9.tar.gz
Requirement already up-to-date: boto3 in /usr/lib/python2.7/site-packages (from awsume)
Requirement already up-to-date: psutil in /usr/lib64/python2.7/site-packages (from awsume)
Requirement already up-to-date: yapsy in /usr/lib/python2.7/site-packages (from awsume)
Requirement already up-to-date: future in /usr/lib/python2.7/site-packages (from awsume)
Requirement already up-to-date: jmespath<1.0.0,>=0.7.1 in /usr/lib/python2.7/site-packages (from boto3->awsume)
Requirement already up-to-date: botocore<1.10.0,>=1.9.11 in /usr/lib/python2.7/site-packages (from boto3->awsume)
Requirement already up-to-date: s3transfer<0.2.0,>=0.1.10 in /usr/lib/python2.7/site-packages (from boto3->awsume)
Requirement already up-to-date: python-dateutil<2.7.0,>=2.1 in /usr/lib/python2.7/site-packages (from botocore<1.10.0,>=1.9.11->boto3->awsume)
Requirement already up-to-date: docutils>=0.10 in /usr/lib/python2.7/site-packages (from botocore<1.10.0,>=1.9.11->boto3->awsume)
Requirement already up-to-date: futures<4.0.0,>=2.2.0; python_version == "2.6" or python_version == "2.7" in /usr/lib/python2.7/site-packages (from s3transfer<0.2.0,>=0.1.10->boto3->awsume)
Requirement already up-to-date: six>=1.5 in /usr/lib/python2.7/site-packages (from python-dateutil<2.7.0,>=2.1->botocore<1.10.0,>=1.9.11->boto3->awsume)
Installing collected packages: awsume
Found existing installation: awsume 2.1.5
Uninstalling awsume-2.1.5:
Successfully uninstalled awsume-2.1.5
Running setup.py install for awsume ... done
Successfully installed awsume-3.0.9
felipe@DESKTOP-TCPCKB9:~/repos/vff-ipaas-infrastructure/ansible (feature/syslog-apigee *$=)$ awsume -k
awsumefelipe@DESKTOP-TCPCKB9:~/repos/vff-ipaas-infrastructure/ansible (feature/syslog-apigee *$=)$ awsume -r velocity-ipaas-nonprod
AWSume: User profile credentials will expire at: 2018-03-20 12:01:35+00:00
AWSume: Role profile credentials will expire at: 2018-03-20 12:01:42
felipe@DESKTOP-TCPCKB9:~/repos/vff-ipaas-infrastructure/ansible (feature/syslog-apigee *$=)$
Sorry. False alarm. I hit this
elipe@DESKTOP-TCPCKB9:~/repos/vff-ipaas-infrastructure/ansible (feature/syslog-apigee *$=)$ sudo pip install -U awsume
[sudo] password for root:
Collecting awsume
Using cached awsume-3.0.9.tar.gz
Requirement already up-to-date: boto3 in /usr/lib/python2.7/site-packages (from awsume)
Requirement already up-to-date: psutil in /usr/lib64/python2.7/site-packages (from awsume)
Requirement already up-to-date: yapsy in /usr/lib/python2.7/site-packages (from awsume)
Requirement already up-to-date: future in /usr/lib/python2.7/site-packages (from awsume)
Requirement already up-to-date: jmespath<1.0.0,>=0.7.1 in /usr/lib/python2.7/site-packages (from boto3->awsume)
Requirement already up-to-date: botocore<1.10.0,>=1.9.11 in /usr/lib/python2.7/site-packages (from boto3->awsume)
Requirement already up-to-date: s3transfer<0.2.0,>=0.1.10 in /usr/lib/python2.7/site-packages (from boto3->awsume)
Requirement already up-to-date: python-dateutil<2.7.0,>=2.1 in /usr/lib/python2.7/site-packages (from botocore<1.10.0,>=1.9.11->boto3->awsume)
Requirement already up-to-date: docutils>=0.10 in /usr/lib/python2.7/site-packages (from botocore<1.10.0,>=1.9.11->boto3->awsume)
Requirement already up-to-date: futures<4.0.0,>=2.2.0; python_version == "2.6" or python_version == "2.7" in /usr/lib/python2.7/site-packages (from s3transfer<0.2.0,>=0.1.10->boto3->awsume)
Requirement already up-to-date: six>=1.5 in /usr/lib/python2.7/site-packages (from python-dateutil<2.7.0,>=2.1->botocore<1.10.0,>=1.9.11->boto3->awsume)
Installing collected packages: awsume
Found existing installation: awsume 2.1.5
Uninstalling awsume-2.1.5:
Successfully uninstalled awsume-2.1.5
Running setup.py install for awsume ... done
Successfully installed awsume-3.0.9
felipe@DESKTOP-TCPCKB9:~/repos/vff-ipaas-infrastructure/ansible (feature/syslog-apigee *$=)$ awsume -k
awsumefelipe@DESKTOP-TCPCKB9:~/repos/vff-ipaas-infrastructure/ansible (feature/syslog-apigee *$=)$ awsume -r velocity-ipaas-nonprod
AWSume: User profile credentials will expire at: 2018-03-20 12:01:35+00:00
AWSume: Role profile credentials will expire at: 2018-03-20 12:01:42
felipe@DESKTOP-TCPCKB9:~/repos/vff-ipaas-infrastructure/ansible (feature/syslog-apigee *$=)$ awsume -a velocity-ipaas-nonprod
set | grep AWS_
AWSume: User profile credentials will expire at: 2018-03-20 12:03:06+00:00
AWSume: Role profile credentials will expire at: 2018-03-20 12:03:12
Traceback (most recent call last):
File "/usr/bin/awsumepy", line 11, in <module>
load_entry_point('awsume==3.0.9', 'console_scripts', 'awsumepy')()
File "/usr/lib/python2.7/site-packages/awsume/awsumepy.py", line 1415, in main
awsume.run(command_line_arguments)
File "/usr/lib/python2.7/site-packages/awsume/awsumepy.py", line 1383, in run
func(self, arguments, profiles, user_session, role_session)
File "/usr/lib/python2.7/site-packages/awsume/awsumepy.py", line 862, in get_role_session_callback
start_auto_awsume(args, app, profiles, AWS_CREDENTIALS_FILE, user_session, role_session)
File "/usr/lib/python2.7/site-packages/awsume/awsumepy.py", line 892, in start_auto_awsume
write_auto_awsume_session(args.target_profile_name, auto_profile, credentials_file_path)
File "/usr/lib/python2.7/site-packages/awsume/awsumepy.py", line 958, in write_auto_awsume_session
LOG.debug('AutoAwsume profile: %s', json.dumps(auto_profile, indent=2))
File "/usr/lib64/python2.7/json/__init__.py", line 251, in dumps
sort_keys=sort_keys, **kw).encode(obj)
File "/usr/lib64/python2.7/json/encoder.py", line 209, in encode
chunks = list(chunks)
File "/usr/lib64/python2.7/json/encoder.py", line 434, in _iterencode
for chunk in _iterencode_dict(o, _current_indent_level):
File "/usr/lib64/python2.7/json/encoder.py", line 408, in _iterencode_dict
for chunk in chunks:
File "/usr/lib64/python2.7/json/encoder.py", line 442, in _iterencode
o = _default(o)
File "/usr/lib64/python2.7/json/encoder.py", line 184, in default
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: datetime.datetime(2018, 3, 20, 12, 3, 6, tzinfo=tzutc()) is not JSON serializable
felipe@DESKTOP-TCPCKB9:~/repos/vff-ipaas-infrastructure/ansible (feature/syslog-apigee *$=)$ set | grep AWS_
AWS_ACCESS_KEY_ID=ASIAJTNXUHTJ4WKM3PBA
AWS_DEFAULT_REGION=ap-southeast-2
AWS_REGION=ap-southeast-2
AWS_SECRET_ACCESS_KEY=obfuscated
AWS_SECURITY_TOKEN=obfuscated
AWS_SESSION_TOKEN=obfuscated
felipe@DESKTOP-TCPCKB9:~/repos/vff-ipaas-infrastructure/ansible (feature/syslog-apigee *$=)$ rm ~/.aws/cli/
rm: cannot remove '/home/felipe/.aws/cli/': Is a directory
felipe@DESKTOP-TCPCKB9:~/repos/vff-ipaas-infrastructure/ansible (feature/syslog-apigee *$=)$ awsume -k
^[[Afelipe@DESKTOP-TCPCKB9:~/repos/vff-ipaas-infrastructure/ansible (feature/syslog-apigee *$=)$ awsume -a velocity-ipaas-nonprod
AWSume: User profile credentials will expire at: 2018-03-20 12:03:38+00:00
AWSume: Role profile credentials will expire at: 2018-03-20 12:03:44
Traceback (most recent call last):
File "/usr/bin/awsumepy", line 11, in <module>
load_entry_point('awsume==3.0.9', 'console_scripts', 'awsumepy')()
File "/usr/lib/python2.7/site-packages/awsume/awsumepy.py", line 1415, in main
awsume.run(command_line_arguments)
File "/usr/lib/python2.7/site-packages/awsume/awsumepy.py", line 1383, in run
func(self, arguments, profiles, user_session, role_session)
File "/usr/lib/python2.7/site-packages/awsume/awsumepy.py", line 862, in get_role_session_callback
start_auto_awsume(args, app, profiles, AWS_CREDENTIALS_FILE, user_session, role_session)
File "/usr/lib/python2.7/site-packages/awsume/awsumepy.py", line 892, in start_auto_awsume
write_auto_awsume_session(args.target_profile_name, auto_profile, credentials_file_path)
File "/usr/lib/python2.7/site-packages/awsume/awsumepy.py", line 958, in write_auto_awsume_session
LOG.debug('AutoAwsume profile: %s', json.dumps(auto_profile, indent=2))
File "/usr/lib64/python2.7/json/__init__.py", line 251, in dumps
sort_keys=sort_keys, **kw).encode(obj)
File "/usr/lib64/python2.7/json/encoder.py", line 209, in encode
chunks = list(chunks)
File "/usr/lib64/python2.7/json/encoder.py", line 434, in _iterencode
for chunk in _iterencode_dict(o, _current_indent_level):
File "/usr/lib64/python2.7/json/encoder.py", line 408, in _iterencode_dict
for chunk in chunks:
File "/usr/lib64/python2.7/json/encoder.py", line 442, in _iterencode
o = _default(o)
File "/usr/lib64/python2.7/json/encoder.py", line 184, in default
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: datetime.datetime(2018, 3, 20, 12, 3, 38, tzinfo=tzutc()) is not JSON serializable
Can you upload the output of running the failing AWSume commands with --debug
?
debug on
awsume.awsumepy.pre_awsume : Debug logs are visible
awsume.awsumepy.pre_awsume : Using profilename: velocity-ipaas-nonprod
awsume.awsumepy.get_aws_profiles : Getting AWS profiles
awsume.awsumepy.read_ini_file : Reading ini file from /home/felipe/.aws/config
awsume.awsumepy.read_ini_file : Reading ini file from /home/felipe/.aws/credentials
awsume.awsumepy.mix_role_and_source_profiles : Combining role and source profiles
awsume.awsumepy.merge_role_and_source_profile : merging config and credentials profile for [velocity-cloudops-build]
awsume.awsumepy.merge_role_and_source_profile : merging config and credentials profile for [velocity-ipaas-nonprod]
awsume.awsumepy.merge_role_and_source_profile : merging config and credentials profile for [velocity-cloudops-nonprod]
awsume.awsumepy.merge_role_and_source_profile : merging config and credentials profile for [velocity-ipaas-prod]
awsume.awsumepy.run : Collected aws profiles:
{
"velocity-cloudops-build": {
obfuscated },
"velocity-ipaas-nonprod": {
obfuscated },
"saml": {
obfuscated },
"default": {
"__name__": "default",
"region": "ap-southeast-2",
"output": "table"
},
"velocity": {
obfuscated
},
"velocity-cloudops-nonprod": {
obfuscated
},
"velocity-ipaas-prod": {
obfuscated
}
}
awsume.awsumepy.get_aws_profiles_callback : Validating Profile
awsume.awsumepy.get_user_session : Getting user session credentials
awsume.awsumepy.read_aws_cache : Reading aws cache file
awsume.awsumepy.read_aws_cache : cache file does not exist
awsume.awsumepy.valid_cache_session : {}
awsume.awsumepy.valid_cache_session : Session is invalid
awsume.awsumepy.create_sts_client : Creating an STS client
awsume.awsumepy.get_user_session : profile does not require mfa
awsume.awsumepy.run : User session:
{
"SecretAccessKey": "obfuscated",
"SessionToken": "obfuscated",
"Expiration": "2018-03-20 12:09:05+00:00",
"AccessKeyId": "obfuscated"
}
AWSume: User profile credentials will expire at: 2018-03-20 12:09:05+00:00
awsume.awsumepy.get_role_session : Getting role session credentials
awsume.awsumepy.create_sts_client : Creating an STS client
awsume.awsumepy.fix_session_credentials : Converting session expiration to local timezone
awsume.awsumepy.run : Role session:
{
"SecretAccessKey": "obfuscated",
"region": "ap-southeast-2",
"SessionToken": "obfuscated",
"Expiration": "2018-03-20 12:09:12",
"AccessKeyId": "obfuscated"
}
AWSume: Role profile credentials will expire at: 2018-03-20 12:09:12
awsume.awsumepy.start_auto_awsume : starting auto refresher
awsume.awsumepy.write_auto_awsume_session : Writing auto-awsume session
awsume.awsumepy.write_auto_awsume_session : Profile name: velocity-ipaas-nonprod
Traceback (most recent call last):
File "/usr/bin/awsumepy", line 11, in <module>
load_entry_point('awsume==3.0.9', 'console_scripts', 'awsumepy')()
File "/usr/lib/python2.7/site-packages/awsume/awsumepy.py", line 1415, in main
awsume.run(command_line_arguments)
File "/usr/lib/python2.7/site-packages/awsume/awsumepy.py", line 1383, in run
func(self, arguments, profiles, user_session, role_session)
File "/usr/lib/python2.7/site-packages/awsume/awsumepy.py", line 862, in get_role_session_callback
start_auto_awsume(args, app, profiles, AWS_CREDENTIALS_FILE, user_session, role_session)
File "/usr/lib/python2.7/site-packages/awsume/awsumepy.py", line 892, in start_auto_awsume
write_auto_awsume_session(args.target_profile_name, auto_profile, credentials_file_path)
File "/usr/lib/python2.7/site-packages/awsume/awsumepy.py", line 958, in write_auto_awsume_session
LOG.debug('AutoAwsume profile: %s', json.dumps(auto_profile, indent=2))
File "/usr/lib64/python2.7/json/__init__.py", line 251, in dumps
sort_keys=sort_keys, **kw).encode(obj)
File "/usr/lib64/python2.7/json/encoder.py", line 209, in encode
chunks = list(chunks)
File "/usr/lib64/python2.7/json/encoder.py", line 434, in _iterencode
for chunk in _iterencode_dict(o, _current_indent_level):
File "/usr/lib64/python2.7/json/encoder.py", line 408, in _iterencode_dict
for chunk in chunks:
File "/usr/lib64/python2.7/json/encoder.py", line 442, in _iterencode
o = _default(o)
File "/usr/lib64/python2.7/json/encoder.py", line 184, in default
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: datetime.datetime(2018, 3, 20, 12, 9, 5, tzinfo=tzutc()) is not JSON serializable
I found the origin of the problem, it wasn't formatting correctly for profiles that don't require mfa.
3.0.10 has been released to fix this bug, thanks for the tip!
working in 3.0.10. thank you sir!
Getting this error with 3.0.9 in WSL environment (opensuse)