in credentials/providers/cli_profile.go [202:249]
func (provider *CLIProfileCredentialsProvider) GetCredentials() (cc *Credentials, err error) {
if provider.innerProvider == nil {
cfgPath := provider.profileFile
if cfgPath == "" {
homeDir := getHomePath()
if homeDir == "" {
err = fmt.Errorf("cannot found home dir")
return
}
cfgPath = path.Join(homeDir, ".aliyun/config.json")
}
conf, err1 := newConfigurationFromPath(cfgPath)
if err1 != nil {
err = err1
return
}
if provider.profileName == "" {
provider.profileName = conf.Current
}
provider.innerProvider, err = provider.getCredentialsProvider(conf, provider.profileName)
if err != nil {
return
}
}
innerCC, err := provider.innerProvider.GetCredentials()
if err != nil {
return
}
providerName := innerCC.ProviderName
if providerName == "" {
providerName = provider.innerProvider.GetProviderName()
}
cc = &Credentials{
AccessKeyId: innerCC.AccessKeyId,
AccessKeySecret: innerCC.AccessKeySecret,
SecurityToken: innerCC.SecurityToken,
ProviderName: fmt.Sprintf("%s/%s", provider.GetProviderName(), providerName),
}
return
}