more error types for compute v2
diff --git a/openstack/compute/v2/servers/errors.go b/openstack/compute/v2/servers/errors.go
index ebfcdcd..c9f0e3c 100644
--- a/openstack/compute/v2/servers/errors.go
+++ b/openstack/compute/v2/servers/errors.go
@@ -8,7 +8,7 @@
 
 // ErrNeitherImageIDNorImageNameProvided is the error when neither the image
 // ID nor the image name is provided for a server operation
-type ErrNeitherImageIDNorImageNameProvided struct{ *gophercloud.ErrMissingInput }
+type ErrNeitherImageIDNorImageNameProvided struct{ gophercloud.ErrMissingInput }
 
 func (e ErrNeitherImageIDNorImageNameProvided) Error() string {
 	return "One and only one of the image ID and the image name must be provided."
@@ -16,40 +16,46 @@
 
 // ErrNeitherFlavorIDNorFlavorNameProvided is the error when neither the flavor
 // ID nor the flavor name is provided for a server operation
-type ErrNeitherFlavorIDNorFlavorNameProvided struct{ *gophercloud.ErrMissingInput }
+type ErrNeitherFlavorIDNorFlavorNameProvided struct{ gophercloud.ErrMissingInput }
 
 func (e ErrNeitherFlavorIDNorFlavorNameProvided) Error() string {
 	return "One and only one of the flavor ID and the flavor name must be provided."
 }
 
+type ErrNoClientProvidedForIDByName struct{ gophercloud.ErrMissingInput }
+
+func (e ErrNoClientProvidedForIDByName) Error() string {
+	return "A service client must be provided to find a resource ID by name."
+}
+
 // ErrInvalidHowParameterProvided is the error when an unknown value is given
 // for the `how` argument
-type ErrInvalidHowParameterProvided struct{ *gophercloud.ErrInvalidInput }
+type ErrInvalidHowParameterProvided struct{ gophercloud.ErrInvalidInput }
 
 // ErrNoAdminPassProvided is the error when an administrative password isn't
 // provided for a server operation
-type ErrNoAdminPassProvided struct{ *gophercloud.ErrMissingInput }
+type ErrNoAdminPassProvided struct{ gophercloud.ErrMissingInput }
 
 // ErrNoImageIDProvided is the error when an image ID isn't provided for a server
 // operation
-type ErrNoImageIDProvided struct{ *gophercloud.ErrMissingInput }
+type ErrNoImageIDProvided struct{ gophercloud.ErrMissingInput }
 
 // ErrNoIDProvided is the error when a server ID isn't provided for a server
 // operation
-type ErrNoIDProvided struct{ *gophercloud.ErrMissingInput }
+type ErrNoIDProvided struct{ gophercloud.ErrMissingInput }
 
 // ErrServer is a generic error type for servers HTTP operations.
 type ErrServer struct {
-	*gophercloud.ErrUnexpectedResponseCode
+	gophercloud.ErrUnexpectedResponseCode
 	ID string
 }
 
-func (se *ErrServer) Error() string {
+func (se ErrServer) Error() string {
 	return fmt.Sprintf("Error while executing HTTP request for server [%s]", se.ID)
 }
 
 // Error404 overrides the generic 404 error message.
-func (se *ErrServer) Error404(e *gophercloud.ErrUnexpectedResponseCode) error {
+func (se ErrServer) Error404(e gophercloud.ErrUnexpectedResponseCode) error {
 	se.ErrUnexpectedResponseCode = e
 	return &ErrServerNotFound{se}
 }
@@ -57,9 +63,9 @@
 // ErrServerNotFound is the error when a 404 is received during server HTTP
 // operations.
 type ErrServerNotFound struct {
-	*ErrServer
+	ErrServer
 }
 
-func (e *ErrServerNotFound) Error() string {
+func (e ErrServerNotFound) Error() string {
 	return fmt.Sprintf("I couldn't find server [%s]", e.ID)
 }