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  }