blob: 48047269df6ea2376771a41c861d656465869dfd [file] [log] [blame]
Samuel A. Falvo II5c305e12013-07-25 19:19:43 -07001package main
2
3import (
4 "flag"
5 "fmt"
6 "github.com/rackspace/gophercloud"
7)
8
9var quiet = flag.Bool("quiet", false, "Quiet mode, for acceptance testing. $? still indicates errors though.")
10var serverId = flag.String("i", "", "ID of server whose admin password is to be changed.")
11var newPass = flag.String("p", "", "New password for the server.")
12
13func main() {
14 provider, username, password := getCredentials()
15 flag.Parse()
16
17 if *serverId == "" {
18 panic("Server ID expected [use -i option]")
19 }
20
21 if *newPass == "" {
22 panic("Password expected [use -p option]")
23 }
24
25 acc, err := gophercloud.Authenticate(
26 provider,
27 gophercloud.AuthOptions{
28 Username: username,
29 Password: password,
30 },
31 )
32 if err != nil {
33 panic(err)
34 }
35
36 api, err := gophercloud.ServersApi(acc, gophercloud.ApiCriteria{
37 Name: "cloudServersOpenStack",
38 Region: "DFW",
39 VersionId: "2",
40 UrlChoice: gophercloud.PublicURL,
41 })
42 if err != nil {
43 panic(err)
44 }
45
46 err = api.SetAdminPassword(*serverId, *newPass)
47 if err != nil {
48 panic(err)
49 }
50
51 if !*quiet {
52 fmt.Println("Password change request submitted.")
53 }
54}