github.com/technosophos/deis@v1.7.1-0.20150915173815-f9005256004b/deisctl/cmd/swarm.go (about) 1 package cmd 2 3 import ( 4 "fmt" 5 "io" 6 "sync" 7 8 "github.com/deis/deis/deisctl/backend" 9 "github.com/deis/deis/pkg/prettyprint" 10 ) 11 12 //InstallSwarm Installs swarm 13 func InstallSwarm(b backend.Backend) error { 14 var wg sync.WaitGroup 15 io.WriteString(Stdout, prettyprint.DeisIfy("Installing Swarm...")) 16 fmt.Fprintln(Stdout, "Swarm control plane...") 17 b.Create([]string{"swarm-manager"}, &wg, Stdout, Stderr) 18 wg.Wait() 19 fmt.Fprintln(Stdout, "Swarm data plane...") 20 b.Create([]string{"swarm-node"}, &wg, Stdout, Stderr) 21 wg.Wait() 22 fmt.Fprintln(Stdout, "Done.\n ") 23 fmt.Fprintln(Stdout, "Please run `deisctl start swarm` to start swarm.") 24 return nil 25 } 26 27 //StartSwarm starts Swarm Schduler 28 func StartSwarm(b backend.Backend) error { 29 var wg sync.WaitGroup 30 io.WriteString(Stdout, prettyprint.DeisIfy("Starting Swarm...")) 31 fmt.Fprintln(Stdout, "Swarm control plane...") 32 b.Start([]string{"swarm-manager"}, &wg, Stdout, Stderr) 33 wg.Wait() 34 fmt.Fprintln(Stdout, "Swarm data plane...") 35 b.Start([]string{"swarm-node"}, &wg, Stdout, Stderr) 36 wg.Wait() 37 fmt.Fprintln(Stdout, "Done.\n ") 38 fmt.Fprintln(Stdout, "Please run `deisctl config controller set schedulerModule=swarm` to use the swarm scheduler.") 39 return nil 40 } 41 42 //StopSwarm stops swarm 43 func StopSwarm(b backend.Backend) error { 44 45 var wg sync.WaitGroup 46 io.WriteString(Stdout, prettyprint.DeisIfy("Stopping Swarm...")) 47 fmt.Fprintln(Stdout, "Swarm data plane...") 48 b.Stop([]string{"swarm-node"}, &wg, Stdout, Stderr) 49 wg.Wait() 50 fmt.Fprintln(Stdout, "Swarm control plane...") 51 b.Stop([]string{"swarm-manager"}, &wg, Stdout, Stderr) 52 wg.Wait() 53 54 fmt.Fprintln(Stdout, "Done.\n ") 55 return nil 56 } 57 58 //UnInstallSwarm uninstall Swarm 59 func UnInstallSwarm(b backend.Backend) error { 60 var wg sync.WaitGroup 61 io.WriteString(Stdout, prettyprint.DeisIfy("Uninstalling Swarm...")) 62 fmt.Fprintln(Stdout, "Swarm data plane...") 63 b.Destroy([]string{"swarm-node"}, &wg, Stdout, Stderr) 64 wg.Wait() 65 fmt.Fprintln(Stdout, "Swarm control plane...") 66 b.Destroy([]string{"swarm-manager"}, &wg, Stdout, Stderr) 67 wg.Wait() 68 fmt.Fprintln(Stdout, "Done.\n ") 69 return nil 70 }