Put it in a result
diff --git a/openstack/compute/v2/servers/requests.go b/openstack/compute/v2/servers/requests.go
index 8182c72..0354ea2 100644
--- a/openstack/compute/v2/servers/requests.go
+++ b/openstack/compute/v2/servers/requests.go
@@ -569,8 +569,8 @@
}
// Rescue instructs the provider to place the server into RESCUE mode.
-func Rescue(client *gophercloud.ServiceClient, id string, opts RescueOptsBuilder) ActionResult {
- var result ActionResult
+func Rescue(client *gophercloud.ServiceClient, id string, opts RescueOptsBuilder) RescueResult {
+ var result RescueResult
if id == "" {
result.Err = fmt.Errorf("ID is required")
@@ -583,6 +583,7 @@
}
_, result.Err = perigee.Request("POST", actionURL(client, id), perigee.Options{
+ Results: &result.Body,
ReqBody: &reqBody,
MoreHeaders: client.AuthenticatedHeaders(),
OkCodes: []int{200},
diff --git a/openstack/compute/v2/servers/results.go b/openstack/compute/v2/servers/results.go
index 53946ba..c473450 100644
--- a/openstack/compute/v2/servers/results.go
+++ b/openstack/compute/v2/servers/results.go
@@ -54,6 +54,12 @@
gophercloud.ErrResult
}
+// RescueResult represents teh result of a server rescue operation
+type RescueResult struct {
+ ActionResult
+ AdminPass string `mapstructure:"adminPass"`
+}
+
// Server exposes only the standard OpenStack fields corresponding to a given server on the user's account.
type Server struct {
// ID uniquely identifies this server amongst all other servers, including those not accessible to the current tenant.