func main() { app := cli.NewApp() app.Name = "osd" app.Usage = "Open Storage CLI" app.Version = version app.Flags = []cli.Flag{ cli.BoolFlag{ Name: "json,j", Usage: "output in json", }, cli.BoolFlag{ Name: osdcli.DaemonAlias, Usage: "Start OSD in daemon mode", }, cli.StringSliceFlag{ Name: "driver", Usage: "driver name and options: name=btrfs,root_vol=/var/openstorage/btrfs", Value: new(cli.StringSlice), }, cli.StringFlag{ Name: "kvdb,k", Usage: "uri to kvdb e.g. kv-mem://localhost, etcd://localhost:4001", Value: "kv-mem://localhost", }, cli.StringFlag{ Name: "file,f", Usage: "file to read the OSD configuration from.", Value: "", }, } app.Action = start app.Commands = []cli.Command{ { Name: "driver", Aliases: []string{"d"}, Usage: "Manage drivers", Subcommands: osdcli.DriverCommands(), }, { Name: "version", Aliases: []string{"v"}, Usage: "Display version", Action: showVersion, }, } // Start all volume drivers. for _, v := range drivers.AllDrivers { switch v.DriverType { case api.Block: bCmds := osdcli.BlockVolumeCommands(v.Name) clstrCmds := osdcli.ClusterCommands(v.Name) cmds := append(bCmds, clstrCmds...) c := cli.Command{ Name: v.Name, Usage: fmt.Sprintf("Manage %s storage", v.Name), Subcommands: cmds, } app.Commands = append(app.Commands, c) case api.File: fCmds := osdcli.FileVolumeCommands(v.Name) clstrCmds := osdcli.ClusterCommands(v.Name) cmds := append(fCmds, clstrCmds...) c := cli.Command{ Name: v.Name, Usage: fmt.Sprintf("Manage %s volumes", v.Name), Subcommands: cmds, } app.Commands = append(app.Commands, c) default: fmt.Println("Unable to start volume plugin: ", fmt.Errorf("Unknown driver type: %v", v.DriverType)) return } } // Start all graph drivers. app.Run(os.Args) }
func main() { app := cli.NewApp() app.Name = "osd" app.Usage = "Open Storage CLI" app.Version = version app.Flags = []cli.Flag{ cli.BoolFlag{ Name: "json,j", Usage: "output in json", }, cli.BoolFlag{ Name: osdcli.DaemonAlias, Usage: "Start OSD in daemon mode", }, cli.StringSliceFlag{ Name: "driver", Usage: "driver name and options: name=btrfs,root_vol=/var/openstorage/btrfs", Value: new(cli.StringSlice), }, cli.StringFlag{ Name: "kvdb,k", Usage: "uri to kvdb e.g. kv-mem://localhost, etcd://localhost:4001", Value: "kv-mem://localhost", }, cli.StringFlag{ Name: "file,f", Usage: "file to read the OSD configuration from.", Value: "", }, } app.Action = start app.Commands = []cli.Command{ { Name: "driver", Aliases: []string{"d"}, Usage: "Manage drivers", Subcommands: osdcli.DriverCommands(), }, } for _, v := range drivers { if v.driverType == volume.Block { c := cli.Command{ Name: v.name, Aliases: []string{"v"}, Usage: fmt.Sprintf("Manage %s volumes", v.name), Subcommands: osdcli.BlockVolumeCommands(v.name), } app.Commands = append(app.Commands, c) } else if v.driverType == volume.File { c := cli.Command{ Name: v.name, Aliases: []string{"v"}, Usage: fmt.Sprintf("Manage %s volumes", v.name), Subcommands: osdcli.FileVolumeCommands(v.name), } app.Commands = append(app.Commands, c) } else { fmt.Println("Unable to start volume plugin: ", errors.New("Unknown driver type.")) return } } app.Run(os.Args) }
func main() { if reexec.Init() { return } app := cli.NewApp() app.Name = "osd" app.Usage = "Open Storage CLI" app.Version = version app.Flags = []cli.Flag{ cli.BoolFlag{ Name: "json,j", Usage: "output in json", }, cli.BoolFlag{ Name: osdcli.DaemonAlias, Usage: "Start OSD in daemon mode", }, cli.StringSliceFlag{ Name: "driver", Usage: "driver name and options: name=btrfs,root_vol=/var/openstorage/btrfs", Value: new(cli.StringSlice), }, cli.StringFlag{ Name: "kvdb,k", Usage: "uri to kvdb e.g. kv-mem://localhost, etcd://localhost:4001", Value: "kv-mem://localhost", }, cli.StringFlag{ Name: "file,f", Usage: "file to read the OSD configuration from.", Value: "", }, } app.Action = start app.Commands = []cli.Command{ { Name: "driver", Aliases: []string{"d"}, Usage: "Manage drivers", Subcommands: osdcli.DriverCommands(), }, { Name: "version", Aliases: []string{"v"}, Usage: "Display version", Action: showVersion, }, } // Start all drivers. for _, v := range drivers.AllDrivers { if v.DriverType&api.Block == api.Block { bCmds := osdcli.BlockVolumeCommands(v.Name) clstrCmds := osdcli.ClusterCommands(v.Name) cmds := append(bCmds, clstrCmds...) c := cli.Command{ Name: v.Name, Usage: fmt.Sprintf("Manage %s storage", v.Name), Subcommands: cmds, } app.Commands = append(app.Commands, c) } else if v.DriverType&api.File == api.File { fCmds := osdcli.FileVolumeCommands(v.Name) clstrCmds := osdcli.ClusterCommands(v.Name) cmds := append(fCmds, clstrCmds...) c := cli.Command{ Name: v.Name, Usage: fmt.Sprintf("Manage %s volumes", v.Name), Subcommands: cmds, } app.Commands = append(app.Commands, c) } if v.DriverType&api.Graph == api.Graph { // TODO - register this as a graph driver with Docker. } } app.Run(os.Args) }
func main() { if reexec.Init() { return } app := cli.NewApp() app.Name = "osd" app.Usage = "Open Storage CLI" app.Version = config.Version app.Flags = []cli.Flag{ cli.BoolFlag{ Name: "json,j", Usage: "output in json", }, cli.BoolFlag{ Name: osdcli.DaemonAlias, Usage: "Start OSD in daemon mode", }, cli.StringSliceFlag{ Name: "driver", Usage: "driver name and options: name=btrfs,home=/var/openstorage/btrfs", Value: new(cli.StringSlice), }, cli.StringFlag{ Name: "kvdb,k", Usage: "uri to kvdb e.g. kv-mem://localhost, etcd-kv://localhost:4001, consul-kv://localhost:8500", Value: "kv-mem://localhost", }, cli.StringFlag{ Name: "file,f", Usage: "file to read the OSD configuration from.", Value: "", }, } app.Action = start app.Commands = []cli.Command{ { Name: "driver", Aliases: []string{"d"}, Usage: "Manage drivers", Subcommands: osdcli.DriverCommands(), }, { Name: "cluster", Aliases: []string{"c"}, Usage: "Manage cluster", Subcommands: osdcli.ClusterCommands(), }, { Name: "version", Aliases: []string{"v"}, Usage: "Display version", Action: showVersion, }, } // Register all volume drivers with the CLI. for _, v := range volumedrivers.AllDrivers { // TODO(pedge): was an and, but we have no drivers that have two types if v.DriverType == api.DriverType_DRIVER_TYPE_BLOCK { bCmds := osdcli.BlockVolumeCommands(v.Name) cmds := append(bCmds) c := cli.Command{ Name: v.Name, Usage: fmt.Sprintf("Manage %s storage", v.Name), Subcommands: cmds, } app.Commands = append(app.Commands, c) // TODO(pedge): was an and, but we have no drivers that have two types } else if v.DriverType == api.DriverType_DRIVER_TYPE_FILE { fCmds := osdcli.FileVolumeCommands(v.Name) cmds := append(fCmds) c := cli.Command{ Name: v.Name, Usage: fmt.Sprintf("Manage %s volumes", v.Name), Subcommands: cmds, } app.Commands = append(app.Commands, c) } } // Register all graph drivers with the CLI. for _, v := range graphdrivers.AllDrivers { // TODO(pedge): was an and, but we have no drivers that have two types if v.DriverType == api.DriverType_DRIVER_TYPE_GRAPH { cmds := osdcli.GraphDriverCommands(v.Name) c := cli.Command{ Name: v.Name, Usage: fmt.Sprintf("Manage %s graph storage", v.Name), Subcommands: cmds, } app.Commands = append(app.Commands, c) } } app.Run(os.Args) }