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

     1  package main
     2  
     3  import (
     4  	"flag"
     5  	"fmt"
     6  	"log"
     7  	"os"
     8  
     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 host string
    23  	flag.StringVar(&host, "host", "myexample", "Bluemix Host")
    24  
    25  	var path string
    26  	flag.StringVar(&path, "path", "/mypath", "Bluemix Path")
    27  
    28  	var newHost string
    29  	flag.StringVar(&newHost, "new_host", "myexample1", "Bluemix Path")
    30  
    31  	flag.Parse()
    32  
    33  	if org == "" || space == "" {
    34  		flag.Usage()
    35  		os.Exit(1)
    36  	}
    37  
    38  	trace.Logger = trace.NewLogger("true")
    39  	sess, err := session.New()
    40  	if err != nil {
    41  		log.Fatal(err)
    42  	}
    43  
    44  	client, err := mccpv2.New(sess)
    45  	if err != nil {
    46  		log.Fatal(err)
    47  	}
    48  
    49  	region := sess.Config.Region
    50  	orgAPI := client.Organizations()
    51  	myorg, err := orgAPI.FindByName(org, region)
    52  	if err != nil {
    53  		log.Fatal(err)
    54  	}
    55  
    56  	spaceAPI := client.Spaces()
    57  	myspace, err := spaceAPI.FindByNameInOrg(myorg.GUID, space, region)
    58  	if err != nil {
    59  		log.Fatal(err)
    60  	}
    61  
    62  	sharedDomainAPI := client.SharedDomains()
    63  
    64  	sd, err := sharedDomainAPI.FindByName("mybluemix.net")
    65  	if err != nil {
    66  		log.Fatal(err)
    67  	}
    68  
    69  	routesAPI := client.Routes()
    70  
    71  	payload := mccpv2.RouteRequest{
    72  		Host:       host,
    73  		SpaceGUID:  myspace.GUID,
    74  		DomainGUID: sd.GUID,
    75  		Path:       path,
    76  	}
    77  	r, err := routesAPI.Create(payload)
    78  	if err != nil {
    79  		log.Fatal(err)
    80  	}
    81  
    82  	updatePayload := mccpv2.RouteUpdateRequest{
    83  		Host: helpers.String(newHost),
    84  		Path: helpers.String(""),
    85  	}
    86  
    87  	updatedRoute, err := routesAPI.Update(r.Metadata.GUID, updatePayload)
    88  	if err != nil {
    89  		log.Fatal(err)
    90  	}
    91  	fmt.Println(*updatedRoute)
    92  
    93  	routeFilter := mccpv2.RouteFilter{
    94  		DomainGUID: sd.GUID,
    95  		Host:       helpers.String(newHost),
    96  	}
    97  
    98  	routes, err := spaceAPI.ListRoutes(myspace.GUID, routeFilter)
    99  	if err != nil {
   100  		log.Fatal(err)
   101  	}
   102  	fmt.Println(routes)
   103  
   104  	err = routesAPI.Delete(r.Metadata.GUID, true)
   105  	if err != nil {
   106  		log.Fatal(err)
   107  	}
   108  
   109  }