Skip to content

Commit e2f51f6

Browse files
committed
Added support for both non-root and root AWS creds in DataSink
1 parent f77371b commit e2f51f6

File tree

1 file changed

+22
-19
lines changed

1 file changed

+22
-19
lines changed

nipype/interfaces/io.py

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,6 @@ def __init__(self, filename):
144144

145145
# Import packages
146146
import threading
147-
import os
148147

149148
# Initialize data attributes
150149
self._filename = filename
@@ -384,10 +383,6 @@ def _check_s3_base_dir(self):
384383
S3 bucket path
385384
'''
386385

387-
# Import packages
388-
import os
389-
import sys
390-
391386
# Init variables
392387
s3_str = 's3://'
393388
sep = os.path.sep
@@ -428,9 +423,8 @@ def _return_aws_keys(self, creds_path):
428423
Parameters
429424
----------
430425
creds_path : string (filepath)
431-
path to the csv file with 'AWSAccessKeyId=' followed by access
432-
key in the first row and 'AWSSecretAccessKey=' followed by
433-
secret access key in the second row
426+
path to the csv file downloaded from AWS; can either be root
427+
or user credentials
434428
435429
Returns
436430
-------
@@ -440,19 +434,28 @@ def _return_aws_keys(self, creds_path):
440434
string of the AWS secret access key
441435
'''
442436

443-
# Import packages
444-
import csv
445-
446437
# Init variables
447-
csv_reader = csv.reader(open(creds_path, 'r'))
448-
449-
# Grab csv rows
450-
row1 = csv_reader.next()[0]
451-
row2 = csv_reader.next()[0]
438+
with open(creds_path, 'r') as creds_in:
439+
# Grab csv rows
440+
row1 = creds_in.readline()
441+
row2 = creds_in.readline()
442+
443+
# Are they root or user keys
444+
if 'User Name' in row1:
445+
# And split out for keys
446+
aws_access_key_id = row2.split(',')[1]
447+
aws_secret_access_key = row2.split(',')[2]
448+
elif 'AWSAccessKeyId' in row1:
449+
# And split out for keys
450+
aws_access_key_id = row1.split('=')[1]
451+
aws_secret_access_key = row2.split('=')[1]
452+
else:
453+
err_msg = 'Credentials file not recognized, check file is correct'
454+
raise Exception(err_msg)
452455

453-
# And split out for keys
454-
aws_access_key_id = row1.split('=')[1]
455-
aws_secret_access_key = row2.split('=')[1]
456+
# Strip any carriage return/line feeds
457+
aws_access_key_id = aws_access_key_id.replace('\r', '').replace('\n', '')
458+
aws_secret_access_key = aws_secret_access_key.replace('\r', '').replace('\n', '')
456459

457460
# Return keys
458461
return aws_access_key_id, aws_secret_access_key

0 commit comments

Comments
 (0)