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  }