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