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

     1  package main
     2  
     3  import (
     4  	"flag"
     5  	"log"
     6  	"os"
     7  
     8  	bluemix "github.com/IBM-Cloud/bluemix-go"
     9  	"github.com/IBM-Cloud/bluemix-go/api/mccp/mccpv2"
    10  	"github.com/IBM-Cloud/bluemix-go/helpers"
    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 space string
    20  	flag.StringVar(&space, "space", "", "Bluemix Space")
    21  
    22  	var region string
    23  	flag.StringVar(&region, "region", "us-south", "Bluemix region")
    24  
    25  	flag.Parse()
    26  
    27  	if org == "" || space == "" {
    28  		flag.Usage()
    29  		os.Exit(1)
    30  	}
    31  
    32  	trace.Logger = trace.NewLogger("true")
    33  	sess, err := session.New(&bluemix.Config{Region: region, Debug: true})
    34  	if err != nil {
    35  		log.Fatal(err)
    36  	}
    37  
    38  	client, err := mccpv2.New(sess)
    39  
    40  	if err != nil {
    41  		log.Fatal(err)
    42  	}
    43  
    44  	orgAPI := client.Organizations()
    45  	myorg, err := orgAPI.FindByName(org, region)
    46  
    47  	if err != nil {
    48  		log.Fatal(err)
    49  	}
    50  
    51  	spaceAPI := client.Spaces()
    52  	myspace, err := spaceAPI.FindByNameInOrg(myorg.GUID, space, region)
    53  
    54  	if err != nil {
    55  		log.Fatal(err)
    56  	}
    57  	log.Println(myorg.GUID, myspace.GUID)
    58  
    59  	quotaAPI := client.SpaceQuotas()
    60  
    61  	createRequest := mccpv2.SpaceQuotaCreateRequest{
    62  		Name:                    "test2",
    63  		OrgGUID:                 myorg.GUID,
    64  		MemoryLimitInMB:         1024,
    65  		InstanceMemoryLimitInMB: 1024,
    66  		RoutesLimit:             50,
    67  		ServicesLimit:           150,
    68  		NonBasicServicesAllowed: false,
    69  	}
    70  
    71  	myquota, err := quotaAPI.Create(createRequest)
    72  	if err != nil {
    73  		log.Fatal(err)
    74  	}
    75  
    76  	spaceCreateRequest := mccpv2.SpaceCreateRequest{
    77  		Name:           "test",
    78  		OrgGUID:        myorg.GUID,
    79  		SpaceQuotaGUID: myquota.Metadata.GUID,
    80  	}
    81  	newspace, err := spaceAPI.Create(spaceCreateRequest)
    82  	if err != nil {
    83  		log.Fatal(err)
    84  	}
    85  
    86  	newspace, err = spaceAPI.Get(newspace.Metadata.GUID)
    87  	if err != nil {
    88  		log.Fatal(err)
    89  	}
    90  
    91  	spaceUpdateRequest := mccpv2.SpaceUpdateRequest{
    92  		Name: helpers.String("testupdate"),
    93  	}
    94  	newspace, err = spaceAPI.Update(newspace.Metadata.GUID, spaceUpdateRequest)
    95  	if err != nil {
    96  		log.Fatal(err)
    97  	}
    98  
    99  	err = spaceAPI.Delete(newspace.Metadata.GUID)
   100  	if err != nil {
   101  		log.Fatal(err)
   102  	}
   103  
   104  	err = quotaAPI.Delete(myquota.Metadata.GUID)
   105  	if err != nil {
   106  		log.Fatal(err)
   107  	}
   108  }