// RunDropletActionResize resizesx a droplet giving a size slug and // optionally expands the disk. func RunDropletActionResize(ns string, config doit.Config, out io.Writer, args []string) error { fn := func(client *godo.Client) (*godo.Action, error) { if len(args) != 1 { return nil, doit.NewMissingArgsErr(ns) } id, err := strconv.Atoi(args[0]) if err != nil { return nil, err } size, err := config.GetString(ns, doit.ArgImageSlug) if err != nil { return nil, err } disk, err := config.GetBool(ns, doit.ArgResizeDisk) if err != nil { return nil, err } a, _, err := client.DropletActions.Resize(id, size, disk) return a, err } return performAction(out, config, fn) }
func listImages(ns string, config doit.Config, out io.Writer, lFn listFn) error { public, err := config.GetBool(ns, doit.ArgImagePublic) if err != nil { return err } fn := func(opt *godo.ListOptions) ([]interface{}, *godo.Response, error) { list, resp, err := lFn(opt) if err != nil { return nil, nil, err } si := []interface{}{} for _, i := range list { if (public && i.Public) || !public { si = append(si, i) } } return si, resp, err } si, err := doit.PaginateResp(fn) if err != nil { return err } list := make([]godo.Image, len(si)) for i := range si { list[i] = si[i].(godo.Image) } return doit.DisplayOutput(list, out) }