mirror of
https://github.com/opentofu/opentofu.git
synced 2025-01-28 17:34:24 -06:00
821d0401bc
This new functionality will be used as part of implementing the "terraform login" and "terraform logout" commands. As of this commit, the storage codepaths are all just stubs. Subsequent commits will implement these new methods for each of the different physical credentials sources.
39 lines
1.1 KiB
Go
39 lines
1.1 KiB
Go
package auth
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/hashicorp/terraform/svchost"
|
|
)
|
|
|
|
// StaticCredentialsSource is a credentials source that retrieves credentials
|
|
// from the provided map. It returns nil if a requested hostname is not
|
|
// present in the map.
|
|
//
|
|
// The caller should not modify the given map after passing it to this function.
|
|
func StaticCredentialsSource(creds map[svchost.Hostname]map[string]interface{}) CredentialsSource {
|
|
return staticCredentialsSource(creds)
|
|
}
|
|
|
|
type staticCredentialsSource map[svchost.Hostname]map[string]interface{}
|
|
|
|
func (s staticCredentialsSource) ForHost(host svchost.Hostname) (HostCredentials, error) {
|
|
if s == nil {
|
|
return nil, nil
|
|
}
|
|
|
|
if m, exists := s[host]; exists {
|
|
return HostCredentialsFromMap(m), nil
|
|
}
|
|
|
|
return nil, nil
|
|
}
|
|
|
|
func (s staticCredentialsSource) StoreForHost(host svchost.Hostname, credentials HostCredentialsWritable) error {
|
|
return fmt.Errorf("can't store new credentials in a static credentials source")
|
|
}
|
|
|
|
func (s staticCredentialsSource) ForgetForHost(host svchost.Hostname) error {
|
|
return fmt.Errorf("can't discard credentials from a static credentials source")
|
|
}
|