github.com/engineyard/workflow-cli@v2.21.6+incompatible/cmd/routing.go (about) 1 package cmd 2 3 import ( 4 "github.com/teamhephy/controller-sdk-go/api" 5 "github.com/teamhephy/controller-sdk-go/appsettings" 6 ) 7 8 // RoutingInfo provides information about the status of app routing. 9 func (d *DeisCmd) RoutingInfo(appID string) error { 10 s, appID, err := load(d.ConfigFile, appID) 11 12 if err != nil { 13 return err 14 } 15 16 appSettings, err := appsettings.List(s.Client, appID) 17 if d.checkAPICompatibility(s.Client, err) != nil { 18 return err 19 } 20 21 if appSettings.Routable == nil || *appSettings.Routable { 22 d.Println("Routing is enabled.") 23 } else { 24 d.Println("Routing is disabled.") 25 } 26 return nil 27 } 28 29 // RoutingEnable enables an app from being exposed by the router. 30 func (d *DeisCmd) RoutingEnable(appID string) error { 31 s, appID, err := load(d.ConfigFile, appID) 32 33 if err != nil { 34 return err 35 } 36 37 d.Printf("Enabling routing for %s... ", appID) 38 39 quit := progress(d.WOut) 40 appSettings := api.AppSettings{Routable: api.NewRoutable()} 41 _, err = appsettings.Set(s.Client, appID, appSettings) 42 43 quit <- true 44 <-quit 45 46 if err != nil { 47 return err 48 } 49 50 d.Println("done") 51 return nil 52 } 53 54 // RoutingDisable disables an app from being exposed by the router. 55 func (d *DeisCmd) RoutingDisable(appID string) error { 56 s, appID, err := load(d.ConfigFile, appID) 57 58 if err != nil { 59 return err 60 } 61 62 d.Printf("Disabling routing for %s... ", appID) 63 64 quit := progress(d.WOut) 65 appSettings := api.AppSettings{Routable: api.NewRoutable()} 66 *appSettings.Routable = false 67 _, err = appsettings.Set(s.Client, appID, appSettings) 68 69 quit <- true 70 <-quit 71 72 if err != nil { 73 return err 74 } 75 76 d.Println("done") 77 return nil 78 }