Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Api SoftLayer\u User\u Customer::GetObject SoftLayer失败,出现异常_Api_Ibm Cloud Infrastructure - Fatal编程技术网

Api SoftLayer\u User\u Customer::GetObject SoftLayer失败,出现异常

Api SoftLayer\u User\u Customer::GetObject SoftLayer失败,出现异常,api,ibm-cloud-infrastructure,Api,Ibm Cloud Infrastructure,当我调用service.GetObject()方法时,它将返回Softlayer 例外 谁能帮我找出我做错了什么 sess := session.New(s.UserName, s.Apikey) service := services.GetUserCustomerService(sess) user, err := service.GetObject() 出现的错误是因为需要使用用户ID标识符 将此用户ID添加到you go代码中,如以下示例所示: userId := 11111

当我调用service.GetObject()方法时,它将返回Softlayer 例外 谁能帮我找出我做错了什么

sess := session.New(s.UserName, s.Apikey)

service := services.GetUserCustomerService(sess)
user, err := service.GetObject()

出现的错误是因为需要使用用户ID标识符

将此用户ID添加到you go代码中,如以下示例所示:

   userId := 11111

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

   // Get SoftLayer_User_Customer service
   service := services.GetUserCustomerService(sess)

   result, err := service.Id(userId).GetObject()
参考:

如果要获取帐户的特定用户ID,请使用以下go代码示例: 您必须将您的用户名放入对象过滤器–Eq(“设置我”)–以获取特定的用户名

package main

/*
GetUsers

Retrieve an account’s portal users.

Important manual pages:
https://softlayer.github.io/reference/services/SoftLayer_Account/
https://softlayer.github.io/reference/services/SoftLayer_Account/getUsers/

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"
       "github.com/softlayer/softlayer-go/filter"
)

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

       filter := filter.Build(
                     filter.Path("users.username").Eq("set me"),
              )
       mask := "id"

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

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

       result, err := service.Mask(mask).Filter(filter).GetUsers()

       if err != nil {
              fmt.Printf("\n Unable to retrieve User:\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))
}
主程序包
/*
GetUsers
检索帐户的门户用户。
重要手册页:
https://softlayer.github.io/reference/services/SoftLayer_Account/
https://softlayer.github.io/reference/services/SoftLayer_Account/getUsers/
许可证:http://sldn.softlayer.com/article/License
作者:SoftLayer Technologies,Inc。
*/
进口(
“fmt”
“github.com/softlayer/softlayer go/services”
“github.com/softlayer/softlayer go/session”
“编码/json”
“github.com/softlayer/softlayer go/filter”
)
func main(){
//SoftLayer API用户名和密钥
用户名:=“设置我”
apikey:=“设置我”
过滤器:=过滤器。生成(
filter.Path(“users.username”).Eq(“set me”),
)
掩码:=“id”
//创建会话
sess:=session.New(用户名,apikey)
//获取SoftLayer\u帐户服务
服务:=services.GetAccountService(sess)
结果,错误:=service.Mask(Mask).Filter(Filter).GetUsers()
如果错误!=零{
fmt.Printf(“\n无法检索用户:\n-%s\n”,错误)
回来
}
//以下内容有助于以json格式打印结果。
jsonFormat,jsonErr:=json.marshallindent(结果为“”,“”)
如果jsoner!=nil{
fmt.Println(JSONER)
回来
}
fmt.Println(字符串(jsonFormat))
}

我建议您使用primaryRouter.hostname而不是podName,过滤器如下所示:

package main

/*
GetPrivateSubnets

Retrieve all private subnets associated with an account.

Important manual pages:
https://softlayer.github.io/reference/services/SoftLayer_Account/
https://softlayer.github.io/reference/services/SoftLayer_Account/getPrivateSubnets/

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"

    "github.com/softlayer/softlayer-go/filter"
)

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

    mask := "mask[podName,datacenter[name],networkVlan]"

    filter := filter.Build( filter.Path("privateSubnets.datacenter.name").Eq("dal09"),
        filter.Path("privateSubnets.networkVlan.primaryRouter.hostname").Contains("bcr06"),
        )


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

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

    result, err := service.Mask(mask).Filter(filter).GetPrivateSubnets()
    if err != nil {
        fmt.Printf("\n Unable to retrieve the private subnets:\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))
}
"datacenter": {
            "name": "dal09"
        },
        "networkVlan": {
            "id": 111333322,
            "modifyDate": "2016-09-14T13:24:10-04:00",
            "primarySubnetId": 1225544,
            "vlanNumber": 111,
            "primaryRouter": {
                "domain": "softlayer.com",
                "fullyQualifiedDomainName": "bcr06a.dal09.softlayer.com",
                                "hostname": "bcr06a.dal09",
            }
        },
        "podName": "dal09.pod06"

非常感谢你的帮助。。我有一个小问题,你们在过滤器中发现了什么?我使用了“users.username”,如果有多个条件,我将如何使用?为我提供以下代码示例掩码的帮助:=“mask[podName,account[id],datacenter[name]]”过滤器:=filter.Build(filter.Path(“subnet.podName”).Eq(s.podName),)首先从您使用的方法中必须看到的过滤器开始是不起作用的。在本例中,我们使用的是方法“getUsers”,这就是为什么过滤器应该从“users”开始。它是通过删除值“get”来完成的,然后将添加您想要从中获取信息的属性,如“users.username”。对于多次情况也是如此。请参阅以下文档:如何过滤关系数据。我已经做了掩蔽..如掩蔽:=“掩蔽[podName,帐户[id],数据中心[name]]”…但我仍然无法过滤数据我对此进行了更多调查,您的过滤器应该可以工作,因为属性podName在数据库中,尝试使用您的过滤器我也遇到了错误,因此这是一个问题,您可以在此页面上报告此问题:。本地和关系数据适用于筛选器,请参阅以下文档:。我尝试了对象掩码,它在我的示例代码中起作用。什么是“bcr06”,如果我只知道podname和数据中心名称–podname¨=dal09.pod06=Dallas 9,Pod 6(即bcr06),如何获取值。您可以看到以下文档:我建议使用此方法检索有关SoftLayer中Pod的信息。它将返回一个SoftLayer_Network_Pod数组,该数组的数据类型比@F.Ojeda之前评论的数据类型要多