Implement Rebuild server functionality.
I thought I'd had this in already. Apparently not.
diff --git a/servers.go b/servers.go
index e127e05..85f49ff 100644
--- a/servers.go
+++ b/servers.go
@@ -267,6 +267,27 @@
return svr, err
}
+// See the CloudServersProvider interface for details.
+func (gsp *genericServersProvider) RebuildServer (id string, ns NewServer) (*Server, error) {
+ var s *Server
+
+ err := gsp.context.WithReauth(gsp.access, func() error {
+ ep := fmt.Sprintf("%s/servers/%s/action", gsp.endpoint, id)
+ return perigee.Post(ep, perigee.Options{
+ ReqBody: &struct {
+ Rebuild *NewServer `json:"rebuild"`
+ }{&ns},
+ Results: &struct{ Server **Server }{&s},
+ MoreHeaders: map[string]string{
+ "X-Auth-Token": gsp.access.AuthToken(),
+ },
+ OkCodes: []int{202},
+ })
+ })
+
+ return s, err
+}
+
// RaxBandwidth provides measurement of server bandwidth consumed over a given audit interval.
type RaxBandwidth struct {
AuditPeriodEnd string `json:"audit_period_end"`