blob: 06c541bb731d2f34a52aeeaf21e9e371919a39fd [file] [log] [blame]
Samuel A. Falvo IIe91ff6d2013-07-11 15:46:10 -07001package main
2
3import (
4 "flag"
5 "fmt"
Samuel A. Falvo IIe91ff6d2013-07-11 15:46:10 -07006 "github.com/rackspace/gophercloud"
7)
8
Samuel A. Falvo II4b0ba752013-07-11 17:42:26 -07009var provider, username, password string
10
Samuel A. Falvo IIe91ff6d2013-07-11 15:46:10 -070011var region, serverName, imageRef, flavorRef *string
12var adminPass = flag.String("a", "", "Administrator password (auto-assigned if none)")
Samuel A. Falvo II4b0ba752013-07-11 17:42:26 -070013var quiet = flag.Bool("quiet", false, "Quiet mode for acceptance tests. $? non-zero if error.")
Samuel A. Falvo IIe91ff6d2013-07-11 15:46:10 -070014
Samuel A. Falvo II4b0ba752013-07-11 17:42:26 -070015func configure() {
16 provider, username, password = getCredentials()
Samuel A. Falvo IIe91ff6d2013-07-11 15:46:10 -070017 region = flag.String("r", "DFW", "Rackspace region in which to create the server")
Samuel A. Falvo IIe3b2d7a2013-07-12 11:08:02 -070018 serverName = flag.String("n", randomString("ACPTTEST--", 16), "Server name (what you see in the control panel)")
Samuel A. Falvo II4b0ba752013-07-11 17:42:26 -070019 imageRef = flag.String("i", "", "ID of image to deploy onto the server")
20 flavorRef = flag.String("f", "", "Flavor of server to deploy image upon")
Samuel A. Falvo IIe91ff6d2013-07-11 15:46:10 -070021
22 flag.Parse()
Samuel A. Falvo II4b0ba752013-07-11 17:42:26 -070023}
Samuel A. Falvo IIe91ff6d2013-07-11 15:46:10 -070024
Samuel A. Falvo II4b0ba752013-07-11 17:42:26 -070025func main() {
26 configure()
Samuel A. Falvo IIe91ff6d2013-07-11 15:46:10 -070027
28 auth, err := gophercloud.Authenticate(
29 provider,
30 gophercloud.AuthOptions{
31 Username: username,
32 Password: password,
33 },
34 )
35 if err != nil {
36 panic(err)
37 }
38
39 servers, err := gophercloud.ServersApi(auth, gophercloud.ApiCriteria{
40 Name: "cloudServersOpenStack",
41 Region: *region,
42 VersionId: "2",
43 UrlChoice: gophercloud.PublicURL,
44 })
45 if err != nil {
46 panic(err)
47 }
48
Samuel A. Falvo II80699602013-07-25 23:35:57 -070049 _, err = createServer(servers, *imageRef, *flavorRef, *serverName, *adminPass)
Samuel A. Falvo IIe91ff6d2013-07-11 15:46:10 -070050 if err != nil {
51 panic(err)
52 }
53
54 allServers, err := servers.ListServers()
55 if err != nil {
56 panic(err)
57 }
58
Samuel A. Falvo II4b0ba752013-07-11 17:42:26 -070059 if !*quiet {
60 fmt.Printf("ID,Name,Status,Progress\n")
61 for _, i := range allServers {
62 fmt.Printf("%s,\"%s\",%s,%d\n", i.Id, i.Name, i.Status, i.Progress)
63 }
Samuel A. Falvo IIe91ff6d2013-07-11 15:46:10 -070064 }
65}