Documentation ¶
Index ¶
Constants ¶
const ( AuthLegacy = AuthMode(iota) // Legacy authentication AuthUserPass // Username + password authentication AuthKeyPair // Access/secret key pair authentication AuthUserPassV3 // Username + password authentication (v3 API) )
Variables ¶
var ( // CredEnvAuthURL is used for Credentials.URL. CredEnvAuthURL = []string{ "OS_AUTH_URL", } // CredEnvUser is used for Credentials.User. CredEnvUser = []string{ "OS_USERNAME", "NOVA_USERNAME", "OS_ACCESS_KEY", "NOVA_API_KEY", } // CredEnvSecrets is used for Credentials.Secrets. CredEnvSecrets = []string{ "OS_PASSWORD", "NOVA_PASSWORD", "OS_SECRET_KEY", "AWS_SECRET_ACCESS_KEY", "EC2_SECRET_KEYS", } // CredEnvRegion is used for Credentials.Region. CredEnvRegion = []string{ "OS_REGION_NAME", "NOVA_REGION", } // CredEnvTenantName is used for Credentials.TenantName. CredEnvTenantName = []string{ "OS_PROJECT_NAME", "OS_TENANT_NAME", "NOVA_PROJECT_ID", } // The following env vars are set according to what type // of keystone v3 domain authorization is required. CredEnvDefaultDomainName = []string{ "OS_DEFAULT_DOMAIN_NAME", } CredEnvProjectDomainName = []string{ "OS_PROJECT_DOMAIN_NAME", } CredEnvUserDomainName = []string{ "OS_USER_DOMAIN_NAME", } CredEnvDomainName = []string{ "OS_DOMAIN_NAME", } )
The following variables hold the names of environment variables that are used by CredentialsFromEnv to populate a Credentials value. The most preferred names are at the start of the slices.
Functions ¶
This section is empty.
Types ¶
type AuthDetails ¶
type AuthDetails struct { Token string TenantId string UserId string Domain string RegionServiceURLs map[string]ServiceURLs // Service type to endpoint URLs for each region }
AuthDetails defines all the necessary information, needed for an authenticated session with OpenStack.
type AuthMode ¶
type AuthMode int
AuthMode defines the authentication method to use (see Auth* constants below).
type AuthOption ¶
type AuthOptions ¶
type AuthOptions []AuthOption
func FetchAuthOptions ¶
func FetchAuthOptions(url string, client *goosehttp.Client, compatLogger logging.CompatLogger) (AuthOptions, error)
FetchAuthOptions returns the authentication options advertised by this openstack.
type Authenticator ¶
type Authenticator interface {
Auth(creds *Credentials) (*AuthDetails, error)
}
Authenticator is implemented by each authentication method.
func NewAuthenticator ¶
func NewAuthenticator(authMode AuthMode, httpClient *goosehttp.Client) Authenticator
NewAuthenticator creates an authenticator matching the supplied AuthMode. The httpclient is allowed to be nil, the Authenticator will just use the default http.Client
type Credentials ¶
type Credentials struct { URL string // The URL to authenticate against User string // The username to authenticate as Secrets string // The secrets to pass Region string // Region to send requests to TenantName string // The project name for this connection Domain string `credentials:"optional"` // The domain for authorization (new in keystone v3) UserDomain string `credentials:"optional"` // The owning domain for this user (new in keystone v3) ProjectDomain string `credentials:"optional"` // The project domain for authorization (new in keystone v3) }
Credentials defines necessary parameters for authentication.
func CompleteCredentialsFromEnv ¶
func CompleteCredentialsFromEnv() (cred *Credentials, err error)
CompleteCredentialsFromEnv gets and verifies all the required authentication parameters have values in the environment.
func CredentialsFromEnv ¶
func CredentialsFromEnv() *Credentials
CredentialsFromEnv creates and initializes the credentials from the environment variables.
type KeyPair ¶
type KeyPair struct {
// contains filtered or unexported fields
}
KeyPair allows OpenStack cloud authentication using an access and secret key.
It implements Authenticator interface by providing the Auth method.
func (*KeyPair) Auth ¶
func (u *KeyPair) Auth(creds *Credentials) (*AuthDetails, error)
type Legacy ¶
type Legacy struct {
// contains filtered or unexported fields
}
func (*Legacy) Auth ¶
func (l *Legacy) Auth(creds *Credentials) (*AuthDetails, error)
type ServiceURLs ¶
type UserPass ¶
type UserPass struct {
// contains filtered or unexported fields
}
func (*UserPass) Auth ¶
func (u *UserPass) Auth(creds *Credentials) (*AuthDetails, error)
type V3UserPass ¶
type V3UserPass struct {
// contains filtered or unexported fields
}
V3UserPass is an Authenticator that will perform username + password authentication using the v3 protocol.
func (*V3UserPass) Auth ¶
func (u *V3UserPass) Auth(creds *Credentials) (*AuthDetails, error)
Auth performs a v3 username + password authentication request using the values supplied in creds.