github.com/chnsz/golangsdk@v0.0.0-20240506093406-85a3fbfa605b/openstack/geminidb/v3/flavors/results.go (about)

     1  package flavors
     2  
     3  import (
     4  	"github.com/chnsz/golangsdk/pagination"
     5  )
     6  
     7  type Flavor struct {
     8  	EngineName       string   `json:"engine_name"`
     9  	EngineVersion    string   `json:"engine_version"`
    10  	Vcpus            string   `json:"vcpus"`
    11  	Ram              string   `json:"ram"`
    12  	SpecCode         string   `json:"spec_code"`
    13  	AvailabilityZone []string `json:"availability_zone"`
    14  	// AZ status
    15  	AzStatus map[string]string `json:"az_status"`
    16  }
    17  
    18  type ListFlavorResponse struct {
    19  	Flavors    []Flavor `json:"flavors"`
    20  	TotalCount int      `json:"total_count"`
    21  }
    22  
    23  type FlavorPage struct {
    24  	pagination.SinglePageBase
    25  }
    26  
    27  func (r FlavorPage) IsEmpty() (bool, error) {
    28  	data, err := ExtractFlavors(r)
    29  	if err != nil {
    30  		return false, err
    31  	}
    32  	return len(data.Flavors) == 0, err
    33  }
    34  
    35  func ExtractFlavors(r pagination.Page) (ListFlavorResponse, error) {
    36  	var s ListFlavorResponse
    37  	err := (r.(FlavorPage)).ExtractInto(&s)
    38  	return s, err
    39  }