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

     1  package main
     2  
     3  import (
     4  	"flag"
     5  	"log"
     6  	"os"
     7  
     8  	"github.com/IBM-Cloud/bluemix-go/helpers"
     9  
    10  	"github.com/IBM-Cloud/bluemix-go/api/mccp/mccpv2"
    11  	"github.com/IBM-Cloud/bluemix-go/session"
    12  	"github.com/IBM-Cloud/bluemix-go/trace"
    13  )
    14  
    15  func main() {
    16  	var org string
    17  	flag.StringVar(&org, "org", "", "Bluemix Organization")
    18  
    19  	var neworg string
    20  	flag.StringVar(&neworg, "neworg", "", "Bluemix Organization")
    21  
    22  	flag.Parse()
    23  
    24  	if org == "" || neworg == "" {
    25  		flag.Usage()
    26  		os.Exit(1)
    27  	}
    28  
    29  	trace.Logger = trace.NewLogger("true")
    30  	sess, err := session.New()
    31  	if err != nil {
    32  		log.Fatal(err)
    33  	}
    34  
    35  	region := sess.Config.Region
    36  	client, err := mccpv2.New(sess)
    37  
    38  	if err != nil {
    39  		log.Fatal(err)
    40  	}
    41  
    42  	orgAPI := client.Organizations()
    43  
    44  	payload := mccpv2.OrgCreateRequest{
    45  
    46  		Name: org,
    47  	}
    48  
    49  	orgDetails, err := orgAPI.Create(payload)
    50  	if err != nil {
    51  		log.Fatal(err)
    52  	}
    53  	log.Println("Created Org Details:", orgDetails)
    54  
    55  	myorg, err := orgAPI.FindByName(org, region)
    56  	if err != nil {
    57  		log.Fatal(err)
    58  	}
    59  
    60  	log.Println(myorg.GUID, myorg.Name)
    61  
    62  	updatedPayload := mccpv2.OrgUpdateRequest{
    63  		Name: helpers.String(neworg),
    64  	}
    65  
    66  	updatedOrgDetails, err := orgAPI.Update(myorg.GUID, updatedPayload)
    67  	if err != nil {
    68  		log.Fatal(err)
    69  	}
    70  
    71  	log.Println("Org Details after update:", updatedOrgDetails)
    72  
    73  	updatedOrg, err := orgAPI.FindByName(neworg, region)
    74  	if err != nil {
    75  		log.Fatal(err)
    76  	}
    77  
    78  	log.Println(updatedOrg.GUID, updatedOrg.Name)
    79  
    80  	getOrgByGUID, err := orgAPI.Get(updatedOrg.GUID)
    81  	if err != nil {
    82  		log.Fatal(err)
    83  	}
    84  
    85  	if updatedOrg.Name != getOrgByGUID.Entity.Name {
    86  		log.Fatalf("Org obtained from FindByName and Get doesn't  match %s != %s", updatedOrg.GUID, getOrgByGUID.Metadata.GUID)
    87  	}
    88  
    89  	err = orgAPI.DeleteByRegion(updatedOrg.GUID, region, true)
    90  	if err != nil {
    91  		log.Fatal(err)
    92  	}
    93  
    94  	_, err = orgAPI.List(region)
    95  	if err != nil {
    96  		log.Fatal(err)
    97  	}
    98  }