summaryrefslogtreecommitdiff
path: root/argv.go
diff options
context:
space:
mode:
Diffstat (limited to 'argv.go')
-rw-r--r--argv.go42
1 files changed, 31 insertions, 11 deletions
diff --git a/argv.go b/argv.go
index 450a173..8e86d88 100644
--- a/argv.go
+++ b/argv.go
@@ -10,27 +10,43 @@ import "go.wit.com/log"
var argv args
-type args struct {
- Filename string `arg:"--filename" help:"start a vm based off the qcow2 filename"`
- Start []string `arg:"--start" help:"droplets to start"`
+type DumpCmd struct {
+ Droplets bool `arg:"--droplets" help:"show the running droplets"`
+ DropletsFull bool `arg:"--droplets-full" help:"show all the known droplets"`
+ Hypervisors bool `arg:"--hypervisors" help:"show the hypervisors"`
+ Uptime bool `arg:"--uptime" help:"show the hypervisors"`
+}
+
+type CreateCmd struct {
+ Filename string `arg:"--filename" help:"start a vm based off the qcow2 filename"`
+ Memory int `arg:"--memory" help:"set the memory in MB"`
+ Cpus int `arg:"--cpus" help:"set the cpus"`
+}
+
+type ImportXml struct {
Xml []string `arg:"--libvirt" help:"import qemu xml files: --libvirt /etc/libvirt/qemu/*.xml"`
IgnoreCpu bool `arg:"--xml-ignore-cpu" default:"true" help:"ignore non-standard libvirt xml cpus"`
IgnoreBr bool `arg:"--xml-ignore-net" default:"true" help:"ignore network bridge name changes"`
IgnDisk bool `arg:"--xml-ignore-disk" default:"false" help:"ignore duplicate disk names"`
- Port int `arg:"--port" default:"8080" help:"allow droplet events via http"`
- Memory int `arg:"--memory" help:"set the memory in MB"`
- Cpus int `arg:"--cpus" help:"set the cpus"`
+}
- DumpUptime bool `arg:"--dump-uptime" help:"show the state of the cluster"`
- DumpDroplets bool `arg:"--dump-droplets" help:"show the running droplets"`
- DumpDropletsFull bool `arg:"--dump-droplets-full" help:"show all the known droplets"`
- DumpHypervisors bool `arg:"--dump-hypervisors" help:"show the hypervisors"`
+type args struct {
+ Start []string `arg:"--start" help:"droplets to start"`
+ Port int `arg:"--port" default:"8080" help:"allow droplet events via http"`
+
+ Create *CreateCmd `arg:"subcommand:create" help:"create a new droplet"`
+ Dump *DumpCmd `arg:"subcommand:dump" help:"show the state of the cluster"`
+ Import *ImportXml `arg:"subcommand:import" help:"import libvirt XML"`
}
func (a args) Description() string {
return `
virtigoctl command line configure and control for virtigo
+`
+}
+func (args) Epilogue() string {
+ return `
This will start three already defined servers:
virtigoctl --start www.wit.com ftp.wit.com wiki.wit.com
@@ -38,7 +54,11 @@ func (a args) Description() string {
This will make a new vm called "foo.wit.com" with the default
virtigo values for memory, cpus, network settings, spice, etc.
- virtigoctl --filename /home/nfs/foo.wit.com.qcow2
+ virtigoctl create --filename /home/nfs/foo.wit.com.qcow2
+
+ create "bar.wit.com" with defaults except 1GB of RAM:
+
+ virtigoctl create --filename /home/nfs/bar.wit.com.qcow2 --memory 1024
`
}