func CreateDropletAction(a *gocli.Args) error { started := time.Now() logger.Debugf("would create a new droplet with %#v", a.Args) if len(a.Args) != 1 { return fmt.Errorf("USAGE: create droplet <name>") } droplet := &digo.Droplet{Name: a.Args[0]} var e error if droplet.SizeId, e = a.GetInt("-s"); e != nil { return e } if droplet.ImageId, e = a.GetInt("-i"); e != nil { return e } if droplet.RegionId, e = a.GetInt("-r"); e != nil { return e } if droplet.SshKey, e = a.GetInt("-k"); e != nil { return e } droplet, e = CurrentAccount().CreateDroplet(droplet) if e != nil { return e } droplet.Account = CurrentAccount() logger.Infof("created droplet with id %d", droplet.Id) e = digo.WaitForDroplet(droplet) logger.Infof("droplet %d ready, ip: %s. total_time: %.1fs", droplet.Id, droplet.IpAddress, time.Now().Sub(started).Seconds()) return e }
func CreateStorageHandler(args *gocli.Args) error { req := &profitbricks.CreateStorageRequest{ DataCenterId: args.MustGetString(CLI_DATACENTER_ID), StorageName: args.MustGetString(CLI_NAME), Size: args.MustGetInt(CLI_SIZE), MountImageId: args.MustGetString(CLI_IMAGE_ID), } logger.Printf("creating storage with %#v", req) return profitbricks.NewFromEnv().CreateStorage(req) }
func RebuildDropletAction(a *gocli.Args) error { if len(a.Args) != 1 { return fmt.Errorf("USAGE: droplet rebuild <id>") } i, e := strconv.Atoi(a.Args[0]) if e != nil { return fmt.Errorf("USAGE: droplet rebuild <id>") } imageId, e := a.GetInt("-i") if e != nil { return e } rsp, e := account.RebuildDroplet(i, imageId) if e != nil { return e } logger.Debugf("got response %+v", rsp) droplet := &digo.Droplet{Id: i, Account: account} return digo.WaitForDroplet(droplet) }