Remove scsi non portable code, instead "donut make" implements functionality to instantiate a donut

This commit is contained in:
Harshavardhana
2015-07-15 11:55:49 -07:00
parent 49c705da99
commit 4498662c16
20 changed files with 40 additions and 563 deletions
+1
View File
@@ -0,0 +1 @@
donut
+28 -15
View File
@@ -39,6 +39,28 @@ var flags = []cli.Flag{
Usage: "print debug information",
},
}
var commands = []cli.Command{
{
Name: "make",
Description: "make a donut",
Action: runMkdonut,
CustomHelpTemplate: `NAME:
donut {{.Name}} - {{.Description}}
USAGE:
donut {{.Name}} DONUTNAME [DISKS...]
EXAMPLES:
1. Make a donut with 4 exports
$ donut {{.Name}} mongodb-backup /mnt/export1 /mnt/export2 /mnt/export3 /mnt/export4
2. Make a donut with 16 exports
$ donut {{.Name}} operational-data /mnt/export1 /mnt/export2 /mnt/export3 /mnt/export4 /mnt/export5 \
/mnt/export6 /mnt/export7 /mnt/export8 /mnt/export9 /mnt/export10 /mnt/export11 \
/mnt/export12 /mnt/export13 /mnt/export14 /mnt/export15 /mnt/export16
`,
},
}
func init() {
// Check for the environment early on and gracefuly report.
@@ -76,8 +98,7 @@ func getSystemData() map[string]string {
func runMkdonut(c *cli.Context) {
if !c.Args().Present() || c.Args().First() == "help" {
cli.ShowAppHelp(c)
os.Exit(1)
cli.ShowCommandHelpAndExit(c, "make", 1)
}
donutName := c.Args().First()
if c.Args().First() != "" {
@@ -109,7 +130,7 @@ func runMkdonut(c *cli.Context) {
// keep it in exact order as it was specified, do not try to sort disks
donutConfig.NodeDiskMap[hostname] = disks
// default cache is unlimited
donutConfig.MaxSize = 0
donutConfig.MaxSize = 512000000
if err := donut.SaveConfig(donutConfig); err != nil {
Fatalln(err)
@@ -129,11 +150,12 @@ func main() {
// set up app
app := cli.NewApp()
app.Action = runMkdonut
app.Name = "mkdonut"
app.Version = Version
app.Name = "donut"
app.Version = getVersion()
app.Compiled = getVersion()
app.Author = "Minio.io"
app.Usage = "Make a donut"
app.Usage = "Donut maker"
app.Commands = commands
app.Flags = flags
app.Before = func(c *cli.Context) error {
if c.GlobalBool("debug") {
@@ -146,15 +168,6 @@ func main() {
USAGE:
{{.Name}} {{if .Flags}}[global flags] {{end}}command{{if .Flags}} [command flags]{{end}} [arguments...]
EXAMPLES:
1. Create a donut with four disks
$ {{.Name}} donuttest /mnt/export1 /mnt/export2 /mnt/export3 /mnt/export4
2. Create a donut with sixteen disks
$ {{.Name}} donut-16 /mnt/export1 /mnt/export2 /mnt/export3 /mnt/export4 /mnt/export5 \
/mnt/export6 /mnt/export7 /mnt/export8 /mnt/export9 /mnt/export10 /mnt/export11 \
/mnt/export12 /mnt/export13 /mnt/export14 /mnt/export15 /mnt/export16
{{if .Flags}}
GLOBAL FLAGS:
{{range .Flags}}{{.}}
+10 -10
View File
@@ -85,17 +85,17 @@ func (c command) String() string {
return message
}
func runMkdonutInstall() {
mkdonutInstall := command{exec.Command("godep", "go", "install", "-a", "github.com/minio/minio/cmd/mkdonut"), &bytes.Buffer{}, &bytes.Buffer{}}
mkdonutInstallErr := mkdonutInstall.runCommand()
if mkdonutInstallErr != nil {
fmt.Println(mkdonutInstall)
func runDonutInstall() {
donutInstall := command{exec.Command("godep", "go", "install", "-a", "github.com/minio/minio/cmd/donut"), &bytes.Buffer{}, &bytes.Buffer{}}
donutInstallErr := donutInstall.runCommand()
if donutInstallErr != nil {
fmt.Println(donutInstall)
os.Exit(1)
}
fmt.Print(mkdonutInstall)
fmt.Print(donutInstall)
}
func runMkdonutRelease() {
func runDonutRelease() {
t := time.Now().UTC()
date := t.Format(time.RFC3339Nano)
version := Version{Date: date}
@@ -108,14 +108,14 @@ func runMkdonutRelease() {
func main() {
releaseFlag := flag.Bool("release", false, "make a release")
installFlag := flag.Bool("install", false, "install mkdonut")
installFlag := flag.Bool("install", false, "install donut")
flag.Parse()
if *releaseFlag {
runMkdonutRelease()
runDonutRelease()
}
if *installFlag {
runMkdonutInstall()
runDonutInstall()
}
}
-1
View File
@@ -1 +0,0 @@
mkdonut