func main() { provider, authOptions, err := osutil.AuthOptions() if err != nil { panic(err) } _, err = gophercloud.Authenticate(provider, authOptions) if err != nil { panic(err) } }
func GetClient(project string, region string, cache_path string) (Client, error) { c := Client{} cache, err := config.LoadCredCache(cache_path) if err != nil { fmt.Println("unable to get cache") return c, err } c.cache = cache if region == "" { region = defaultRegion } c.region = region if c.cache.Rackspace.User == "" || c.cache.Rackspace.APIKey == "" { var rack_user string var rack_pass string fmt.Printf("rackspace user: "******"%s", &rack_user) if err != nil { return c, err } fmt.Printf("rackspace api key: ") _, err = fmt.Scanf("%s", &rack_pass) if err != nil { return c, err } c.cache.Rackspace.User = rack_user c.cache.Rackspace.APIKey = rack_pass c.cache.Save() if err != nil { return c, err } } ao := gophercloud.AuthOptions{ Username: c.cache.Rackspace.User, ApiKey: c.cache.Rackspace.APIKey, AllowReauth: true, } access, err := gophercloud.Authenticate("rackspace-us", ao) if err != nil { c.cache.Rackspace.User = "" c.cache.Rackspace.APIKey = "" c.cache.Save() return c, err } ac, err := gophercloud.PopulateApi("rackspace") if err != nil { return c, err } client, err := gophercloud.ServersApi(access, ac) if err != nil { return c, err } c.client = client return c, nil }
func main() { provider, username, password, _ := getCredentials() _, err := gophercloud.Authenticate( provider, gophercloud.AuthOptions{ Username: username, Password: password, }, ) if err != nil { panic(err) } }
// withIdentity authenticates the user against the provider's identity service, and provides an // accessor for additional services. func withIdentity(ar bool, f func(gophercloud.AccessProvider)) { provider, username, password, _ := getCredentials() acc, err := gophercloud.Authenticate( provider, gophercloud.AuthOptions{ Username: username, Password: password, AllowReauth: ar, }, ) if err != nil { panic(err) } f(acc) }
func main() { provider, username, _, apiKey := getCredentials() if !strings.Contains(provider, "rackspace") { fmt.Fprintf(os.Stdout, "Skipping test because provider doesn't support API_KEYs\n") return } _, err := gophercloud.Authenticate( provider, gophercloud.AuthOptions{ Username: username, ApiKey: apiKey, }, ) if err != nil { panic(err) } }