如何在Golang中编写客户端代码来调用createSnapshot softlayer API

时间:2017-03-14 17:45:46

标签: go ibm-cloud-infrastructure

成为Golang的新手(实际上几天前就开始学习它)我有一个关于创建用于使用SL API的客户端代码的基本问题。

所以我的要求是使用Golang调用createsnapshot SL API,它将获取我的耐久性卷的快照,前提是volume id是它的输入参数。你能帮我写一下这个客户的示例代码吗?

我知道如何在python中做到这一点,这就是我如何做到python,但现在我想在golang(改变请求。你知道;))

python代码段:

    client = SoftLayer.create_client_from_env("softlayer username", "softlayer apikey")
    result = client['SoftLayer_Network_Storage'].createSnapshot("snapshot_name", "volume id")
谢谢你!

2 个答案:

答案 0 :(得分:3)

如果我没有误解,你正在使用Python的Softlayer包来执行你在给定代码中所做的事情。

Softlayer也有官方go包[{3}}

通过

在go环境中下载软件包
  

去github.com/softlayer/softlayer-go /...

然后在您的应用程序中导入他的包并使用它。

基本示例:

// 1. Create a session
sess := session.New(username, apikey)

// 2. Get a service
accountService := services.GetAccountService(sess)

// 3. Invoke a method:
account, err := accountService.GetObject()

您需要找到适合您的方法。

答案 1 :(得分:1)

请尝试以下脚本:

// Create Snapshot
//
// This script creates a snapshot for storage
//
// See below references for more details.
// important manual pages:
// http://sldn.softlayer.com/reference/services/SoftLayer_Network_Storage/createSnapshot
// @License: http://sldn.softlayer.com/article/License
// @Author: SoftLayer Technologies, Inc. <sldn@softlayer.com>

package main

import (
    "fmt"
    "github.com/softlayer/softlayer-go/services"
    "github.com/softlayer/softlayer-go/session"
    "encoding/json"
)

func main() {
  username    := "set me"
  apikey      := "set me"

  storageId   := 21015123
  notes       := "test"

  // 1. Create a session
  sess := session.New(username, apikey)

  // 2. Get a service
  service := services.GetNetworkStorageService(sess)

  result, err := service.Id(storageId).CreateSnapshot(&notes)
    if err != nil {
        fmt.Printf("%s\n", err)
        return
    } 

  res, errMarsh := json.Marshal(result)
  if errMarsh != nil {
    fmt.Println(errMarsh)
    return
  }

  fmt.Println(string(res))

}

替换:用户名,apikey,storageId和包含您自己信息的备注。

<强>参考文献: