本文整理汇总了Golang中github.com/juju/juju/cloud.Credential.Label方法的典型用法代码示例。如果您正苦于以下问题:Golang Credential.Label方法的具体用法?Golang Credential.Label怎么用?Golang Credential.Label使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/juju/juju/cloud.Credential
的用法示例。
在下文中一共展示了Credential.Label方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: detectCredential
func (c OpenstackCredentials) detectCredential() (*cloud.Credential, string, string, error) {
creds := identity.CredentialsFromEnv()
if creds.TenantName == "" {
return nil, "", "", errors.NewNotFound(nil, "OS_TENANT_NAME environment variable not set")
}
if creds.User == "" {
return nil, "", "", errors.NewNotFound(nil, "neither OS_USERNAME nor OS_ACCESS_KEY environment variable not set")
}
if creds.Secrets == "" {
return nil, "", "", errors.NewNotFound(nil, "neither OS_PASSWORD nor OS_SECRET_KEY environment variable not set")
}
user, err := utils.LocalUsername()
if err != nil {
return nil, "", "", errors.Trace(err)
}
// If OS_USERNAME or NOVA_USERNAME is set, assume userpass.
var credential cloud.Credential
if os.Getenv("OS_USERNAME") != "" || os.Getenv("NOVA_USERNAME") != "" {
user = creds.User
credential = cloud.NewCredential(
cloud.UserPassAuthType,
map[string]string{
credAttrUserName: creds.User,
credAttrPassword: creds.Secrets,
credAttrTenantName: creds.TenantName,
credAttrDomainName: creds.DomainName,
},
)
} else {
credential = cloud.NewCredential(
cloud.AccessKeyAuthType,
map[string]string{
credAttrAccessKey: creds.User,
credAttrSecretKey: creds.Secrets,
credAttrTenantName: creds.TenantName,
},
)
}
region := creds.Region
if region == "" {
region = "<unspecified>"
}
credential.Label = fmt.Sprintf("openstack region %q project %q user %q", region, creds.TenantName, user)
return &credential, user, creds.Region, nil
}