more error types for compute v2
diff --git a/openstack/compute/v2/extensions/floatingips/requests.go b/openstack/compute/v2/extensions/floatingips/requests.go
index d99033e..00b2520 100644
--- a/openstack/compute/v2/extensions/floatingips/requests.go
+++ b/openstack/compute/v2/extensions/floatingips/requests.go
@@ -1,8 +1,6 @@
package floatingips
import (
- "errors"
-
"github.com/gophercloud/gophercloud"
"github.com/gophercloud/gophercloud/pagination"
)
@@ -41,7 +39,10 @@
// ToFloatingIPCreateMap constructs a request body from CreateOpts.
func (opts CreateOpts) ToFloatingIPCreateMap() (map[string]interface{}, error) {
if opts.Pool == "" {
- return nil, errors.New("Missing field required for floating IP creation: Pool")
+ err := gophercloud.ErrMissingInput{}
+ err.Function = "floatingips.ToFloatingIPCreateMap"
+ err.Argument = "floatingips.CreateOpts.Pool"
+ return nil, err
}
return map[string]interface{}{"pool": opts.Pool}, nil
@@ -50,11 +51,17 @@
// ToAssociateMap constructs a request body from AssociateOpts.
func (opts AssociateOpts) ToAssociateMap() (map[string]interface{}, error) {
if opts.ServerID == "" {
- return nil, errors.New("Required field missing for floating IP association: ServerID")
+ err := gophercloud.ErrMissingInput{}
+ err.Function = "floatingips.ToAssociateMap"
+ err.Argument = "floatingips.AssociateOpts.ServerID"
+ return nil, err
}
if opts.FloatingIP == "" {
- return nil, errors.New("Required field missing for floating IP association: FloatingIP")
+ err := gophercloud.ErrMissingInput{}
+ err.Function = "floatingips.ToAssociateMap"
+ err.Argument = "floatingips.AssociateOpts.FloatingIP"
+ return nil, err
}
associateInfo := map[string]interface{}{