blob: acfc80282fa19b2bc716a1206f9c68f4000fec6b [file] [log] [blame]
Samuel A. Falvo IIfca35b72013-07-02 18:30:28 -07001package main
2
3import (
4 "fmt"
5 "github.com/rackspace/gophercloud"
6 "os"
Samuel A. Falvo II02f5e832013-07-10 13:52:27 -07007 "flag"
Samuel A. Falvo IIfca35b72013-07-02 18:30:28 -07008)
9
Samuel A. Falvo II02f5e832013-07-10 13:52:27 -070010var quiet = flag.Bool("quiet", false, "Quiet mode, for acceptance testing. $? still indicates errors though.")
11
Samuel A. Falvo IIfca35b72013-07-02 18:30:28 -070012func main() {
13 provider := os.Getenv("SDK_PROVIDER")
14 username := os.Getenv("SDK_USERNAME")
15 password := os.Getenv("SDK_PASSWORD")
16
17 if (provider == "") || (username == "") || (password == "") {
18 fmt.Fprintf(os.Stderr, "One or more of the following environment variables aren't set:\n")
19 fmt.Fprintf(os.Stderr, " SDK_PROVIDER=\"%s\"\n", provider)
20 fmt.Fprintf(os.Stderr, " SDK_USERNAME=\"%s\"\n", username)
21 fmt.Fprintf(os.Stderr, " SDK_PASSWORD=\"%s\"\n", password)
22 os.Exit(1)
23 }
24
Samuel A. Falvo II02f5e832013-07-10 13:52:27 -070025 flag.Parse()
26
Samuel A. Falvo IIfca35b72013-07-02 18:30:28 -070027 acc, err := gophercloud.Authenticate(
28 provider,
29 gophercloud.AuthOptions{
30 Username: username,
31 Password: password,
32 },
33 )
34 if err != nil {
35 panic(err)
36 }
37
Samuel A. Falvo II1dd740a2013-07-08 15:48:40 -070038 api, err := gophercloud.ServersApi(acc, gophercloud.ApiCriteria{
Samuel A. Falvo IIfca35b72013-07-02 18:30:28 -070039 Name: "cloudServersOpenStack",
40 Region: "DFW",
41 VersionId: "2",
42 UrlChoice: gophercloud.PublicURL,
43 })
44 if err != nil {
45 panic(err)
46 }
47
48 servers, err := api.ListServers()
49 if err != nil {
50 panic(err)
51 }
52
Samuel A. Falvo II02f5e832013-07-10 13:52:27 -070053 if !*quiet {
54 for _, s := range servers {
55 fmt.Printf("%s\n", s.Id)
56 }
Samuel A. Falvo IIfca35b72013-07-02 18:30:28 -070057 }
58}