Add update server call
diff --git a/openstack/compute/servers/requests.go b/openstack/compute/servers/requests.go
index 8506aac..385e3c2 100644
--- a/openstack/compute/servers/requests.go
+++ b/openstack/compute/servers/requests.go
@@ -78,3 +78,22 @@
 	return sr, err
 }
 
+// Update requests that various attributes of the indicated server be changed.
+func Update(c *Client, id string, opts map[string]interface{}) (ServerResult, error) {
+	var sr ServerResult
+
+	h, err := c.getUpdateHeaders()
+	if err != nil {
+		return nil, err
+	}
+
+	err = perigee.Put(c.getUpdateUrl(id), perigee.Options{
+		Results: &sr,
+		ReqBody: map[string]interface{}{
+			"server": opts,
+		},
+		MoreHeaders: h,
+	})
+	return sr, err
+}
+