UPDATE:感谢Ruber的帮助,当使用Legacy Object Mask查询关系属性时,已确定发生此问题。这是意外的行为,并且已经在SoftLayer中升级以进行修复。 '修复'Ruber建议升级并使用SoftLayer提供的Object Mask的newer style。关系属性所需的SoftLayer权限
我正在通过PHP使用SoftLayer SOAP API v3 SoftLayer_Hardware_Server::getObject()
方法来查询billingItem
- >package
关系属性时调试遇到的问题。我的直觉告诉我,这可能与API用户权限有关,因为这些代码自2010年前后一直在大约2个月前生效,而我们的API用户权限似乎随着某个频率而改变。
下面是我们用来查询这些关系的性质,有一些专有位代码中删除的片段:
$client = getSoapClient("Hardware_Server");
$init = new stdClass();
$init->id = some_id_here;
$objectMask = new SoftLayer_ObjectMask();
$objectMask->operatingSystem->partitionTemplates->partitionTemplatePartition;
$objectMask->billingItem->package->items->prices->categories;
$objectMask->hardDrives;
$client->setObjectMask($objectMask);
$client->setInitParameters($init);
$data = $client->getObject();
如果我检查请求和响应的数据,我可以看到billingItem
以及billingItem
- >package
请求的对象,但package
对象从响应中丢失。尝试检索其他看似与销售相关的项目,例如billingItem
- >upgradeItems
也会返回一个空数组。
我的问题的SoftLayer(或任何人谁遇到这之前)是:是否有查询关系属性,如billingItem
需要一定的权限集 - >package
或billingItem
- >upgradeItems
?如果是这样,他们是什么?另外,有没有一个列表或答案“如果我想查询x propery,我需要y权限”?
预先感谢您!
您好Ruber - 您是否可以访问SoftLayer票务系统?我会从我们的帐户打开一张票,向您传递身份证和其他详细信息。此时,我们怀疑它不是许可,但是我们没有为我们帐户中的旧服务器获取“包”对象,但是较新的服务器确实会返回此信息。假设您可以在SoftLayer门户中查看门票,我将提供所有详细信息:) – Esrahaddon
是的,我有权访问SoftLayer票务系统,您可以提供票证的标识符,我会看一看 –
真棒,谢谢!门票标识是35435429 – Esrahaddon