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 }