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