github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/openstack/sharedfilesystems/v2/errors/errors.go (about) 1 package errors 2 3 import ( 4 "encoding/json" 5 "errors" 6 7 "github.com/vnpaycloud-console/gophercloud/v2" 8 ) 9 10 type ManilaError struct { 11 Code int `json:"code"` 12 Message string `json:"message"` 13 Details string `json:"details"` 14 } 15 16 type ErrorDetails map[string]ManilaError 17 18 // error types from provider_client.go 19 func ExtractErrorInto(rawError error, errorDetails *ErrorDetails) (err error) { 20 var codeError gophercloud.ErrUnexpectedResponseCode 21 if errors.As(rawError, &codeError) { 22 return json.Unmarshal(codeError.Body, errorDetails) 23 } else { 24 return errors.New("Unable to extract detailed error message") 25 } 26 }