github.com/IBM-Cloud/bluemix-go@v0.0.0-20240423071914-9e96525baef4/examples/icd/icdv4/userpassword/main.go (about)

     1  package main
     2  
     3  import (
     4  	"flag"
     5  	"log"
     6  	"net/url"
     7  	"os"
     8  
     9  	"github.com/IBM-Cloud/bluemix-go/api/icd/icdv4"
    10  	"github.com/IBM-Cloud/bluemix-go/session"
    11  	"github.com/IBM-Cloud/bluemix-go/trace"
    12  )
    13  
    14  func main() {
    15  
    16  	var icdId string
    17  	var userId string
    18  	var password string
    19  	var count int
    20  	flag.StringVar(&icdId, "icdId", "", "CRN of the IBM Cloud Database service instance")
    21  	flag.StringVar(&userId, "userId", "", "User name")
    22  	flag.StringVar(&password, "password", "", "Password")
    23  	flag.Parse()
    24  
    25  	if icdId == "" || userId == "" || password == "" {
    26  		flag.Usage()
    27  		os.Exit(1)
    28  	}
    29  	icdId = url.PathEscape(icdId)
    30  
    31  	trace.Logger = trace.NewLogger("true")
    32  	sess, err := session.New()
    33  	if err != nil {
    34  		log.Fatal(err)
    35  	}
    36  
    37  	icdClient, err := icdv4.New(sess)
    38  	if err != nil {
    39  		log.Fatal(err)
    40  	}
    41  	taskAPI := icdClient.Tasks()
    42  	userAPI := icdClient.Users()
    43  	params := icdv4.UserReq{
    44  		User: icdv4.User{
    45  			Password: password,
    46  		},
    47  	}
    48  
    49  	task, err := userAPI.UpdateUser(icdId, userId, params)
    50  	if err != nil {
    51  		log.Fatal(err)
    52  	}
    53  	count = 0
    54  	for {
    55  		innerTask, err := taskAPI.GetTask(task.Id)
    56  		if err != nil {
    57  			log.Fatal(err)
    58  		}
    59  		count = count + 1
    60  		log.Printf("Task : %v     %v\n", count, innerTask)
    61  		if innerTask.Status == "completed" || innerTask.Status == "failed" || innerTask.Status == "" {
    62  			break
    63  		}
    64  	}
    65  }