本文整理汇总了Golang中github.com/bryanl/doit.Config类的典型用法代码示例。如果您正苦于以下问题:Golang Config类的具体用法?Golang Config怎么用?Golang Config使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Config类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: RunImageActionsTransfer
// RunImageActionsTransfer an image.
func RunImageActionsTransfer(ns string, config doit.Config, out io.Writer, args []string) error {
client := config.GetGodoClient()
if len(args) != 1 {
return doit.NewMissingArgsErr(ns)
}
id, err := strconv.Atoi(args[0])
if err != nil {
return err
}
region, err := config.GetString(ns, doit.ArgRegionSlug)
if err != nil {
return err
}
req := &godo.ActionRequest{
"region": region,
}
action, _, err := client.ImageActions.Transfer(id, req)
if err != nil {
logrus.WithField("err", err).Fatal("could not transfer image")
}
return doit.DisplayOutput(action, out)
}
示例2: RunDomainCreate
// RunDomainCreate runs domain create.
func RunDomainCreate(ns string, config doit.Config, out io.Writer, args []string) error {
if len(args) != 1 {
return doit.NewMissingArgsErr(ns)
}
domainName := args[0]
client := config.GetGodoClient()
ipAddress, err := config.GetString(ns, "ip-address")
if err != nil {
return err
}
req := &godo.DomainCreateRequest{
Name: domainName,
IPAddress: ipAddress,
}
d, _, err := client.Domains.Create(req)
if err != nil {
return err
}
return doit.DisplayOutput(d, out)
}
示例3: RunDomainList
// RunDomainList runs domain create.
func RunDomainList(ns string, config doit.Config, out io.Writer, args []string) error {
client := config.GetGodoClient()
f := func(opt *godo.ListOptions) ([]interface{}, *godo.Response, error) {
list, resp, err := client.Domains.List(opt)
if err != nil {
return nil, nil, err
}
si := make([]interface{}, len(list))
for i := range list {
si[i] = list[i]
}
return si, resp, err
}
si, err := doit.PaginateResp(f)
if err != nil {
return err
}
list := make([]godo.Domain, len(si))
for i := range si {
list[i] = si[i].(godo.Domain)
}
return doit.DisplayOutput(list, out)
}
示例4: RunImagesGet
// RunImagesGet retrieves an image by id or slug.
func RunImagesGet(ns string, config doit.Config, out io.Writer, args []string) error {
client := config.GetGodoClient()
if len(args) != 1 {
return doit.NewMissingArgsErr(ns)
}
rawID := args[0]
var image *godo.Image
var err error
if id, cerr := strconv.Atoi(rawID); cerr == nil {
image, _, err = client.Images.GetByID(id)
} else {
if len(rawID) > 0 {
image, _, err = client.Images.GetBySlug(rawID)
} else {
err = fmt.Errorf("image identifier is required")
}
}
if err != nil {
return err
}
return doit.DisplayOutput(image, out)
}
示例5: listImages
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)
}
示例6: RunImagesUpdate
// RunImagesUpdate updates an image.
func RunImagesUpdate(ns string, config doit.Config, out io.Writer, args []string) error {
client := config.GetGodoClient()
if len(args) != 1 {
return doit.NewMissingArgsErr(ns)
}
id, err := strconv.Atoi(args[0])
if err != nil {
return err
}
name, err := config.GetString(ns, doit.ArgImageName)
req := &godo.ImageUpdateRequest{
Name: name,
}
image, _, err := client.Images.Update(id, req)
if err != nil {
return err
}
return doit.DisplayOutput(image, out)
}
示例7: RunKeyUpdate
// RunKeyUpdate updates a key.
func RunKeyUpdate(ns string, config doit.Config, out io.Writer, args []string) error {
client := config.GetGodoClient()
if len(args) != 1 {
return doit.NewMissingArgsErr(ns)
}
rawKey := args[0]
name, err := config.GetString(ns, doit.ArgKeyName)
if err != nil {
return err
}
req := &godo.KeyUpdateRequest{
Name: name,
}
var key *godo.Key
if i, aerr := strconv.Atoi(rawKey); aerr == nil {
key, _, err = client.Keys.UpdateByID(i, req)
} else {
key, _, err = client.Keys.UpdateByFingerprint(rawKey, req)
}
if err != nil {
return err
}
return doit.DisplayOutput(key, out)
}
示例8: RunKeyGet
// RunKeyGet retrieves a key.
func RunKeyGet(ns string, config doit.Config, out io.Writer, args []string) error {
client := config.GetGodoClient()
if len(args) != 1 {
return doit.NewMissingArgsErr(ns)
}
rawKey := args[0]
var err error
var key *godo.Key
if i, aerr := strconv.Atoi(rawKey); aerr == nil {
key, _, err = client.Keys.GetByID(i)
} else {
if len(rawKey) > 0 {
key, _, err = client.Keys.GetByFingerprint(rawKey)
} else {
err = fmt.Errorf("missing key id or fingerprint")
}
}
if err != nil {
return err
}
return doit.DisplayOutput(key, out)
}
示例9: RunDropletActionResize
// 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)
}
示例10: RunKeyCreate
// RunKeyCreate uploads a SSH key.
func RunKeyCreate(ns string, config doit.Config, out io.Writer, args []string) error {
client := config.GetGodoClient()
if len(args) != 1 {
return doit.NewMissingArgsErr(ns)
}
name := args[0]
publicKey, err := config.GetString(ns, doit.ArgKeyPublicKey)
if err != nil {
return err
}
kcr := &godo.KeyCreateRequest{
Name: name,
PublicKey: publicKey,
}
r, _, err := client.Keys.Create(kcr)
if err != nil {
logrus.WithField("err", err).Fatal("could not create key")
}
return doit.DisplayOutput(r, out)
}
示例11: RunDropletActionRebuild
// RunDropletActionRebuild rebuilds a droplet using an image id or slug.
func RunDropletActionRebuild(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
}
image, err := config.GetString(ns, doit.ArgImage)
if err != nil {
return nil, err
}
var a *godo.Action
if i, aerr := strconv.Atoi(image); aerr == nil {
a, _, err = client.DropletActions.RebuildByImageID(id, i)
} else {
a, _, err = client.DropletActions.RebuildByImageSlug(id, image)
}
return a, err
}
return performAction(out, config, fn)
}
示例12: performAction
func performAction(out io.Writer, config doit.Config, fn actionFn) error {
client := config.GetGodoClient()
a, err := fn(client)
if err != nil {
return err
}
return doit.DisplayOutput(a, out)
}
示例13: RunImagesDelete
// RunImagesDelete deletes an image.
func RunImagesDelete(ns string, config doit.Config, out io.Writer, args []string) error {
client := config.GetGodoClient()
if len(args) != 1 {
return doit.NewMissingArgsErr(ns)
}
id, err := strconv.Atoi(args[0])
if err != nil {
return err
}
_, err = client.Images.Delete(id)
return err
}
示例14: RunDomainDelete
// RunDomainDelete deletes a domain by name.
func RunDomainDelete(ns string, config doit.Config, out io.Writer, args []string) error {
if len(args) != 1 {
return doit.NewMissingArgsErr(ns)
}
name := args[0]
client := config.GetGodoClient()
if len(name) < 1 {
return errors.New("invalid domain name")
}
_, err := client.Domains.Delete(name)
return err
}
示例15: RunFloatingIPActionsUnassign
// RunFloatingIPActionsUnassign unassigns a floating IP to a droplet.
func RunFloatingIPActionsUnassign(ns string, config doit.Config, out io.Writer, args []string) error {
if len(args) != 1 {
return doit.NewMissingArgsErr(ns)
}
ip := args[0]
client := config.GetGodoClient()
action, _, err := client.FloatingIPActions.Unassign(ip)
if err != nil {
logrus.WithField("err", err).Fatal("could not unsassign IP to droplet")
}
return doit.DisplayOutput(action, out)
}