github.com/gophercloud/gophercloud@v1.11.0/openstack/clustering/v1/clusters/doc.go (about) 1 /* 2 Package clusters provides information and interaction with the clusters through 3 the OpenStack Clustering service. 4 5 Example to Create a Cluster 6 7 createOpts := clusters.CreateOpts{ 8 Name: "test-cluster", 9 DesiredCapacity: 1, 10 ProfileID: "b7b870ee-d3c5-4a93-b9d7-846c53b2c2da", 11 } 12 13 cluster, err := clusters.Create(serviceClient, createOpts).Extract() 14 if err != nil { 15 panic(err) 16 } 17 18 Example to Get a Cluster 19 20 clusterName := "cluster123" 21 cluster, err := clusters.Get(serviceClient, clusterName).Extract() 22 if err != nil { 23 panic(err) 24 } 25 fmt.Printf("%+v\n", cluster) 26 27 Example to List Clusters 28 29 listOpts := clusters.ListOpts{ 30 Name: "testcluster", 31 } 32 33 allPages, err := clusters.List(serviceClient, listOpts).AllPages() 34 if err != nil { 35 panic(err) 36 } 37 38 allClusters, err := clusters.ExtractClusters(allPages) 39 if err != nil { 40 panic(err) 41 } 42 43 for _, cluster := range allClusters { 44 fmt.Printf("%+v\n", cluster) 45 } 46 47 Example to Update a Cluster 48 49 updateOpts := clusters.UpdateOpts{ 50 Name: "testcluster", 51 ProfileID: "b7b870ee-d3c5-4a93-b9d7-846c53b2c2da", 52 } 53 54 clusterID := "7d85f602-a948-4a30-afd4-e84f47471c15" 55 cluster, err := clusters.Update(serviceClient, clusterName, opts).Extract() 56 if err != nil { 57 panic(err) 58 } 59 fmt.Printf("%+v\n", cluster) 60 61 Example to Delete a Cluster 62 63 clusterID := "dc6d336e3fc4c0a951b5698cd1236ee" 64 err := clusters.Delete(serviceClient, clusterID).ExtractErr() 65 if err != nil { 66 panic(err) 67 } 68 69 Example to Resize a Cluster 70 71 number := 1 72 maxSize := 5 73 minSize := 1 74 minStep := 1 75 strict := true 76 77 resizeOpts := clusters.ResizeOpts{ 78 AdjustmentType: clusters.ChangeInCapacityAdjustment, 79 Number: number, 80 MaxSize: &maxSize, 81 MinSize: &minSize, 82 MinStep: &minStep, 83 Strict: &strict, 84 } 85 86 actionID, err := clusters.Resize(client, clusterName, resizeOpts).Extract() 87 if err != nil { 88 t.Fatalf("Unable to resize cluster: %v", err) 89 } 90 fmt.Println("Resize actionID", actionID) 91 92 Example to ScaleIn a Cluster 93 94 count := 2 95 scaleInOpts := clusters.ScaleInOpts{ 96 Count: &count, 97 } 98 clusterID: "b7b870e3-d3c5-4a93-b9d7-846c53b2c2da" 99 100 action, err := clusters.ScaleIn(computeClient, clusterID, scaleInOpts).Extract() 101 if err != nil { 102 panic(err) 103 } 104 105 Example to ScaleOut a cluster 106 107 scaleOutOpts := clusters.ScaleOutOpts{ 108 Count: 2, 109 } 110 clusterID := "b7b870e3-d3c5-4a93-b9d7-846c53b2c2da" 111 112 actionID, err := clusters.ScaleOut(computeClient, clusterID, scaleOutOpts).Extract() 113 if err != nil { 114 panic(err) 115 } 116 117 Example to List Policies for a Cluster 118 119 clusterID := "7d85f602-a948-4a30-afd4-e84f47471c15" 120 allPages, err := clusters.ListPolicies(serviceClient, clusterID, nil).AllPages() 121 if err != nil { 122 panic(err) 123 } 124 125 allClusterPolicies, err := clusters.ExtractClusterPolicies(allPages) 126 if err != nil { 127 panic(err) 128 } 129 130 for _, clusterPolicy := range allClusterPolicies { 131 fmt.Printf("%+v\n", clusterPolicy) 132 } 133 134 Example to Get a Cluster Policy 135 136 clusterID := "7d85f602-a948-4a30-afd4-e84f47471c15" 137 profileID := "714fe676-a08f-4196-b7af-61d52eeded15" 138 clusterPolicy, err := clusterpolicies.Get(serviceCLient, clusterID, profileID).Extract() 139 if err != nil { 140 panic(err) 141 } 142 143 fmt.Printf("%+v\n", clusterPolicy) 144 145 Example to Attach a Policy to a Cluster 146 147 enabled := true 148 attachPolicyOpts := clusters.AttachPolicyOpts{ 149 PolicyID: "policy-123", 150 Enabled: &enabled, 151 } 152 153 clusterID := "b7b870e3-d3c5-4a93-b9d7-846c53b2c2da" 154 actionID, err := clusters.AttachPolicy(serviceClient, clusterID, attachPolicyOpts).Extract() 155 if err != nil { 156 panic(err) 157 } 158 159 fmt.Println("Attach Policy actionID", actionID) 160 161 Example to Detach a Policy to Cluster 162 163 detachpolicyOpts := clusters.DetachPolicyOpts{ 164 PolicyID: "policy-123", 165 } 166 167 clusterID := "b7b870e3-d3c5-4a93-b9d7-846c53b2c2da" 168 actionID, err := clusters.DetachPolicy(serviceClient, clusterID, detachpolicyOpts).Extract() 169 if err != nil { 170 panic(err) 171 } 172 173 fmt.Println("Update Policy actionID", actionID) 174 175 Example to Update a Policy to a Cluster 176 177 enabled := true 178 updatePolicyOpts := clusters.UpdatePolicyOpts{ 179 PolicyID: "policy-123", 180 Enabled: &enabled, 181 } 182 183 clusterID := "b7b870e3-d3c5-4a93-b9d7-846c53b2c2da" 184 actionID, err := clusters.UpdatePolicy(serviceClient, clusterID, updatePolicyOpts).Extract() 185 if err != nil { 186 panic(err) 187 } 188 189 fmt.Println("Attach Policy actionID", actionID) 190 191 Example to Recover a Cluster 192 193 check := true 194 checkCapacity := true 195 recoverOpts := clusters.RecoverOpts{ 196 Operation: clusters.RebuildRecovery, 197 Check: &check, 198 CheckCapacity: &checkCapacity, 199 } 200 201 clusterID := "b7b870e3-d3c5-4a93-b9d7-846c53b2c2da" 202 actionID, err := clusters.Recover(computeClient, clusterID, recoverOpts).Extract() 203 if err != nil { 204 panic(err) 205 } 206 fmt.Println("action=", actionID) 207 208 Example to Check a Cluster 209 210 clusterID := "b7b870e3-d3c5-4a93-b9d7-846c53b2c2da" 211 action, err := clusters.Check(computeClient, clusterID).Extract() 212 if err != nil { 213 panic(err) 214 } 215 216 Example to Complete Life Cycle 217 218 clusterID := "b7b870e3-d3c5-4a93-b9d7-846c53b2c2da" 219 lifecycleOpts := clusters.CompleteLifecycleOpts{LifecycleActionTokenID: "2b827124-69e1-496e-9484-33ca769fe4df"} 220 221 action, err := clusters.CompleteLifecycle(computeClient, clusterID, lifecycleOpts).Extract() 222 if err != nil { 223 panic(err) 224 } 225 226 Example to add nodes to a cluster 227 228 addNodesOpts := clusters.AddNodesOpts{ 229 Nodes: []string{"node-123"}, 230 } 231 clusterID := "b7b870e3-d3c5-4a93-b9d7-846c53b2c2da" 232 actionID, err := clusters.AddNodes(serviceClient, clusterID, addNodesOpts).Extract() 233 if err != nil { 234 panic(err) 235 } 236 fmt.Println("action=", actionID) 237 238 Example to remove nodes from a cluster 239 240 removeNodesOpts := clusters.RemoveNodesOpts{ 241 Nodes: []string{"node-123"}, 242 } 243 clusterID := "b7b870e3-d3c5-4a93-b9d7-846c53b2c2da" 244 err := clusters.RemoveNodes(serviceClient, clusterID, removeNodesOpts).ExtractErr() 245 if err != nil { 246 panic(err) 247 } 248 249 Example to replace nodes for a cluster 250 251 replaceNodesOpts := clusters.ReplaceNodesOpts{ 252 Nodes: map[string]string{"node-1234": "node-5678"}, 253 } 254 clusterID := "b7b870e3-d3c5-4a93-b9d7-846c53b2c2da" 255 actionID, err := clusters.ReplaceNodes(serviceClient, clusterID, replaceNodesOpts).Extract() 256 if err != nil { 257 panic(err) 258 } 259 260 Example to collect node attributes across a cluster 261 262 serviceClient.Microversion = "1.2" 263 clusterID := "b7b870e3-d3c5-4a93-b9d7-846c53b2c2da" 264 opts := clusters.CollectOpts{ 265 Path: "status", 266 } 267 attrs, err := clusters.Collect(serviceClient, clusterID, opts).Extract() 268 if err != nil { 269 panic(err) 270 } 271 272 Example to perform an operation on a cluster 273 274 serviceClient.Microversion = "1.4" 275 clusterID := "cluster123" 276 operationOpts := clusters.OperationOpts{ 277 Operation: clusters.RebootOperation, 278 Filters: clusters.OperationFilters{"role": "slave"}, 279 Params: clusters.OperationParams{"type": "SOFT"}, 280 } 281 actionID, err := clusters.Ops(serviceClient, clusterID, operationOpts).Extract() 282 if err != nil { 283 panic(err) 284 } 285 */ 286 package clusters