| Total Lines | 54 |
| Duplicated Lines | 0 % |
| Changes | 0 | ||
| 1 | package providers |
||
| 2 | |||
| 3 | import ( |
||
| 4 | "fmt" |
||
| 5 | "os" |
||
| 6 | ) |
||
| 7 | |||
| 8 | type EnvironmentVariableCredentialsProvider struct { |
||
| 9 | } |
||
| 10 | |||
| 11 | type EnvironmentVariableCredentialsProviderBuilder struct { |
||
| 12 | provider *EnvironmentVariableCredentialsProvider |
||
| 13 | } |
||
| 14 | |||
| 15 | func NewEnvironmentVariableCredentialsProviderBuilder() *EnvironmentVariableCredentialsProviderBuilder { |
||
| 16 | return &EnvironmentVariableCredentialsProviderBuilder{ |
||
| 17 | provider: &EnvironmentVariableCredentialsProvider{}, |
||
| 18 | } |
||
| 19 | } |
||
| 20 | |||
| 21 | func (builder *EnvironmentVariableCredentialsProviderBuilder) Build() (provider *EnvironmentVariableCredentialsProvider, err error) { |
||
| 22 | provider = builder.provider |
||
| 23 | return |
||
| 24 | } |
||
| 25 | |||
| 26 | func (provider *EnvironmentVariableCredentialsProvider) GetCredentials() (cc *Credentials, err error) { |
||
| 27 | accessKeyId := os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID") |
||
| 28 | |||
| 29 | if accessKeyId == "" { |
||
| 30 | err = fmt.Errorf("unable to get credentials from enviroment variables, Access key ID must be specified via environment variable (ALIBABA_CLOUD_ACCESS_KEY_ID)") |
||
| 31 | return |
||
| 32 | } |
||
| 33 | |||
| 34 | accessKeySecret := os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET") |
||
| 35 | |||
| 36 | if accessKeySecret == "" { |
||
| 37 | err = fmt.Errorf("unable to get credentials from enviroment variables, Access key secret must be specified via environment variable (ALIBABA_CLOUD_ACCESS_KEY_SECRET)") |
||
| 38 | return |
||
| 39 | } |
||
| 40 | |||
| 41 | securityToken := os.Getenv("ALIBABA_CLOUD_SECURITY_TOKEN") |
||
| 42 | |||
| 43 | cc = &Credentials{ |
||
| 44 | AccessKeyId: accessKeyId, |
||
| 45 | AccessKeySecret: accessKeySecret, |
||
| 46 | SecurityToken: securityToken, |
||
| 47 | ProviderName: provider.GetProviderName(), |
||
| 48 | } |
||
| 49 | |||
| 50 | return |
||
| 51 | } |
||
| 52 | |||
| 53 | func (provider *EnvironmentVariableCredentialsProvider) GetProviderName() string { |
||
| 54 | return "env" |
||
| 55 | } |
||
| 56 |