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 }