Merge pull request #683 from harshavardhana/pr_out_add_proper_command_paramters_for_donut

This commit is contained in:
Harshavardhana 2015-06-28 00:41:13 +00:00
commit 350e6eb5bb

View File

@ -12,6 +12,15 @@ import (
"github.com/minio/minio/pkg/server" "github.com/minio/minio/pkg/server"
) )
func appendUniq(slice []string, i string) []string {
for _, ele := range slice {
if ele == i {
return slice
}
}
return append(slice, i)
}
var commands = []cli.Command{ var commands = []cli.Command{
modeCmd, modeCmd,
} }
@ -75,14 +84,11 @@ USAGE:
minio mode {{.Name}} PATH minio mode {{.Name}} PATH
EXAMPLES: EXAMPLES:
1. Create a donut volume under "/mnt/backup" 1. Create a donut volume under "/mnt/backup", with a cache limit of 64MB with 1hr expiration
$ minio mode {{.Name}} /mnt/backup $ minio mode {{.Name}} limit 64MB expire 1h paths /mnt/backup
2. Create a temporary donut volume under "/tmp" 2. Create a donut volume under collection of paths, put a cache limit of 512MB
$ minio mode {{.Name}} /tmp $ minio mode {{.Name}} limit 512MB paths ""
3. Create a donut volume under collection of paths
$ minio mode {{.Name}} /mnt/backup2014feb /mnt/backup2014feb
`, `,
} }
@ -169,6 +175,9 @@ func runDonut(c *cli.Context) {
var expiration time.Duration var expiration time.Duration
expirationSet := false expirationSet := false
var paths []string
pathSet := false
args := c.Args() args := c.Args()
for len(args) > 0 { for len(args) > 0 {
switch args.First() { switch args.First() {
@ -201,6 +210,22 @@ func runDonut(c *cli.Context) {
args = args.Tail() args = args.Tail()
expirationSet = true expirationSet = true
} }
case "paths":
if pathSet {
Fatalln("Path should be set only once")
}
// supporting multiple paths
args = args.Tail()
if strings.TrimSpace(args.First()) == "" {
p := filepath.Join(u.HomeDir, "minio-storage", "donut")
paths = appendUniq(paths, p)
} else {
for _, arg := range args {
paths = appendUniq(paths, strings.TrimSpace(arg))
}
}
args = args.Tail()
pathSet = true
default: default:
{ {
cli.ShowCommandHelpAndExit(c, "donut", 1) // last argument is exit code cli.ShowCommandHelpAndExit(c, "donut", 1) // last argument is exit code
@ -210,15 +235,8 @@ func runDonut(c *cli.Context) {
if maxMemorySet == false { if maxMemorySet == false {
Fatalln("Memory limit must be set") Fatalln("Memory limit must be set")
} }
// supporting multiple paths if pathSet == false {
var paths []string Fatalln("Path must be set")
if strings.TrimSpace(c.Args().First()) == "" {
p := filepath.Join(u.HomeDir, "minio-storage", "donut")
paths = append(paths, p)
} else {
for _, arg := range c.Args() {
paths = append(paths, strings.TrimSpace(arg))
}
} }
apiServerConfig := getAPIServerConfig(c) apiServerConfig := getAPIServerConfig(c)
donutDriver := server.DonutFactory{ donutDriver := server.DonutFactory{