本文整理汇总了Golang中github.com/bryanl/doit.Config.GetGodoClient方法的典型用法代码示例。如果您正苦于以下问题:Golang Config.GetGodoClient方法的具体用法?Golang Config.GetGodoClient怎么用?Golang Config.GetGodoClient使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/bryanl/doit.Config
的用法示例。
在下文中一共展示了Config.GetGodoClient方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: 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)
}
示例2: 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)
}
示例3: 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)
}
示例4: 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)
}
示例5: 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)
}
示例6: 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)
}
示例7: 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)
}
示例8: 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)
}
示例9: RunRecordUpdate
// RunRecordUpdate updates a domain record.
func RunRecordUpdate(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()
recordID, err := config.GetInt(ns, doit.ArgRecordID)
if err != nil {
return err
}
rType, err := config.GetString(ns, doit.ArgRecordType)
if err != nil {
return err
}
rName, err := config.GetString(ns, doit.ArgRecordName)
if err != nil {
return err
}
rData, err := config.GetString(ns, doit.ArgRecordData)
if err != nil {
return err
}
rPriority, err := config.GetInt(ns, doit.ArgRecordPriority)
if err != nil {
return err
}
rPort, err := config.GetInt(ns, doit.ArgRecordPort)
if err != nil {
return err
}
rWeight, err := config.GetInt(ns, doit.ArgRecordWeight)
if err != nil {
return err
}
drcr := &godo.DomainRecordEditRequest{
Type: rType,
Name: rName,
Data: rData,
Priority: rPriority,
Port: rPort,
Weight: rWeight,
}
r, _, err := client.Domains.EditRecord(domainName, recordID, drcr)
if err != nil {
return err
}
return doit.DisplayOutput(r, out)
}
示例10: 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)
}
示例11: 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
}
示例12: 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
}
示例13: 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)
}
示例14: RunRecordDelete
// RunRecordDelete deletes a domain record.
func RunRecordDelete(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()
recordID, err := config.GetInt(ns, doit.ArgRecordID)
if err != nil {
return err
}
_, err = client.Domains.DeleteRecord(domainName, recordID)
return err
}
示例15: RunDomainGet
// RunDomainGet retrieves a domain by name.
func RunDomainGet(ns string, config doit.Config, out io.Writer, args []string) error {
if len(args) != 1 {
return doit.NewMissingArgsErr(ns)
}
id := args[0]
client := config.GetGodoClient()
if len(id) < 1 {
return errors.New("invalid domain name")
}
d, _, err := client.Domains.Get(id)
if err != nil {
return err
}
return doit.DisplayOutput(d, out)
}