set ServiceClient field to nil before unmarshaling (#59)
diff --git a/openstack/compute/v2/servers/requests.go b/openstack/compute/v2/servers/requests.go
index 6e23ada..9be6cc5 100644
--- a/openstack/compute/v2/servers/requests.go
+++ b/openstack/compute/v2/servers/requests.go
@@ -182,6 +182,8 @@
// ToServerCreateMap assembles a request body based on the contents of a CreateOpts.
func (opts CreateOpts) ToServerCreateMap() (map[string]interface{}, error) {
+ sc := opts.ServiceClient
+ opts.ServiceClient = nil
b, err := gophercloud.BuildRequestBody(opts, "")
if err != nil {
return nil, err
@@ -224,12 +226,12 @@
err.Argument = "ImageRef/ImageName"
return nil, err
}
- if opts.ServiceClient == nil {
+ if sc == nil {
err := ErrNoClientProvidedForIDByName{}
err.Argument = "ServiceClient"
return nil, err
}
- imageID, err := images.IDFromName(opts.ServiceClient, opts.ImageName)
+ imageID, err := images.IDFromName(sc, opts.ImageName)
if err != nil {
return nil, err
}
@@ -243,12 +245,12 @@
err.Argument = "FlavorRef/FlavorName"
return nil, err
}
- if opts.ServiceClient == nil {
+ if sc == nil {
err := ErrNoClientProvidedForIDByName{}
err.Argument = "ServiceClient"
return nil, err
}
- flavorID, err := flavors.IDFromName(opts.ServiceClient, opts.FlavorName)
+ flavorID, err := flavors.IDFromName(sc, opts.FlavorName)
if err != nil {
return nil, err
}