github.com/IBM-Cloud/bluemix-go@v0.0.0-20240423071914-9e96525baef4/examples/container/alb/ChangeALBUpdatePolicy/main.go (about)

     1  package main
     2  
     3  import (
     4  	"flag"
     5  	"fmt"
     6  	"log"
     7  	"os"
     8  	"time"
     9  
    10  	bluemix "github.com/IBM-Cloud/bluemix-go"
    11  	v1 "github.com/IBM-Cloud/bluemix-go/api/container/containerv1"
    12  	"github.com/IBM-Cloud/bluemix-go/session"
    13  	"github.com/IBM-Cloud/bluemix-go/trace"
    14  )
    15  
    16  func main() {
    17  
    18  	var clusterID string
    19  	flag.StringVar(&clusterID, "clusterNameOrID", "", "cluster name or ID")
    20  
    21  	var enable bool
    22  	flag.BoolVar(&enable, "enable", false, "turn on or off the ALB auto update")
    23  
    24  	flag.Parse()
    25  
    26  	trace.Logger = trace.NewLogger("true")
    27  
    28  	if clusterID == "" {
    29  		flag.Usage()
    30  		os.Exit(1)
    31  	}
    32  
    33  	c := new(bluemix.Config)
    34  
    35  	sess, err := session.New(c)
    36  	if err != nil {
    37  		log.Fatal(err)
    38  	}
    39  
    40  	if err != nil {
    41  		log.Fatal(err)
    42  	}
    43  
    44  	targetV1 := v1.ClusterTargetHeader{}
    45  
    46  	clusterClientV1, err := v1.New(sess)
    47  	if err != nil {
    48  		log.Fatal(err)
    49  	}
    50  
    51  	albAPIV1 := clusterClientV1.Albs()
    52  
    53  	albUpdatePolicy := v1.ALBUpdatePolicy{
    54  		AutoUpdate: enable,
    55  	}
    56  
    57  	fmt.Println("turn off auto update")
    58  	updatePolicyErr := albAPIV1.ChangeALBUpdatePolicy(clusterID, albUpdatePolicy, targetV1)
    59  	if updatePolicyErr != nil {
    60  		log.Fatal(updatePolicyErr)
    61  	}
    62  
    63  	// wait...
    64  	time.Sleep(30 * time.Second)
    65  
    66  	autoUpdateConf, err := albAPIV1.GetALBUpdatePolicy(clusterID, targetV1)
    67  	if err != nil {
    68  		log.Fatal(err)
    69  	}
    70  
    71  	fmt.Printf("autoUpdateConf: %+v", autoUpdateConf)
    72  
    73  }