Сбой GetLocations с «Объект не существует для выполнения метода» - PullRequest
0 голосов
/ 30 мая 2018

У меня проблемы с вызовом GetLocations.Каждый раз, когда я пытаюсь выполнить его, я получаю сообщение об ошибке:

SoftLayer_Exception: объект не существует для выполнения метода.(SoftLayer_Location_Group :: getLocations) (HTTP 200)

Это заставляет меня думать, что что-то не так с созданным мной объектом locationService, но я не понимаю, что именно.Кто-нибудь видит проблему?

package main

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

func main() {
    sess := session.New("user", "password")
    locationService := services.GetLocationGroupService(sess)
    locations, err := locationService.GetLocations()
    if err != nil {
        fmt.Printf("%s\n",err.Error())
        return
    }
    fmt.Printf("%+v", locations)
}

1 Ответ

0 голосов
/ 30 мая 2018

Ошибка, которую вы получили, потому что вам нужно использовать идентификатор locationGroup ID.

Добавьте этот locationGroupId к вашему коду, как в следующем примере:

locationGroupId := 1

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

// Get SoftLayer_Location_Group
service := services.GetLocationGroupService(sess)

result, err := service.Id(locationGroupId).GetLocations()

Ссылка:

https://softlayer.github.io/reference/services/SoftLayer_Location_Group/getLocations/

Чтобы получить все доступные locationGroupIds, вы можете использовать этот пример кода:

package main

/*
GetAllObjects

Retrieve all locationGroup objects.

Important manual pages:
https://softlayer.github.io/reference/services/SoftLayer_Location_Group/
https://softlayer.github.io/reference/services/SoftLayer_Location_Group/getAllObjects/

License: http://sldn.softlayer.com/article/License
Author: SoftLayer Technologies, Inc. <sldn@softlayer.com>
*/

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

func main() {
    // SoftLayer API username and key
    username := "set me"
    apikey   := "set me"

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

    // Get SoftLayer_Account service
    service := services.GetLocationGroupService(sess)

    result, err := service.GetAllObjects()
    if err != nil {
        fmt.Printf("\n Unable to retrieve all locationGroups:\n - %s\n", err)
        return
    }
    // Following helps to print the result in json format.
    jsonFormat, jsonErr := json.MarshalIndent(result,"","     ")
    if jsonErr != nil {
        fmt.Println(jsonErr)
        return
    }
    fmt.Println(string(jsonFormat))
}
...