pokepay / aws-sdk-lisp

AWS-SDK for Common Lisp
87 stars 19 forks source link

Custom value in aws-sdk:*aws-profile* ignored #4

Closed duncan-bayne closed 6 years ago

duncan-bayne commented 6 years ago

I'm trying to specify the profile in my ~/.aws/credentials file that I'd like to use, but it seems to be ignored in favour of default.

Am I doing this the wrong way, or is this unsupported?

CL-USER> (ql:quickload :ironclad)
(:IRONCLAD)
CL-USER> (ql:quickload :aws-sdk)
(:AWS-SDK)
CL-USER> (setq aws-sdk:*aws-profile* "foo")
"foo"
CL-USER> (ql:quickload :aws-sdk/services/s3)
(:AWS-SDK/SERVICES/S3)
Profile 'default' doesn't exist in '~/.aws/credentials'.
   [Condition of type SIMPLE-ERROR]
CL-USER> aws-sdk:*aws-profile*
"foo"

The profile definitely exists:

[foo]
aws_access_key_id = REDACTED
aws_secret_access_key = REDACTED
region = ap-southeast-2
fukamachi commented 6 years ago

Could you try again with aws-profile branch?

duncan-bayne commented 6 years ago

I have, but it's broken in a slightly different way.

With two profiles in ~/.aws/credentials:

[default]
aws_access_key_id = REDACTED
aws_secret_access_key = REDACTED

[bayne-family]
aws_access_key_id = REDACTED
aws_secret_access_key = REDACTED

... and two profiles in ~/.aws/config:

[default]

[bayne-family]

I get the following error:

CL-USER> (ql:quickload :ironclad)
(:IRONCLAD)
CL-USER> (ql:quickload :aws-sdk)
To load "aws-sdk":
  Load 1 ASDF system:
    aws-sdk
; Loading "aws-sdk"
..................................................
[package aws-sdk/credentials/shared]..............
[package aws-sdk/credentials].....................
[package aws-sdk/session].........................
[package aws-sdk/api]

Profile 'default' doesn't exist in '/home/duncan/.aws/config'.
   [Condition of type SIMPLE-ERROR]

Backtrace:
  0: (AWS-SDK/UTILS/CONFIG:READ-FROM-FILE #P"/home/duncan/.aws/config" :PROFILE "default")
  1: (AWS-SDK/SESSION::AWS-REGION)

Note that the AWS CLI works fine:

➜  ~ export AWS_PROFILE=bayne-family
➜  ~ aws s3 ls
2018-05-10 17:14:57 bayne-misc-backups
2017-11-26 23:43:11 bayne-server-backup
2018-05-09 17:18:54 duncan.bayne.id.au
fukamachi commented 6 years ago

Thanks for the report. I added another commit to #5. It depends on the latest parser.ini (v0.7). Could you try it again?

duncan-bayne commented 6 years ago

Thanks. I cloned the latest parser.ini into ~/common-lisp/parser.ini and it gets further. But now it's failing in aws-sdk-lisp again:

CL-USER> (ql:quickload :ironclad)
(:IRONCLAD)
CL-USER> (ql:quickload :aws-sdk)
(:AWS-SDK)
CL-USER> (setq aws-sdk:*aws-profile* "bayne-family")
"bayne-family"
CL-USER> (ql:quickload :aws-sdk/services/s3)
To load "aws-sdk/services/s3":
  Load 1 ASDF system:
    aws-sdk/services/s3
; Loading "aws-sdk/services/s3"
[package aws-sdk/services/s3].....................
..................................................
..................................................
......
Cannot DEFTYPE TYPE because TYPE has been declared as a declaration name
   [Condition of type SIMPLE-ERROR]

Backtrace:
  0: (CCL::CHECK-DECLARATION-REDEFINITION TYPE DEFTYPE)
  1: (CCL::%DEFTYPE TYPE #<Compiled-function TYPE (Non-Global)  #x30200409BA6F> NIL)
  2: (CCL::%COMPILE-TIME-EVAL (CCL::%DEFTYPE 'TYPE (NFUNCTION TYPE (LAMBDA (#:WHOLE27721 #:ENVIRONMENT27722) (DECLARE #) (BLOCK TYPE #))) NIL) #<CCL::LEXICAL-ENVIRONMENT #x3020036FAF9D>)
  3: (CCL::FCOMP-FORM-1 (CCL::%DEFTYPE 'TYPE (NFUNCTION TYPE (LAMBDA (#:WHOLE27721 #:ENVIRONMENT27722) (DECLARE #) (BLOCK TYPE #))) NIL) #<CCL::LEXICAL-ENVIRONMENT #x3020036FAF9D> :COMPILE-TIME-TOO)
  4: (CCL::FCOMP-FORM (CCL::%DEFTYPE 'TYPE (NFUNCTION TYPE (LAMBDA (#:WHOLE27721 #:ENVIRONMENT27722) (DECLARE #) (BLOCK TYPE #))) NIL) #<CCL::LEXICAL-ENVIRONMENT #x3020036FAF9D> :COMPILE-TIME-TOO)
  5: (CCL::FCOMP-FORM-LIST ((CCL::%DEFTYPE 'TYPE (NFUNCTION TYPE (LAMBDA # # #)) NIL)) #<CCL::LEXICAL-ENVIRONMENT #x3020036FAF9D> :COMPILE-TIME-TOO)
  6: (CCL::FCOMP-EVAL-WHEN (EVAL-WHEN (:COMPILE-TOPLEVEL :LOAD-TOPLEVEL :EXECUTE) (CCL::%DEFTYPE 'TYPE (NFUNCTION TYPE (LAMBDA # # #)) NIL)) #<CCL::LEXICAL-ENVIRONMENT #x3020036FAF9D> :NOT-COMPILE-TIME)
  7: (CCL::FCOMP-FORM (EVAL-WHEN (:COMPILE-TOPLEVEL :LOAD-TOPLEVEL :EXECUTE) (CCL::%DEFTYPE 'TYPE (NFUNCTION TYPE (LAMBDA # # #)) NIL)) #<CCL::LEXICAL-ENVIRONMENT #x3020036FAF9D> :NOT-COMPILE-TIME)
  8: (CCL::FCOMP-FORM-LIST ((EVAL-WHEN (:COMPILE-TOPLEVEL) (CCL::NOTE-TYPE-INFO 'TYPE 'CCL::MACRO #<CCL::LEXICAL-ENVIRONMENT #x3020036FAF9D>)) ..)) #<CCL::LEXICAL-ENVIRONMENT #x3020036FAF9D> :NOT-COMPILE-T..
  9: (CCL::FCOMP-FORM (PROGN (EVAL-WHEN (:COMPILE-TOPLEVEL) (CCL::NOTE-TYPE-INFO 'TYPE 'CCL::MACRO #<CCL::LEXICAL-ENVIRONMENT #x3020036FAF9D>)) ..) #<CCL::LEXICAL-ENVIRONMENT #x3020036FAF9D> :NOT-COMPILE-T..
 10: (CCL::FCOMP-FORM (DEFTYPE TYPE () 'STRING) #<CCL::LEXICAL-ENVIRONMENT #x3020036FAF9D> :NOT-COMPILE-TIME)
 11: (CCL::FCOMP-READ-LOOP "/usr/home/duncan/common-lisp/aws-sdk-lisp/services/s3.lisp" "/usr/home/duncan/common-lisp/aws-sdk-lisp/services/s3.lisp" 0 #<CCL::LEXICAL-ENVIRONMENT #x3020036FAF9D> :NOT-COMPIL..
 12: (CCL::FCOMP-FILE "/usr/home/duncan/common-lisp/aws-sdk-lisp/services/s3.lisp" "/usr/home/duncan/common-lisp/aws-sdk-lisp/services/s3.lisp" 0 #<CCL::LEXICAL-ENVIRONMENT #x3020036FAF9D>)
fukamachi commented 6 years ago

Hmm, It looks like another issue. Perhaps, type cannot be declared as a type with Clozure CL? It also causes a compilation error with SBCL.

duncan-bayne commented 6 years ago

Would you like me to open a separate issue for this one?

fukamachi commented 6 years ago

Oh, would be better for me!

duncan-bayne commented 6 years ago

Okay cool. I'll close this one since https://github.com/fukamachi/aws-sdk-lisp/pull/5 seems to fix it, and open a new one.