github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/dataarts/v1.1/cluster/Get.go (about)

     1  package cluster
     2  
     3  import (
     4  	"net/http"
     5  
     6  	golangsdk "github.com/opentelekomcloud/gophertelekomcloud"
     7  	"github.com/opentelekomcloud/gophertelekomcloud/internal/extract"
     8  )
     9  
    10  func Get(client *golangsdk.ServiceClient, clusterId string) (*ClusterQuery, error) {
    11  	// GET /v1.1/{project_id}/clusters/{cluster_id}
    12  	raw, err := client.Get(client.ServiceURL("clusters", clusterId), nil, nil)
    13  	return extraResp(err, raw)
    14  }
    15  
    16  func extraResp(err error, raw *http.Response) (*ClusterQuery, error) {
    17  	if err != nil {
    18  		return nil, err
    19  	}
    20  
    21  	var res ClusterQuery
    22  	err = extract.Into(raw.Body, &res)
    23  	return &res, err
    24  }
    25  
    26  type ClusterQuery struct {
    27  	PublicEndpoint           string               `json:"public_endpoint"`
    28  	Instances                []DetailedInstances  `json:"instances"`
    29  	SecurityGroupId          string               `json:"security_group_id"`
    30  	SubnetId                 string               `json:"subnet_id"`
    31  	VpcId                    string               `json:"vpc_id"`
    32  	CustomerConfig           CustomerConfig       `json:"customerConfig"`
    33  	Datastore                Datastore            `json:"datastore"`
    34  	IsAutoOff                bool                 `json:"isAutoOff"`
    35  	PublicEndpointDomainName string               `json:"publicEndpointDomainName"`
    36  	BakExpectedStartTime     string               `json:"bakExpectedStartTime"`
    37  	BakKeepDay               string               `json:"bakKeepDay"`
    38  	MaintainWindow           MaintainWindow       `json:"maintainWindow"`
    39  	RecentEvent              int                  `json:"recentEvent"`
    40  	FlavorName               string               `json:"flavorName"`
    41  	AzName                   string               `json:"azName"`
    42  	EndpointDomainName       string               `json:"endpointDomainName"`
    43  	PublicEndpointStatus     PublicEndpointStatus `json:"publicEndpointStatus"`
    44  	IsScheduleBootOff        bool                 `json:"isScheduleBootOff"`
    45  	Namespace                string               `json:"namespace"`
    46  	EipId                    string               `json:"eipId"`
    47  	FailedReasons            FailedReasons        `json:"failedReasons"`
    48  	DbUser                   string               `json:"dbuser"`
    49  	Links                    []ClusterLinks       `json:"links"`
    50  	ClusterMode              string               `json:"clusterMode"`
    51  	Task                     ClusterTask          `json:"task"`
    52  	Created                  string               `json:"created"`
    53  	StatusDetail             string               `json:"statusDetail"`
    54  	ConfigStatus             string               `json:"config_status"`
    55  	ActionProgress           ActionProgress       `json:"actionProgress"`
    56  	Name                     string               `json:"name"`
    57  	Id                       string               `json:"id"`
    58  	IsFrozen                 string               `json:"isFrozen"`
    59  	Actions                  []string             `json:"actions"`
    60  	Updated                  string               `json:"updated"`
    61  	Status                   string               `json:"status"`
    62  }
    63  
    64  type DetailedInstances struct {
    65  	Flavor        Flavor         `json:"flavor"`
    66  	Volume        Volume         `json:"volume"`
    67  	Status        string         `json:"status"`
    68  	Actions       []string       `json:"actions"`
    69  	Type          string         `json:"string"`
    70  	Name          string         `json:"name"`
    71  	Id            string         `json:"id"`
    72  	IsFrozen      string         `json:"isFrozen"`
    73  	Components    string         `json:"components"`
    74  	ConfigStatus  string         `json:"config_status"`
    75  	Role          string         `json:"role"`
    76  	Group         string         `json:"group"`
    77  	Links         []ClusterLinks `json:"links"`
    78  	ParamsGroupId string         `json:"paramsGroupId"`
    79  	PublicIp      string         `json:"publicIp"`
    80  	ManageIp      string         `json:"manageIp"`
    81  	TrafficIp     string         `json:"trafficIp"`
    82  	ShardId       string         `json:"shard_id"`
    83  	ManageFixIp   string         `json:"manage_fix_ip"`
    84  	PrivateIp     string         `json:"private_ip"`
    85  	InternalIp    string         `json:"internal_ip"`
    86  	Resource      []Resource     `json:"resource"`
    87  }
    88  
    89  type Flavor struct {
    90  	Id    string         `json:"id"`
    91  	Links []ClusterLinks `json:"links"`
    92  }
    93  
    94  type Volume struct {
    95  	Type string `json:"type"`
    96  	Size int64  `json:"size"`
    97  }
    98  
    99  type Resource struct {
   100  	ResourceId   string `json:"resource_id"`
   101  	ResourceType string `json:"resource_type"`
   102  }
   103  
   104  type CustomerConfig struct {
   105  	FailureRemind   string `json:"failureRemind"`
   106  	ClusterName     string `json:"clusterName"`
   107  	ServiceProvider string `json:"serviceProvider"`
   108  	LocalDisk       string `json:"localDisk"`
   109  	Ssl             string `json:"ssl"`
   110  	CreateFrom      string `json:"createFrom"`
   111  	ResourceId      string `json:"resourceId"`
   112  	FlavorType      string `json:"flavorType"`
   113  	WorkSpaceId     string `json:"workSpaceId"`
   114  	Trial           string `json:"trial"`
   115  }
   116  
   117  type MaintainWindow struct {
   118  	Dat       string `json:"day"`
   119  	StartTime string `json:"startTime"`
   120  	EndTime   string `json:"endTime"`
   121  }
   122  
   123  type PublicEndpointStatus struct {
   124  	Status       string `json:"status"`
   125  	ErrorMessage string `json:"errorMessage"`
   126  }
   127  
   128  type FailedReasons struct {
   129  	CreateFailed CreateFailed `json:"CREATE_FAILED"`
   130  }
   131  
   132  type CreateFailed struct {
   133  	ErrorMsg  string `json:"errorMsg"`
   134  	ErrorCode string `json:"errorCode"`
   135  }
   136  
   137  type ClusterLinks struct {
   138  	Rel  string `json:"rel"`
   139  	Href string `json:"href"`
   140  }
   141  
   142  type ClusterTask struct {
   143  	Description string `json:"description"`
   144  	Name        string `json:"name"`
   145  	Id          string `json:"id"`
   146  }
   147  
   148  type ActionProgress struct {
   149  	Creating     string `json:"creating"`
   150  	Growing      string `json:"growing"`
   151  	Restoring    string `json:"restoring"`
   152  	Snapshotting string `json:"snapshotting"`
   153  	Repairing    string `json:"repairing"`
   154  }