From a66f6a7ce39d2df63d445a059f2d165fb49283c4 Mon Sep 17 00:00:00 2001 From: Marko Mudrinic Date: Tue, 13 Dec 2016 21:57:58 +0100 Subject: [PATCH 1/6] flags beta --- args_short.go | 136 ++++++++++++++++++++++++++++++++++++ commands/actions.go | 14 ++-- commands/doit.go | 20 +++--- commands/domains.go | 32 ++++----- commands/droplet_actions.go | 48 ++++++------- commands/droplets.go | 38 +++++----- commands/floating_ips.go | 6 +- commands/image_actions.go | 6 +- commands/images.go | 12 ++-- commands/snapshots.go | 6 +- commands/ssh.go | 10 +-- commands/sshkeys.go | 6 +- commands/tags.go | 4 +- commands/volumes.go | 10 +-- 14 files changed, 242 insertions(+), 106 deletions(-) create mode 100644 args_short.go diff --git a/args_short.go b/args_short.go new file mode 100644 index 000000000..649ab64c2 --- /dev/null +++ b/args_short.go @@ -0,0 +1,136 @@ +/* +Copyright 2016 The Doctl Authors All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package doctl + +const ( + /** + // ArgActionID is an action id argument. + ArgActionID = "action-id" + // ArgActionAfter is an action after argument. + ArgActionAfter = "after" + // ArgActionBefore is an action before argument. + ArgActionBefore = "before" + // ArgActionResourceType is an action resource type argument. + ArgActionResourceType = "resource-type" + // ArgActionRegion is an action region argument. + ArgActionRegion = "region" + // ArgActionStatus is an action status argument. + ArgActionStatus = "status" + // ArgActionType is an action type argument. + ArgActionType = "action-type" + // ArgCommandWait is a wait for a droplet to be created argument. + ArgCommandWait = "wait" + // ArgDomainName is a domain name argument. + ArgDomainName = "domain-name" + // ArgDropletID is a droplet id argument. + ArgDropletID = "droplet-id" + // ArgKernelID is a ekrnel id argument. + ArgKernelID = "kernel-id" + // ArgImage is an image argument. + ArgImage = "image" + // ArgImageID is an image id argument. + ArgImageID = "image-id" + // ArgImagePublic is a public image argument. + ArgImagePublic = "public" + // ArgImageSlug is an image slug argment. + ArgImageSlug = "image-slug" + // ArgIPAddress is an IP address argument. + ArgIPAddress = "ip-address" + // ArgDropletName is a droplet name argument. + ArgDropletName = "droplet-name" + // ArgResizeDisk is a resize disk argument. + ArgResizeDisk = "resize-disk" + // ArgSnapshotName is a snapshot name arugment. + ArgSnapshotName = "snapshot-name" + // ArgBackups is an enable backups argument. + ArgBackups = "enable-backups" + // ArgIPv6 is an enable IPv6 argument. + ArgIPv6 = "enable-ipv6" + // ArgPrivateNetworking is an enable private networking argument. + ArgPrivateNetworking = "enable-private-networking" + // ArgRecordData is a record data argument. + ArgRecordData = "record-data" + // ArgRecordID is a record id argument. + ArgRecordID = "record-id" + // ArgRecordName is a record name argument. + ArgRecordName = "record-name" + // ArgRecordPort is a record port argument. + ArgRecordPort = "record-port" + // ArgRecordPriority is a record priority argument. + ArgRecordPriority = "record-priority" + // ArgRecordType is a record type argument. + ArgRecordType = "record-type" + // ArgRecordWeight is a record weight argument. + ArgRecordWeight = "record-weight" + // ArgRegionSlug is a region slug argument. + ArgRegionSlug = "region" + // ArgSizeSlug is a size slug argument. + ArgSizeSlug = "size" + // ArgsSSHKeyPath is a ssh argument. + ArgsSSHKeyPath = "ssh-key-path" + // ArgSSHKeys is a ssh key argument. + ArgSSHKeys = "ssh-keys" + // ArgsSSHPort is a ssh argument. + ArgsSSHPort = "ssh-port" + // ArgsSSHAgentForwarding is a ssh argument. + ArgsSSHAgentForwarding = "ssh-agent-forwarding" + // ArgsSSHPrivateIP is a ssh argument. + ArgsSSHPrivateIP = "ssh-private-ip" + // ArgUserData is a user data argument. + ArgUserData = "user-data" + // ArgUserDataFile is a user data file location argument. + ArgUserDataFile = "user-data-file" + // ArgImageName name is an image name argument. + ArgImageName = "image-name" + // ArgKey is a key argument. + ArgKey = "key" + // ArgKeyName is a key name argument. + ArgKeyName = "key-name" + // ArgKeyPublicKey is a public key argument. + ArgKeyPublicKey = "public-key" + // ArgKeyPublicKeyFile is a public key file argument. + ArgKeyPublicKeyFile = "public-key-file" + // ArgSSHUser is a SSH user argument. + ArgSSHUser = "ssh-user" + // ArgFormat is columns to include in output argment. + ArgFormat = "format" + // ArgNoHeader hides the output header. + ArgNoHeader = "no-header" + // ArgPollTime is how long before the next poll argument. + ArgPollTime = "poll-timeout" + // ArgTagName is a tag name + ArgTagName = "tag-name" + // ArgTagNames is a slice of possible tag names + ArgTagNames = "tag-names" + //ArgTemplate is template format + ArgTemplate = "template" + + // ArgOutput is an output type argument. + ArgOutput = "output" + + // ArgVolumeSize is the size of a volume. + ArgVolumeSize = "size" + // ArgVolumeDesc is the description of a volume. + ArgVolumeDesc = "desc" + // ArgVolumeRegion is the region of a volume. + ArgVolumeRegion = "region" + // ArgVolumeList is the IDs of many volumes. + ArgVolumeList = "volumes" + */ + // ArgDeleteForce forces deletion actions + ArgShortDeleteForce = "f" + + // ArgResourceType is the resource type for snapshot. + //ArgShortResourceType = "resource" +) diff --git a/commands/actions.go b/commands/actions.go index 0c99708a2..eafbda84e 100644 --- a/commands/actions.go +++ b/commands/actions.go @@ -40,16 +40,16 @@ func Actions() *Command { cmdActionList := CmdBuilder(cmd, RunCmdActionList, "list", "list actions", Writer, aliasOpt("ls"), displayerType(&action{}), docCategories("action")) - AddStringFlag(cmdActionList, doctl.ArgActionResourceType, "", "Action resource type") - AddStringFlag(cmdActionList, doctl.ArgActionRegion, "", "Action region") - AddStringFlag(cmdActionList, doctl.ArgActionAfter, "", "Action completed after in RFC3339 format") - AddStringFlag(cmdActionList, doctl.ArgActionBefore, "", "Action completed before in RFC3339 format") - AddStringFlag(cmdActionList, doctl.ArgActionStatus, "", "Action status") - AddStringFlag(cmdActionList, doctl.ArgActionType, "", "Action type") + AddStringFlag(cmdActionList, doctl.ArgActionResourceType, "", "", "Action resource type") + AddStringFlag(cmdActionList, doctl.ArgActionRegion, "", "", "Action region") + AddStringFlag(cmdActionList, doctl.ArgActionAfter, "", "", "Action completed after in RFC3339 format") + AddStringFlag(cmdActionList, doctl.ArgActionBefore, "", "", "Action completed before in RFC3339 format") + AddStringFlag(cmdActionList, doctl.ArgActionStatus, "", "", "Action status") + AddStringFlag(cmdActionList, doctl.ArgActionType, "", "", "Action type") cmdActionWait := CmdBuilder(cmd, RunCmdActionWait, "wait ACTIONID", "wait for action to complete", Writer, aliasOpt("w"), displayerType(&action{}), docCategories("action")) - AddIntFlag(cmdActionWait, doctl.ArgPollTime, 5, "Re-poll time in seconds") + AddIntFlag(cmdActionWait, doctl.ArgPollTime, "", 5, "Re-poll time in seconds") return cmd } diff --git a/commands/doit.go b/commands/doit.go index e93d6d512..34fcfa806 100644 --- a/commands/doit.go +++ b/commands/doit.go @@ -213,9 +213,9 @@ func isBeta() bool { } // AddStringFlag adds a string flag to a command. -func AddStringFlag(cmd *Command, name, dflt, desc string, opts ...flagOpt) { +func AddStringFlag(cmd *Command, name, shorthand, dflt, desc string, opts ...flagOpt) { fn := flagName(cmd, name) - cmd.Flags().String(name, dflt, desc) + cmd.Flags().StringP(name, shorthand, dflt, desc) for _, o := range opts { o(cmd, name, fn) @@ -225,9 +225,9 @@ func AddStringFlag(cmd *Command, name, dflt, desc string, opts ...flagOpt) { } // AddIntFlag adds an integr flag to a command. -func AddIntFlag(cmd *Command, name string, def int, desc string, opts ...flagOpt) { +func AddIntFlag(cmd *Command, name, shorthand string, def int, desc string, opts ...flagOpt) { fn := flagName(cmd, name) - cmd.Flags().Int(name, def, desc) + cmd.Flags().IntP(name, shorthand, def, desc) viper.BindPFlag(fn, cmd.Flags().Lookup(name)) for _, o := range opts { @@ -236,9 +236,9 @@ func AddIntFlag(cmd *Command, name string, def int, desc string, opts ...flagOpt } // AddBoolFlag adds a boolean flag to a command. -func AddBoolFlag(cmd *Command, name string, def bool, desc string, opts ...flagOpt) { +func AddBoolFlag(cmd *Command, name, shorthand string, def bool, desc string, opts ...flagOpt) { fn := flagName(cmd, name) - cmd.Flags().Bool(name, def, desc) + cmd.Flags().BoolP(name, shorthand, def, desc) viper.BindPFlag(fn, cmd.Flags().Lookup(name)) for _, o := range opts { @@ -247,9 +247,9 @@ func AddBoolFlag(cmd *Command, name string, def bool, desc string, opts ...flagO } // AddStringSliceFlag adds a string slice flag to a command. -func AddStringSliceFlag(cmd *Command, name string, def []string, desc string, opts ...flagOpt) { +func AddStringSliceFlag(cmd *Command, name, shorthand string, def []string, desc string, opts ...flagOpt) { fn := flagName(cmd, name) - cmd.Flags().StringSlice(name, def, desc) + cmd.Flags().StringSliceP(name, shorthand, def, desc) viper.BindPFlag(fn, cmd.Flags().Lookup(name)) for _, o := range opts { @@ -401,8 +401,8 @@ func cmdBuilderWithInit(parent *Command, cr CmdRunner, cliText, desc string, out if cols := c.fmtCols; cols != nil { formatHelp := fmt.Sprintf("Columns for output in a comma seperated list. Possible values: %s", strings.Join(cols, ",")) - AddStringFlag(c, doctl.ArgFormat, "", formatHelp) - AddBoolFlag(c, doctl.ArgNoHeader, false, "hide headers") + AddStringFlag(c, doctl.ArgFormat, "", "", formatHelp) + AddBoolFlag(c, doctl.ArgNoHeader, "", false, "hide headers") } return c diff --git a/commands/domains.go b/commands/domains.go index bbaadd91f..2f8da6b18 100644 --- a/commands/domains.go +++ b/commands/domains.go @@ -38,8 +38,8 @@ func Domain() *Command { cmdDomainCreate := CmdBuilder(cmd, RunDomainCreate, "create ", "create domain", Writer, aliasOpt("c"), displayerType(&domain{}), docCategories("domain")) - AddStringFlag(cmdDomainCreate, doctl.ArgIPAddress, "", "IP address", requiredOpt()) - + AddStringFlag(cmdDomainCreate, doctl.ArgIPAddress, "", "", "IP address", requiredOpt()) + CmdBuilder(cmd, RunDomainList, "list", "list domains", Writer, aliasOpt("ls"), displayerType(&domain{}), docCategories("domain")) @@ -59,29 +59,29 @@ func Domain() *Command { cmdRecordList := CmdBuilder(cmdRecord, RunRecordList, "list ", "list records", Writer, aliasOpt("ls"), displayerType(&domainRecord{}), docCategories("domain")) - AddStringFlag(cmdRecordList, doctl.ArgDomainName, "", "Domain name") + AddStringFlag(cmdRecordList, doctl.ArgDomainName, "", "", "Domain name") cmdRecordCreate := CmdBuilder(cmdRecord, RunRecordCreate, "create ", "create record", Writer, aliasOpt("c"), displayerType(&domainRecord{}), docCategories("domain")) - AddStringFlag(cmdRecordCreate, doctl.ArgRecordType, "", "Record type") - AddStringFlag(cmdRecordCreate, doctl.ArgRecordName, "", "Record name") - AddStringFlag(cmdRecordCreate, doctl.ArgRecordData, "", "Record data") - AddIntFlag(cmdRecordCreate, doctl.ArgRecordPriority, 0, "Record priority") - AddIntFlag(cmdRecordCreate, doctl.ArgRecordPort, 0, "Record port") - AddIntFlag(cmdRecordCreate, doctl.ArgRecordWeight, 0, "Record weight") + AddStringFlag(cmdRecordCreate, doctl.ArgRecordType, "", "", "Record type") + AddStringFlag(cmdRecordCreate, doctl.ArgRecordName, "", "", "Record name") + AddStringFlag(cmdRecordCreate, doctl.ArgRecordData, "", "", "Record data") + AddIntFlag(cmdRecordCreate, doctl.ArgRecordPriority, "", 0, "Record priority") + AddIntFlag(cmdRecordCreate, doctl.ArgRecordPort, "", 0, "Record port") + AddIntFlag(cmdRecordCreate, doctl.ArgRecordWeight, "", 0, "Record weight") CmdBuilder(cmdRecord, RunRecordDelete, "delete ", "delete record", Writer, aliasOpt("d"), docCategories("domain")) cmdRecordUpdate := CmdBuilder(cmdRecord, RunRecordUpdate, "update ", "update record", Writer, aliasOpt("u"), displayerType(&domainRecord{}), docCategories("domain")) - AddIntFlag(cmdRecordUpdate, doctl.ArgRecordID, 0, "Record ID") - AddStringFlag(cmdRecordUpdate, doctl.ArgRecordType, "", "Record type") - AddStringFlag(cmdRecordUpdate, doctl.ArgRecordName, "", "Record name") - AddStringFlag(cmdRecordUpdate, doctl.ArgRecordData, "", "Record data") - AddIntFlag(cmdRecordUpdate, doctl.ArgRecordPriority, 0, "Record priority") - AddIntFlag(cmdRecordUpdate, doctl.ArgRecordPort, 0, "Record port") - AddIntFlag(cmdRecordUpdate, doctl.ArgRecordWeight, 0, "Record weight") + AddIntFlag(cmdRecordUpdate, doctl.ArgRecordID, "", 0, "Record ID") + AddStringFlag(cmdRecordUpdate, doctl.ArgRecordType, "", "", "Record type") + AddStringFlag(cmdRecordUpdate, doctl.ArgRecordName, "", "", "Record name") + AddStringFlag(cmdRecordUpdate, doctl.ArgRecordData, "", "", "Record data") + AddIntFlag(cmdRecordUpdate, doctl.ArgRecordPriority, "", 0, "Record priority") + AddIntFlag(cmdRecordUpdate, doctl.ArgRecordPort, "", 0, "Record port") + AddIntFlag(cmdRecordUpdate, doctl.ArgRecordWeight, "", 0, "Record weight") return cmd } diff --git a/commands/droplet_actions.go b/commands/droplet_actions.go index 0a4ce6e18..7d54cec91 100644 --- a/commands/droplet_actions.go +++ b/commands/droplet_actions.go @@ -61,94 +61,94 @@ func DropletAction() *Command { cmdDropletActionGet := CmdBuilder(cmd, RunDropletActionGet, "get", "get droplet action", Writer, aliasOpt("g"), displayerType(&action{}), docCategories("droplet")) - AddIntFlag(cmdDropletActionGet, doctl.ArgActionID, 0, "Action ID", requiredOpt()) + AddIntFlag(cmdDropletActionGet, doctl.ArgActionID, "", 0, "Action ID", requiredOpt()) cmdDropletActionDisableBackups := CmdBuilder(cmd, RunDropletActionDisableBackups, "disable-backups ", "disable backups", Writer, displayerType(&action{}), docCategories("droplet")) - AddBoolFlag(cmdDropletActionDisableBackups, doctl.ArgCommandWait, false, "Wait for action to complete") + AddBoolFlag(cmdDropletActionDisableBackups, doctl.ArgCommandWait, "", false, "Wait for action to complete") cmdDropletActionReboot := CmdBuilder(cmd, RunDropletActionReboot, "reboot ", "reboot droplet", Writer, displayerType(&action{}), docCategories("droplet")) - AddBoolFlag(cmdDropletActionReboot, doctl.ArgCommandWait, false, "Wait for action to complete") + AddBoolFlag(cmdDropletActionReboot, doctl.ArgCommandWait, "", false, "Wait for action to complete") cmdDropletActionPowerCycle := CmdBuilder(cmd, RunDropletActionPowerCycle, "power-cycle ", "power cycle droplet", Writer, displayerType(&action{}), docCategories("droplet")) - AddBoolFlag(cmdDropletActionPowerCycle, doctl.ArgCommandWait, false, "Wait for action to complete") + AddBoolFlag(cmdDropletActionPowerCycle, doctl.ArgCommandWait, "", false, "Wait for action to complete") cmdDropletActionShutdown := CmdBuilder(cmd, RunDropletActionShutdown, "shutdown ", "shutdown droplet", Writer, displayerType(&action{}), docCategories("droplet")) - AddBoolFlag(cmdDropletActionShutdown, doctl.ArgCommandWait, false, "Wait for action to complete") + AddBoolFlag(cmdDropletActionShutdown, doctl.ArgCommandWait, "", false, "Wait for action to complete") cmdDropletActionPowerOff := CmdBuilder(cmd, RunDropletActionPowerOff, "power-off ", "power off droplet", Writer, displayerType(&action{}), docCategories("droplet")) - AddBoolFlag(cmdDropletActionPowerOff, doctl.ArgCommandWait, false, "Wait for action to complete") + AddBoolFlag(cmdDropletActionPowerOff, doctl.ArgCommandWait, "", false, "Wait for action to complete") cmdDropletActionPowerOn := CmdBuilder(cmd, RunDropletActionPowerOn, "power-on ", "power on droplet", Writer, displayerType(&action{}), docCategories("droplet")) - AddBoolFlag(cmdDropletActionPowerOn, doctl.ArgCommandWait, false, "Wait for action to complete") + AddBoolFlag(cmdDropletActionPowerOn, doctl.ArgCommandWait, "", false, "Wait for action to complete") cmdDropletActionPasswordReset := CmdBuilder(cmd, RunDropletActionPasswordReset, "password-reset ", "password reset droplet", Writer, displayerType(&action{}), docCategories("droplet")) - AddBoolFlag(cmdDropletActionPasswordReset, doctl.ArgCommandWait, false, "Wait for action to complete") + AddBoolFlag(cmdDropletActionPasswordReset, doctl.ArgCommandWait, "", false, "Wait for action to complete") cmdDropletActionEnableIPv6 := CmdBuilder(cmd, RunDropletActionEnableIPv6, "enable-ipv6 ", "enable ipv6", Writer, displayerType(&action{}), docCategories("droplet")) - AddBoolFlag(cmdDropletActionEnableIPv6, doctl.ArgCommandWait, false, "Wait for action to complete") + AddBoolFlag(cmdDropletActionEnableIPv6, doctl.ArgCommandWait, "", false, "Wait for action to complete") cmdDropletActionEnablePrivateNetworking := CmdBuilder(cmd, RunDropletActionEnablePrivateNetworking, "enable-private-networking ", "enable private networking", Writer, displayerType(&action{}), docCategories("droplet")) - AddBoolFlag(cmdDropletActionEnablePrivateNetworking, doctl.ArgCommandWait, false, "Wait for action to complete") + AddBoolFlag(cmdDropletActionEnablePrivateNetworking, doctl.ArgCommandWait, "", false, "Wait for action to complete") cmdDropletActionUpgrade := CmdBuilder(cmd, RunDropletActionUpgrade, "upgrade ", "upgrade droplet", Writer, displayerType(&action{}), docCategories("droplet")) - AddBoolFlag(cmdDropletActionUpgrade, doctl.ArgCommandWait, false, "Wait for action to complete") + AddBoolFlag(cmdDropletActionUpgrade, doctl.ArgCommandWait, "", false, "Wait for action to complete") cmdDropletActionRestore := CmdBuilder(cmd, RunDropletActionRestore, "restore ", "restore backup", Writer, displayerType(&action{}), docCategories("droplet")) - AddIntFlag(cmdDropletActionRestore, doctl.ArgImageID, 0, "Image ID", requiredOpt()) - AddBoolFlag(cmdDropletActionRestore, doctl.ArgCommandWait, false, "Wait for action to complete") + AddIntFlag(cmdDropletActionRestore, doctl.ArgImageID, "", 0, "Image ID", requiredOpt()) + AddBoolFlag(cmdDropletActionRestore, doctl.ArgCommandWait, "", false, "Wait for action to complete") cmdDropletActionResize := CmdBuilder(cmd, RunDropletActionResize, "resize ", "resize droplet", Writer, displayerType(&action{}), docCategories("droplet")) - AddBoolFlag(cmdDropletActionResize, doctl.ArgResizeDisk, false, "Resize disk") - AddStringFlag(cmdDropletActionResize, doctl.ArgSizeSlug, "", "New size") - AddBoolFlag(cmdDropletActionResize, doctl.ArgCommandWait, false, "Wait for action to complete") + AddBoolFlag(cmdDropletActionResize, doctl.ArgResizeDisk, "", false, "Resize disk") + AddStringFlag(cmdDropletActionResize, doctl.ArgSizeSlug, "", "", "New size") + AddBoolFlag(cmdDropletActionResize, doctl.ArgCommandWait, "", false, "Wait for action to complete") cmdDropletActionRebuild := CmdBuilder(cmd, RunDropletActionRebuild, "rebuild ", "rebuild droplet", Writer, displayerType(&action{}), docCategories("droplet")) - AddStringFlag(cmdDropletActionRebuild, doctl.ArgImage, "", "Image ID or Slug", requiredOpt()) - AddBoolFlag(cmdDropletActionRebuild, doctl.ArgCommandWait, false, "Wait for action to complete") + AddStringFlag(cmdDropletActionRebuild, doctl.ArgImage, "", "", "Image ID or Slug", requiredOpt()) + AddBoolFlag(cmdDropletActionRebuild, doctl.ArgCommandWait, "", false, "Wait for action to complete") cmdDropletActionRename := CmdBuilder(cmd, RunDropletActionRename, "rename ", "rename droplet", Writer, displayerType(&action{}), docCategories("droplet")) - AddStringFlag(cmdDropletActionRename, doctl.ArgDropletName, "", "Droplet name", requiredOpt()) - AddBoolFlag(cmdDropletActionRename, doctl.ArgCommandWait, false, "Wait for action to complete") + AddStringFlag(cmdDropletActionRename, doctl.ArgDropletName, "", "", "Droplet name", requiredOpt()) + AddBoolFlag(cmdDropletActionRename, doctl.ArgCommandWait, "", false, "Wait for action to complete") cmdDropletActionChangeKernel := CmdBuilder(cmd, RunDropletActionChangeKernel, "change-kernel ", "change kernel", Writer, displayerType(&action{}), docCategories("droplet")) - AddIntFlag(cmdDropletActionChangeKernel, doctl.ArgKernelID, 0, "Kernel ID", requiredOpt()) - AddBoolFlag(cmdDropletActionChangeKernel, doctl.ArgCommandWait, false, "Wait for action to complete") + AddIntFlag(cmdDropletActionChangeKernel, doctl.ArgKernelID, "", 0, "Kernel ID", requiredOpt()) + AddBoolFlag(cmdDropletActionChangeKernel, doctl.ArgCommandWait, "", false, "Wait for action to complete") cmdDropletActionSnapshot := CmdBuilder(cmd, RunDropletActionSnapshot, "snapshot ", "snapshot droplet", Writer, displayerType(&action{}), docCategories("droplet")) - AddStringFlag(cmdDropletActionSnapshot, doctl.ArgSnapshotName, "", "Snapshot name", requiredOpt()) - AddBoolFlag(cmdDropletActionSnapshot, doctl.ArgCommandWait, false, "Wait for action to complete") + AddStringFlag(cmdDropletActionSnapshot, doctl.ArgSnapshotName, "", "", "Snapshot name", requiredOpt()) + AddBoolFlag(cmdDropletActionSnapshot, doctl.ArgCommandWait, "", false, "Wait for action to complete") return cmd } diff --git a/commands/droplets.go b/commands/droplets.go index 652005e55..c7b31b359 100644 --- a/commands/droplets.go +++ b/commands/droplets.go @@ -51,39 +51,39 @@ func Droplet() *Command { cmdDropletCreate := CmdBuilder(cmd, RunDropletCreate, "create NAME [NAME ...]", "create droplet", Writer, aliasOpt("c"), displayerType(&droplet{}), docCategories("droplet")) - AddStringSliceFlag(cmdDropletCreate, doctl.ArgSSHKeys, []string{}, "SSH Keys or fingerprints") - AddStringFlag(cmdDropletCreate, doctl.ArgUserData, "", "User data") - AddStringFlag(cmdDropletCreate, doctl.ArgUserDataFile, "", "User data file") - AddBoolFlag(cmdDropletCreate, doctl.ArgCommandWait, false, "Wait for droplet to be created") - AddStringFlag(cmdDropletCreate, doctl.ArgRegionSlug, "", "Droplet region", + AddStringSliceFlag(cmdDropletCreate, doctl.ArgSSHKeys, "", []string{}, "SSH Keys or fingerprints") + AddStringFlag(cmdDropletCreate, doctl.ArgUserData, "", "", "User data") + AddStringFlag(cmdDropletCreate, doctl.ArgUserDataFile, "", "", "User data file") + AddBoolFlag(cmdDropletCreate, doctl.ArgCommandWait, "", false, "Wait for droplet to be created") + AddStringFlag(cmdDropletCreate, doctl.ArgRegionSlug, "", "", "Droplet region", requiredOpt()) - AddStringFlag(cmdDropletCreate, doctl.ArgSizeSlug, "", "Droplet size", + AddStringFlag(cmdDropletCreate, doctl.ArgSizeSlug, "", "", "Droplet size", requiredOpt()) - AddBoolFlag(cmdDropletCreate, doctl.ArgBackups, false, "Backup droplet") - AddBoolFlag(cmdDropletCreate, doctl.ArgIPv6, false, "IPv6 support") - AddBoolFlag(cmdDropletCreate, doctl.ArgPrivateNetworking, false, "Private networking") - AddStringFlag(cmdDropletCreate, doctl.ArgImage, "", "Droplet image", + AddBoolFlag(cmdDropletCreate, doctl.ArgBackups, "", false, "Backup droplet") + AddBoolFlag(cmdDropletCreate, doctl.ArgIPv6, "", false, "IPv6 support") + AddBoolFlag(cmdDropletCreate, doctl.ArgPrivateNetworking, "", false, "Private networking") + AddStringFlag(cmdDropletCreate, doctl.ArgImage, "", "", "Droplet image", requiredOpt()) - AddStringFlag(cmdDropletCreate, doctl.ArgTagName, "", "Tag name") - AddStringSliceFlag(cmdDropletCreate, doctl.ArgTagNames, []string{}, "Tag names") + AddStringFlag(cmdDropletCreate, doctl.ArgTagName, "", "", "Tag name") + AddStringSliceFlag(cmdDropletCreate, doctl.ArgTagNames, "", []string{}, "Tag names") - AddStringSliceFlag(cmdDropletCreate, doctl.ArgVolumeList, []string{}, "Volumes to attach") + AddStringSliceFlag(cmdDropletCreate, doctl.ArgVolumeList, "", []string{}, "Volumes to attach") cmdRunDropletDelete := CmdBuilder(cmd, RunDropletDelete, "delete ID [ID|Name ...]", "Delete droplet by id or name", Writer, aliasOpt("d", "del", "rm"), docCategories("droplet")) - AddBoolFlag(cmdRunDropletDelete, doctl.ArgDeleteForce, false, "Force droplet delete") + AddBoolFlag(cmdRunDropletDelete, doctl.ArgDeleteForce, doctl.ArgShortDeleteForce, false, "Force droplet delete") cmdRunDropletGet := CmdBuilder(cmd, RunDropletGet, "get", "get droplet", Writer, aliasOpt("g"), displayerType(&droplet{}), docCategories("droplet")) - AddStringFlag(cmdRunDropletGet, doctl.ArgTemplate, "", "Go template format. Few sample values:{{.ID}} {{.Name}} {{.Memory}} {{.Region.Name}} {{.Image}} {{.Tags}}") + AddStringFlag(cmdRunDropletGet, doctl.ArgTemplate, "", "", "Go template format. Few sample values:{{.ID}} {{.Name}} {{.Memory}} {{.Region.Name}} {{.Image}} {{.Tags}}") CmdBuilder(cmd, RunDropletKernels, "kernels ", "droplet kernels", Writer, aliasOpt("k"), displayerType(&kernel{}), docCategories("droplet")) cmdRunDropletList := CmdBuilder(cmd, RunDropletList, "list [GLOB]", "list droplets", Writer, aliasOpt("ls"), displayerType(&droplet{}), docCategories("droplet")) - AddStringFlag(cmdRunDropletList, doctl.ArgRegionSlug, "", "Droplet region") - AddStringFlag(cmdRunDropletList, doctl.ArgTagName, "", "Tag name") + AddStringFlag(cmdRunDropletList, doctl.ArgRegionSlug, "", "", "Droplet region") + AddStringFlag(cmdRunDropletList, doctl.ArgTagName, "", "", "Tag name") CmdBuilder(cmd, RunDropletNeighbors, "neighbors ", "droplet neighbors", Writer, aliasOpt("n"), displayerType(&droplet{}), docCategories("droplet")) @@ -93,12 +93,12 @@ func Droplet() *Command { cmdRunDropletTag := CmdBuilder(cmd, RunDropletTag, "tag ", "tag", Writer, docCategories("droplet")) - AddStringFlag(cmdRunDropletTag, doctl.ArgTagName, "", "Tag name", + AddStringFlag(cmdRunDropletTag, doctl.ArgTagName, "", "", "Tag name", requiredOpt()) cmdRunDropletUntag := CmdBuilder(cmd, RunDropletUntag, "untag ", "untag", Writer, docCategories("droplet")) - AddStringSliceFlag(cmdRunDropletUntag, doctl.ArgTagName, []string{}, "tag names") + AddStringSliceFlag(cmdRunDropletUntag, doctl.ArgTagName, "", []string{}, "tag names") return cmd } diff --git a/commands/floating_ips.go b/commands/floating_ips.go index 0f1e02505..6ca7eb467 100644 --- a/commands/floating_ips.go +++ b/commands/floating_ips.go @@ -38,10 +38,10 @@ func FloatingIP() *Command { cmdFloatingIPCreate := CmdBuilder(cmd, RunFloatingIPCreate, "create", "create a floating IP", Writer, aliasOpt("c"), displayerType(&floatingIP{}), docCategories("floatingip")) - AddStringFlag(cmdFloatingIPCreate, doctl.ArgRegionSlug, "", + AddStringFlag(cmdFloatingIPCreate, doctl.ArgRegionSlug, "", "", fmt.Sprintf("Region where to create the floating IP. (mutually exclusive with %s)", doctl.ArgDropletID)) - AddIntFlag(cmdFloatingIPCreate, doctl.ArgDropletID, 0, + AddIntFlag(cmdFloatingIPCreate, doctl.ArgDropletID, "", 0, fmt.Sprintf("ID of the droplet to assign the IP to. (mutually exclusive with %s)", doctl.ArgRegionSlug)) @@ -52,7 +52,7 @@ func FloatingIP() *Command { cmdFloatingIPList := CmdBuilder(cmd, RunFloatingIPList, "list", "list all floating IP addresses", Writer, aliasOpt("ls"), displayerType(&floatingIP{}), docCategories("floatingip")) - AddStringFlag(cmdFloatingIPList, doctl.ArgRegionSlug, "", "Floating IP region") + AddStringFlag(cmdFloatingIPList, doctl.ArgRegionSlug, "", "", "Floating IP region") return cmd } diff --git a/commands/image_actions.go b/commands/image_actions.go index 9b9970e0c..d6db77cce 100644 --- a/commands/image_actions.go +++ b/commands/image_actions.go @@ -36,13 +36,13 @@ func ImageAction() *Command { cmdImageActionsGet := CmdBuilder(cmd, RunImageActionsGet, "get ", "get image action", Writer, displayerType(&action{}), docCategories("image")) - AddIntFlag(cmdImageActionsGet, doctl.ArgActionID, 0, "action id", requiredOpt()) + AddIntFlag(cmdImageActionsGet, doctl.ArgActionID, "", 0, "action id", requiredOpt()) cmdImageActionsTransfer := CmdBuilder(cmd, RunImageActionsTransfer, "transfer ", "transfer image", Writer, displayerType(&action{}), docCategories("image")) - AddStringFlag(cmdImageActionsTransfer, doctl.ArgRegionSlug, "", "region", requiredOpt()) - AddBoolFlag(cmdImageActionsTransfer, doctl.ArgCommandWait, false, "Wait for action to complete") + AddStringFlag(cmdImageActionsTransfer, doctl.ArgRegionSlug, "", "", "region", requiredOpt()) + AddBoolFlag(cmdImageActionsTransfer, doctl.ArgCommandWait, "", false, "Wait for action to complete") return cmd } diff --git a/commands/images.go b/commands/images.go index 4ae329b5d..96f23b962 100644 --- a/commands/images.go +++ b/commands/images.go @@ -37,33 +37,33 @@ func Images() *Command { cmdImagesList := CmdBuilder(cmd, RunImagesList, "list", "list images", Writer, aliasOpt("ls"), displayerType(&image{}), docCategories("image")) - AddBoolFlag(cmdImagesList, doctl.ArgImagePublic, false, "List public images") + AddBoolFlag(cmdImagesList, doctl.ArgImagePublic, "", false, "List public images") cmdImagesListDistribution := CmdBuilder(cmd, RunImagesListDistribution, "list-distribution", "list distribution images", Writer, displayerType(&image{}), docCategories("image")) - AddBoolFlag(cmdImagesListDistribution, doctl.ArgImagePublic, false, "List public images") + AddBoolFlag(cmdImagesListDistribution, doctl.ArgImagePublic, "", false, "List public images") cmdImagesListApplication := CmdBuilder(cmd, RunImagesListApplication, "list-application", "list application images", Writer, displayerType(&image{}), docCategories("image")) - AddBoolFlag(cmdImagesListApplication, doctl.ArgImagePublic, false, "List public images") + AddBoolFlag(cmdImagesListApplication, doctl.ArgImagePublic, "", false, "List public images") cmdImagesListUser := CmdBuilder(cmd, RunImagesListUser, "list-user", "list user images", Writer, displayerType(&image{}), docCategories("image")) - AddBoolFlag(cmdImagesListUser, doctl.ArgImagePublic, false, "List public images") + AddBoolFlag(cmdImagesListUser, doctl.ArgImagePublic, "", false, "List public images") CmdBuilder(cmd, RunImagesGet, "get ", "Get image", Writer, displayerType(&image{}), docCategories("image")) cmdImagesUpdate := CmdBuilder(cmd, RunImagesUpdate, "update ", "Update image", Writer, displayerType(&image{}), docCategories("image")) - AddStringFlag(cmdImagesUpdate, doctl.ArgImageName, "", "Image name", requiredOpt()) + AddStringFlag(cmdImagesUpdate, doctl.ArgImageName, "", "", "Image name", requiredOpt()) cmdRunImagesDelete := CmdBuilder(cmd, RunImagesDelete, "delete ", "Delete image", Writer, docCategories("image")) - AddBoolFlag(cmdRunImagesDelete, doctl.ArgDeleteForce, false, "Force image delete") + AddBoolFlag(cmdRunImagesDelete, doctl.ArgDeleteForce, doctl.ArgShortDeleteForce, false, "Force image delete") return cmd } diff --git a/commands/snapshots.go b/commands/snapshots.go index 92fdae79b..40f8bdd77 100644 --- a/commands/snapshots.go +++ b/commands/snapshots.go @@ -36,15 +36,15 @@ func Snapshot() *Command { cmdRunSnapshotList := CmdBuilder(cmd, RunSnapshotList, "list [GLOB]", "list snapshots", Writer, aliasOpt("ls"), displayerType(&snapshot{}), docCategories("snapshot")) - AddStringFlag(cmdRunSnapshotList, doctl.ArgResourceType, "", "Resource type") - AddStringFlag(cmdRunSnapshotList, doctl.ArgRegionSlug, "", "Snapshot region") + AddStringFlag(cmdRunSnapshotList, doctl.ArgResourceType, "", "", "Resource type") + AddStringFlag(cmdRunSnapshotList, doctl.ArgRegionSlug, "", "", "Snapshot region") CmdBuilder(cmd, RunSnapshotGet, "get", "get snapshot", Writer, aliasOpt("g"), displayerType(&droplet{}), docCategories("snapshot")) cmdRunSnapshotDelete := CmdBuilder(cmd, RunSnapshotDelete, "delete", "delete snapshot", Writer, aliasOpt("d"), displayerType(&droplet{}), docCategories("snapshot")) - AddBoolFlag(cmdRunSnapshotDelete, doctl.ArgDeleteForce, false, "Force snapshot delete") + AddBoolFlag(cmdRunSnapshotDelete, doctl.ArgDeleteForce, doctl.ArgShortDeleteForce, false, "Force snapshot delete") return cmd } diff --git a/commands/ssh.go b/commands/ssh.go index 9743cf18a..dbf251046 100644 --- a/commands/ssh.go +++ b/commands/ssh.go @@ -39,11 +39,11 @@ func SSH(parent *Command) *Command { cmdSSH := CmdBuilder(parent, RunSSH, "ssh ", "ssh to droplet", Writer, docCategories("droplet")) - AddStringFlag(cmdSSH, doctl.ArgSSHUser, "root", "ssh user") - AddStringFlag(cmdSSH, doctl.ArgsSSHKeyPath, path, "path to private ssh key") - AddIntFlag(cmdSSH, doctl.ArgsSSHPort, 22, "port sshd is running on") - AddBoolFlag(cmdSSH, doctl.ArgsSSHAgentForwarding, false, "enable ssh agent forwarding") - AddBoolFlag(cmdSSH, doctl.ArgsSSHPrivateIP, false, "ssh to private ip instead of public ip") + AddStringFlag(cmdSSH, doctl.ArgSSHUser, "", "root", "ssh user") + AddStringFlag(cmdSSH, doctl.ArgsSSHKeyPath, "", path, "path to private ssh key") + AddIntFlag(cmdSSH, doctl.ArgsSSHPort, "", 22, "port sshd is running on") + AddBoolFlag(cmdSSH, doctl.ArgsSSHAgentForwarding, "", false, "enable ssh agent forwarding") + AddBoolFlag(cmdSSH, doctl.ArgsSSHPrivateIP, "", false, "ssh to private ip instead of public ip") return cmdSSH } diff --git a/commands/sshkeys.go b/commands/sshkeys.go index 5c4fff13e..e9ab81580 100644 --- a/commands/sshkeys.go +++ b/commands/sshkeys.go @@ -44,18 +44,18 @@ func SSHKeys() *Command { cmdSSHKeysCreate := CmdBuilder(cmd, RunKeyCreate, "create ", "create ssh key", Writer, aliasOpt("c"), displayerType(&key{}), docCategories("sshkeys")) - AddStringFlag(cmdSSHKeysCreate, doctl.ArgKeyPublicKey, "", "Key contents", requiredOpt()) + AddStringFlag(cmdSSHKeysCreate, doctl.ArgKeyPublicKey, "", "", "Key contents", requiredOpt()) cmdSSHKeysImport := CmdBuilder(cmd, RunKeyImport, "import ", "import ssh key", Writer, aliasOpt("i"), displayerType(&key{}), docCategories("sshkeys")) - AddStringFlag(cmdSSHKeysImport, doctl.ArgKeyPublicKeyFile, "", "Public key file", requiredOpt()) + AddStringFlag(cmdSSHKeysImport, doctl.ArgKeyPublicKeyFile, "", "", "Public key file", requiredOpt()) CmdBuilder(cmd, RunKeyDelete, "delete ", "delete ssh key", Writer, aliasOpt("d"), docCategories("sshkeys")) cmdSSHKeysUpdate := CmdBuilder(cmd, RunKeyUpdate, "update ", "update ssh key", Writer, aliasOpt("u"), displayerType(&key{}), docCategories("sshkeys")) - AddStringFlag(cmdSSHKeysUpdate, doctl.ArgKeyName, "", "Key name", requiredOpt()) + AddStringFlag(cmdSSHKeysUpdate, doctl.ArgKeyName, "", "", "Key name", requiredOpt()) return cmd } diff --git a/commands/tags.go b/commands/tags.go index 402ef5e9e..a6277229f 100644 --- a/commands/tags.go +++ b/commands/tags.go @@ -45,12 +45,12 @@ func Tags() *Command { cmdTagUpdate := CmdBuilder(cmd, RunCmdTagUpdate, "update NAME", "update tag", Writer, docCategories("tag")) - AddStringFlag(cmdTagUpdate, doctl.ArgTagName, "", "Tag name", + AddStringFlag(cmdTagUpdate, doctl.ArgTagName, "", "", "Tag name", requiredOpt()) cmdRunTagDelete := CmdBuilder(cmd, RunCmdTagDelete, "delete NAME", "delete tag", Writer, docCategories("tag")) - AddBoolFlag(cmdRunTagDelete, doctl.ArgDeleteForce, false, "Force tag delete") + AddBoolFlag(cmdRunTagDelete, doctl.ArgDeleteForce, doctl.ArgShortDeleteForce, false, "Force tag delete") return cmd } diff --git a/commands/volumes.go b/commands/volumes.go index 3cce8d346..bf60edcc9 100644 --- a/commands/volumes.go +++ b/commands/volumes.go @@ -23,21 +23,21 @@ func Volume() *Command { cmdRunVolumeList := CmdBuilder(cmd, RunVolumeList, "list", "list volume", Writer, aliasOpt("ls"), displayerType(&volume{})) - AddStringFlag(cmdRunVolumeList, doctl.ArgRegionSlug, "", "Volume region") + AddStringFlag(cmdRunVolumeList, doctl.ArgRegionSlug, "", "", "Volume region") cmdVolumeCreate := CmdBuilder(cmd, RunVolumeCreate, "create [name]", "create a volume", Writer, aliasOpt("c"), displayerType(&volume{})) - AddStringFlag(cmdVolumeCreate, doctl.ArgVolumeSize, "4TiB", "Volume size", + AddStringFlag(cmdVolumeCreate, doctl.ArgVolumeSize, "", "4TiB", "Volume size", requiredOpt()) - AddStringFlag(cmdVolumeCreate, doctl.ArgVolumeDesc, "", "Volume description") - AddStringFlag(cmdVolumeCreate, doctl.ArgVolumeRegion, "", "Volume region", + AddStringFlag(cmdVolumeCreate, doctl.ArgVolumeDesc, "", "", "Volume description") + AddStringFlag(cmdVolumeCreate, doctl.ArgVolumeRegion, "", "", "Volume region", requiredOpt()) CmdBuilder(cmd, RunVolumeDelete, "delete [ID]", "delete a volume", Writer, aliasOpt("rm")) - CmdBuilder(cmd, RunVolumeGet, "get [ID]", "get a volume", Writer, aliasOpt("g"), + CmdBuilder(cmd, RunVolumeGet, "get [ID]", "get a volume", Writer, aliasOpt("g"), displayerType(&volume{})) return cmd From 3e340d71edf80faec91f3bbcefcc7b0e400db74b Mon Sep 17 00:00:00 2001 From: Marko Mudrinic Date: Thu, 22 Dec 2016 18:51:31 +0100 Subject: [PATCH 2/6] vendoring godo update --- vendor/github.com/digitalocean/godo/droplets.go | 2 ++ vendor/github.com/digitalocean/godo/droplets_test.go | 2 ++ vendor/github.com/digitalocean/godo/godo_test.go | 4 ++-- vendor/github.com/digitalocean/godo/storage.go | 12 ------------ vendor/github.com/digitalocean/godo/storage_test.go | 8 ++++---- vendor/manifest | 2 +- 6 files changed, 11 insertions(+), 19 deletions(-) diff --git a/vendor/github.com/digitalocean/godo/droplets.go b/vendor/github.com/digitalocean/godo/droplets.go index 9e210d60b..797c70ed8 100644 --- a/vendor/github.com/digitalocean/godo/droplets.go +++ b/vendor/github.com/digitalocean/godo/droplets.go @@ -204,6 +204,7 @@ type DropletCreateRequest struct { Backups bool `json:"backups"` IPv6 bool `json:"ipv6"` PrivateNetworking bool `json:"private_networking"` + Monitoring bool `json:"monitoring"` UserData string `json:"user_data,omitempty"` Volumes []DropletCreateVolume `json:"volumes,omitempty"` Tags []string `json:"tags"` @@ -219,6 +220,7 @@ type DropletMultiCreateRequest struct { Backups bool `json:"backups"` IPv6 bool `json:"ipv6"` PrivateNetworking bool `json:"private_networking"` + Monitoring bool `json:"monitoring"` UserData string `json:"user_data,omitempty"` Tags []string `json:"tags"` } diff --git a/vendor/github.com/digitalocean/godo/droplets_test.go b/vendor/github.com/digitalocean/godo/droplets_test.go index 18855a016..d7420e4ae 100644 --- a/vendor/github.com/digitalocean/godo/droplets_test.go +++ b/vendor/github.com/digitalocean/godo/droplets_test.go @@ -165,6 +165,7 @@ func TestDroplets_Create(t *testing.T) { "backups": false, "ipv6": false, "private_networking": false, + "monitoring": false, "volumes": []interface{}{ map[string]interface{}{"name": "hello-im-a-volume"}, map[string]interface{}{"id": "hello-im-another-volume"}, @@ -224,6 +225,7 @@ func TestDroplets_CreateMultiple(t *testing.T) { "backups": false, "ipv6": false, "private_networking": false, + "monitoring": false, "tags": []interface{}{"one", "two"}, } diff --git a/vendor/github.com/digitalocean/godo/godo_test.go b/vendor/github.com/digitalocean/godo/godo_test.go index 8ac622054..f16377fbd 100644 --- a/vendor/github.com/digitalocean/godo/godo_test.go +++ b/vendor/github.com/digitalocean/godo/godo_test.go @@ -133,7 +133,7 @@ func TestNewRequest(t *testing.T) { inBody, outBody := &DropletCreateRequest{Name: "l"}, `{"name":"l","region":"","size":"","image":0,`+ `"ssh_keys":null,"backups":false,"ipv6":false,`+ - `"private_networking":false,"tags":null}`+"\n" + `"private_networking":false,"monitoring":false,"tags":null}`+"\n" req, _ := c.NewRequest("GET", inURL, inBody) // test relative URL was expanded @@ -161,7 +161,7 @@ func TestNewRequest_withUserData(t *testing.T) { inBody, outBody := &DropletCreateRequest{Name: "l", UserData: "u"}, `{"name":"l","region":"","size":"","image":0,`+ `"ssh_keys":null,"backups":false,"ipv6":false,`+ - `"private_networking":false,"user_data":"u","tags":null}`+"\n" + `"private_networking":false,"monitoring":false,"user_data":"u","tags":null}`+"\n" req, _ := c.NewRequest("GET", inURL, inBody) // test relative URL was expanded diff --git a/vendor/github.com/digitalocean/godo/storage.go b/vendor/github.com/digitalocean/godo/storage.go index eae80965c..e3a9606d5 100644 --- a/vendor/github.com/digitalocean/godo/storage.go +++ b/vendor/github.com/digitalocean/godo/storage.go @@ -19,18 +19,6 @@ type StorageService interface { GetVolume(string) (*Volume, *Response, error) CreateVolume(*VolumeCreateRequest) (*Volume, *Response, error) DeleteVolume(string) (*Response, error) -} - -// BetaStorageService is an interface for the storage services that are -// not yet stable. The interface is not exposed in the godo.Client and -// requires type-asserting the `StorageService` to make it available. -// -// Note that Beta features will change and compiling against those -// symbols (using type-assertion) is prone to breaking your build -// if you use our master. -type BetaStorageService interface { - StorageService - ListSnapshots(volumeID string, opts *ListOptions) ([]Snapshot, *Response, error) GetSnapshot(string) (*Snapshot, *Response, error) CreateSnapshot(*SnapshotCreateRequest) (*Snapshot, *Response, error) diff --git a/vendor/github.com/digitalocean/godo/storage_test.go b/vendor/github.com/digitalocean/godo/storage_test.go index 58d84711a..441755184 100644 --- a/vendor/github.com/digitalocean/godo/storage_test.go +++ b/vendor/github.com/digitalocean/godo/storage_test.go @@ -234,7 +234,7 @@ func TestStorageSnapshots_ListStorageSnapshots(t *testing.T) { fmt.Fprint(w, jBlob) }) - volumes, _, err := client.Storage.(BetaStorageService).ListSnapshots("98d414c6-295e-4e3a-ac58-eb9456c1e1d1", nil) + volumes, _, err := client.Storage.ListSnapshots("98d414c6-295e-4e3a-ac58-eb9456c1e1d1", nil) if err != nil { t.Errorf("Storage.ListSnapshots returned error: %v", err) } @@ -294,7 +294,7 @@ func TestStorageSnapshots_Get(t *testing.T) { fmt.Fprint(w, jBlob) }) - got, _, err := client.Storage.(BetaStorageService).GetSnapshot("80d414c6-295e-4e3a-ac58-eb9456c1e1d1") + got, _, err := client.Storage.GetSnapshot("80d414c6-295e-4e3a-ac58-eb9456c1e1d1") if err != nil { t.Errorf("Storage.GetSnapshot returned error: %v", err) } @@ -355,7 +355,7 @@ func TestStorageSnapshots_Create(t *testing.T) { fmt.Fprint(w, jBlob) }) - got, _, err := client.Storage.(BetaStorageService).CreateSnapshot(createRequest) + got, _, err := client.Storage.CreateSnapshot(createRequest) if err != nil { t.Errorf("Storage.CreateSnapshot returned error: %v", err) } @@ -372,7 +372,7 @@ func TestStorageSnapshots_Destroy(t *testing.T) { testMethod(t, r, "DELETE") }) - _, err := client.Storage.(BetaStorageService).DeleteSnapshot("80d414c6-295e-4e3a-ac58-eb9456c1e1d1") + _, err := client.Storage.DeleteSnapshot("80d414c6-295e-4e3a-ac58-eb9456c1e1d1") if err != nil { t.Errorf("Storage.DeleteSnapshot returned error: %v", err) } diff --git a/vendor/manifest b/vendor/manifest index 0b4fa7d90..46999e24e 100644 --- a/vendor/manifest +++ b/vendor/manifest @@ -87,7 +87,7 @@ "importpath": "github.com/digitalocean/godo", "repository": "https://github.com/digitalocean/godo", "vcs": "git", - "revision": "c9f63401f5f1de6a30fc31ebd61285fe5d7f6c0e", + "revision": "7c9bf156916c9a1bf90936231549388231dd5d4e", "branch": "master" }, { From 6e8eaa1595d44bc7efef99717d30dbb18855750d Mon Sep 17 00:00:00 2001 From: Marko Mudrinic Date: Thu, 22 Dec 2016 19:02:05 +0100 Subject: [PATCH 3/6] resolving conflicts --- args.go | 2 ++ commands/droplets.go | 9 ++++++++- commands/droplets_test.go | 3 ++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/args.go b/args.go index 73e24c9c3..eb6d3681a 100644 --- a/args.go +++ b/args.go @@ -58,6 +58,8 @@ const ( ArgIPv6 = "enable-ipv6" // ArgPrivateNetworking is an enable private networking argument. ArgPrivateNetworking = "enable-private-networking" + // ArgMonitoring is an enable monitoring argument. + ArgMonitoring = "enable-monitoring" // ArgRecordData is a record data argument. ArgRecordData = "record-data" // ArgRecordID is a record id argument. diff --git a/commands/droplets.go b/commands/droplets.go index c7b31b359..bed82b410 100644 --- a/commands/droplets.go +++ b/commands/droplets.go @@ -15,12 +15,12 @@ package commands import ( "fmt" - "text/template" "io/ioutil" "sort" "strconv" "strings" "sync" + "text/template" "github.com/digitalocean/doctl" "github.com/digitalocean/doctl/do" @@ -62,6 +62,7 @@ func Droplet() *Command { AddBoolFlag(cmdDropletCreate, doctl.ArgBackups, "", false, "Backup droplet") AddBoolFlag(cmdDropletCreate, doctl.ArgIPv6, "", false, "IPv6 support") AddBoolFlag(cmdDropletCreate, doctl.ArgPrivateNetworking, "", false, "Private networking") + AddBoolFlag(cmdDropletCreate, doctl.ArgMonitoring, "", false, "Monitoring") AddStringFlag(cmdDropletCreate, doctl.ArgImage, "", "", "Droplet image", requiredOpt()) AddStringFlag(cmdDropletCreate, doctl.ArgTagName, "", "", "Tag name") @@ -172,6 +173,11 @@ func RunDropletCreate(c *CmdConfig) error { return err } + monitoring, err := c.Doit.GetBool(c.NS, doctl.ArgMonitoring) + if err != nil { + return err + } + keys, err := c.Doit.GetStringSlice(c.NS, doctl.ArgSSHKeys) if err != nil { return err @@ -243,6 +249,7 @@ func RunDropletCreate(c *CmdConfig) error { Backups: backups, IPv6: ipv6, PrivateNetworking: privateNetworking, + Monitoring: monitoring, SSHKeys: sshKeys, UserData: userData, Tags: tagNames, diff --git a/commands/droplets_test.go b/commands/droplets_test.go index d0f77c0d5..a55db7bb4 100644 --- a/commands/droplets_test.go +++ b/commands/droplets_test.go @@ -82,6 +82,7 @@ func TestDropletCreate(t *testing.T) { Backups: false, IPv6: false, PrivateNetworking: false, + Monitoring: false, UserData: "#cloud-config", Tags: []string{"one", "two"}, } @@ -105,7 +106,7 @@ func TestDropletCreateWithTag(t *testing.T) { withTestClient(t, func(config *CmdConfig, tm *tcMocks) { dcr := &godo.DropletCreateRequest{Name: "droplet", Region: "dev0", Size: "1gb", Image: godo.DropletCreateImage{ID: 0, Slug: "image"}, SSHKeys: []godo.DropletCreateSSHKey{}, Backups: false, IPv6: false, PrivateNetworking: false, UserData: "#cloud-config"} tm.droplets.On("Create", dcr, false).Return(&testDroplet, nil) - tm.tags.On("Get","my-tag").Return(&testTag, nil) + tm.tags.On("Get", "my-tag").Return(&testTag, nil) trr := &godo.TagResourcesRequest{ Resources: []godo.Resource{ From 4f776ddd8e5c4ae2980dc3d1819541a3b4acf7b5 Mon Sep 17 00:00:00 2001 From: Marko Mudrinic Date: Thu, 22 Dec 2016 19:11:25 +0100 Subject: [PATCH 4/6] [FINAL] resolving conflicts --- commands/droplets.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/commands/droplets.go b/commands/droplets.go index 1122e49c4..bed82b410 100644 --- a/commands/droplets.go +++ b/commands/droplets.go @@ -59,11 +59,11 @@ func Droplet() *Command { requiredOpt()) AddStringFlag(cmdDropletCreate, doctl.ArgSizeSlug, "", "", "Droplet size", requiredOpt()) - AddBoolFlag(cmdDropletCreate, doctl.ArgBackups, false, "Backup droplet") - AddBoolFlag(cmdDropletCreate, doctl.ArgIPv6, false, "IPv6 support") - AddBoolFlag(cmdDropletCreate, doctl.ArgPrivateNetworking, false, "Private networking") - AddBoolFlag(cmdDropletCreate, doctl.ArgMonitoring, false, "Monitoring") - AddStringFlag(cmdDropletCreate, doctl.ArgImage, "", "Droplet image", + AddBoolFlag(cmdDropletCreate, doctl.ArgBackups, "", false, "Backup droplet") + AddBoolFlag(cmdDropletCreate, doctl.ArgIPv6, "", false, "IPv6 support") + AddBoolFlag(cmdDropletCreate, doctl.ArgPrivateNetworking, "", false, "Private networking") + AddBoolFlag(cmdDropletCreate, doctl.ArgMonitoring, "", false, "Monitoring") + AddStringFlag(cmdDropletCreate, doctl.ArgImage, "", "", "Droplet image", requiredOpt()) AddStringFlag(cmdDropletCreate, doctl.ArgTagName, "", "", "Tag name") AddStringSliceFlag(cmdDropletCreate, doctl.ArgTagNames, "", []string{}, "Tag names") From a18db077d771338a6888163d52a789d6dd6dc2ec Mon Sep 17 00:00:00 2001 From: Marko Mudrinic Date: Fri, 23 Dec 2016 17:14:04 +0100 Subject: [PATCH 5/6] formating --- commands/domains.go | 2 +- commands/volumes.go | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/commands/domains.go b/commands/domains.go index 2f8da6b18..d7ce30ae9 100644 --- a/commands/domains.go +++ b/commands/domains.go @@ -39,7 +39,7 @@ func Domain() *Command { cmdDomainCreate := CmdBuilder(cmd, RunDomainCreate, "create ", "create domain", Writer, aliasOpt("c"), displayerType(&domain{}), docCategories("domain")) AddStringFlag(cmdDomainCreate, doctl.ArgIPAddress, "", "", "IP address", requiredOpt()) - + CmdBuilder(cmd, RunDomainList, "list", "list domains", Writer, aliasOpt("ls"), displayerType(&domain{}), docCategories("domain")) diff --git a/commands/volumes.go b/commands/volumes.go index bf60edcc9..fc0f8361a 100644 --- a/commands/volumes.go +++ b/commands/volumes.go @@ -27,7 +27,6 @@ func Volume() *Command { cmdVolumeCreate := CmdBuilder(cmd, RunVolumeCreate, "create [name]", "create a volume", Writer, aliasOpt("c"), displayerType(&volume{})) - AddStringFlag(cmdVolumeCreate, doctl.ArgVolumeSize, "", "4TiB", "Volume size", requiredOpt()) AddStringFlag(cmdVolumeCreate, doctl.ArgVolumeDesc, "", "", "Volume description") @@ -37,7 +36,7 @@ func Volume() *Command { CmdBuilder(cmd, RunVolumeDelete, "delete [ID]", "delete a volume", Writer, aliasOpt("rm")) - CmdBuilder(cmd, RunVolumeGet, "get [ID]", "get a volume", Writer, aliasOpt("g"), + CmdBuilder(cmd, RunVolumeGet, "get [ID]", "get a volume", Writer, aliasOpt("g"), displayerType(&volume{})) return cmd From 58dad03b10bc15e0c6cdf4d1a9bd2c0323088efd Mon Sep 17 00:00:00 2001 From: Marko Mudrinic Date: Fri, 23 Dec 2016 17:57:32 +0100 Subject: [PATCH 6/6] removed placeholder --- args_short.go | 119 +------------------------------------------------- 1 file changed, 1 insertion(+), 118 deletions(-) diff --git a/args_short.go b/args_short.go index 649ab64c2..7b6140857 100644 --- a/args_short.go +++ b/args_short.go @@ -14,123 +14,6 @@ limitations under the License. package doctl const ( - /** - // ArgActionID is an action id argument. - ArgActionID = "action-id" - // ArgActionAfter is an action after argument. - ArgActionAfter = "after" - // ArgActionBefore is an action before argument. - ArgActionBefore = "before" - // ArgActionResourceType is an action resource type argument. - ArgActionResourceType = "resource-type" - // ArgActionRegion is an action region argument. - ArgActionRegion = "region" - // ArgActionStatus is an action status argument. - ArgActionStatus = "status" - // ArgActionType is an action type argument. - ArgActionType = "action-type" - // ArgCommandWait is a wait for a droplet to be created argument. - ArgCommandWait = "wait" - // ArgDomainName is a domain name argument. - ArgDomainName = "domain-name" - // ArgDropletID is a droplet id argument. - ArgDropletID = "droplet-id" - // ArgKernelID is a ekrnel id argument. - ArgKernelID = "kernel-id" - // ArgImage is an image argument. - ArgImage = "image" - // ArgImageID is an image id argument. - ArgImageID = "image-id" - // ArgImagePublic is a public image argument. - ArgImagePublic = "public" - // ArgImageSlug is an image slug argment. - ArgImageSlug = "image-slug" - // ArgIPAddress is an IP address argument. - ArgIPAddress = "ip-address" - // ArgDropletName is a droplet name argument. - ArgDropletName = "droplet-name" - // ArgResizeDisk is a resize disk argument. - ArgResizeDisk = "resize-disk" - // ArgSnapshotName is a snapshot name arugment. - ArgSnapshotName = "snapshot-name" - // ArgBackups is an enable backups argument. - ArgBackups = "enable-backups" - // ArgIPv6 is an enable IPv6 argument. - ArgIPv6 = "enable-ipv6" - // ArgPrivateNetworking is an enable private networking argument. - ArgPrivateNetworking = "enable-private-networking" - // ArgRecordData is a record data argument. - ArgRecordData = "record-data" - // ArgRecordID is a record id argument. - ArgRecordID = "record-id" - // ArgRecordName is a record name argument. - ArgRecordName = "record-name" - // ArgRecordPort is a record port argument. - ArgRecordPort = "record-port" - // ArgRecordPriority is a record priority argument. - ArgRecordPriority = "record-priority" - // ArgRecordType is a record type argument. - ArgRecordType = "record-type" - // ArgRecordWeight is a record weight argument. - ArgRecordWeight = "record-weight" - // ArgRegionSlug is a region slug argument. - ArgRegionSlug = "region" - // ArgSizeSlug is a size slug argument. - ArgSizeSlug = "size" - // ArgsSSHKeyPath is a ssh argument. - ArgsSSHKeyPath = "ssh-key-path" - // ArgSSHKeys is a ssh key argument. - ArgSSHKeys = "ssh-keys" - // ArgsSSHPort is a ssh argument. - ArgsSSHPort = "ssh-port" - // ArgsSSHAgentForwarding is a ssh argument. - ArgsSSHAgentForwarding = "ssh-agent-forwarding" - // ArgsSSHPrivateIP is a ssh argument. - ArgsSSHPrivateIP = "ssh-private-ip" - // ArgUserData is a user data argument. - ArgUserData = "user-data" - // ArgUserDataFile is a user data file location argument. - ArgUserDataFile = "user-data-file" - // ArgImageName name is an image name argument. - ArgImageName = "image-name" - // ArgKey is a key argument. - ArgKey = "key" - // ArgKeyName is a key name argument. - ArgKeyName = "key-name" - // ArgKeyPublicKey is a public key argument. - ArgKeyPublicKey = "public-key" - // ArgKeyPublicKeyFile is a public key file argument. - ArgKeyPublicKeyFile = "public-key-file" - // ArgSSHUser is a SSH user argument. - ArgSSHUser = "ssh-user" - // ArgFormat is columns to include in output argment. - ArgFormat = "format" - // ArgNoHeader hides the output header. - ArgNoHeader = "no-header" - // ArgPollTime is how long before the next poll argument. - ArgPollTime = "poll-timeout" - // ArgTagName is a tag name - ArgTagName = "tag-name" - // ArgTagNames is a slice of possible tag names - ArgTagNames = "tag-names" - //ArgTemplate is template format - ArgTemplate = "template" - - // ArgOutput is an output type argument. - ArgOutput = "output" - - // ArgVolumeSize is the size of a volume. - ArgVolumeSize = "size" - // ArgVolumeDesc is the description of a volume. - ArgVolumeDesc = "desc" - // ArgVolumeRegion is the region of a volume. - ArgVolumeRegion = "region" - // ArgVolumeList is the IDs of many volumes. - ArgVolumeList = "volumes" - */ - // ArgDeleteForce forces deletion actions + // ArgShortDeleteForce forces deletion actions ArgShortDeleteForce = "f" - - // ArgResourceType is the resource type for snapshot. - //ArgShortResourceType = "resource" )