2017-03-14 4 views
1

Golangの新機能です(実際には2,3日後に学習を始めました)。SL APIを使用するためのクライアントコードの作成に関する非常に基本的な質問があります。Golangのクライアントコードを作成してcreateSnapshotを呼び出す方法softlayer API

私の必要条件はボリュームIDが入力パラメータであれば、私の耐久音量のスナップショットを取るGolangを使ってcreatesnapshot SL APIを呼び出すことです。このクライアントを書くためのサンプルコードを手伝ってください。

は、私がここで私はそれのpythonをしたかで、Pythonでそれを行う方法を知っているが、今私はgolangでそれをしたい;)

Pythonのコードスニペット(REQの変化を、あなたは知っている。):

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

ありがとうございます!

答えて

3

私が誤解していない場合は、Python用のSoftlayerパッケージを使用して、指定したコードでやっていることをやっています。

SOFTLAYERだけでなく、公式行くパッケージを持っているhere

して、外出先の環境でパッケージをダウンロードしてくださいは、get 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() 

あなたはあなたのための仕事をして方法を見つける必要があります。

+0

はい、あなたの理解は正しいですが、私は私の以前の開発のためのPython SLパッケージを使用。 正式なgoパッケージを使用することについては、私はそれについて読んだけど、スナップショットを作成するためのサービス/メソッド名と、スナップショットメソッド/サービスを作成するための入力として提供する必要のあるデータ型を識別するのに苦労している。 btw、これまでのあなたの入力のためにMayankをありがとう! – Sanket

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. <[email protected]> 

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)) 

} 

置き換えますを:あなた自身の情報と、ユーザ名、APIキー、storageIdやメモを。

参考文献:

+0

ありがとうございます!それは助ける。もう1つの質問ですが、セッションが終了したらセッションを終了する必要がありますか?または、基礎となるSL GO SDKが終了を処理しますか? – Sanket

+0

スクリプトが終了すると、セッションは終了します –

+0

、ありがとう! – Sanket

関連する問題