2016-09-13 29 views
0

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需要一定的權限集 - >packagebillingItem - >upgradeItems?如果是這樣,他們是什麼?另外,有沒有一個列表或答案「如果我想查詢x propery,我需要y權限」

預先感謝您!

回答

0

沒有,可以讓得到的關係屬性,例如billingItem任何權限 - >包裝billingItem - > upgradeItems

你只需要「查看硬件詳細信息」啓用許可和 訪問設備

無論如何,你可以試試這個面具嗎?

$objectMask->billingItem -> package; 
$objectMask->billingItem -> upgradeItems; 

請讓我知道,如果你不能夠獲得包信息,如果你是繼續面臨這個問題,請你能提供更多的信息,您使用的,什麼是能夠完全屏蔽你期待。此外,服務器的標識符可能對進一步調查有用。

目前不存在可用於權限和其操作的文件,但你可以用下面的方法:

它會顯示所有可用的權限,名稱描述操作他們允許

+0

您好Ruber - 您是否可以訪問SoftLayer票務系統?我會從我們的帳戶打開一張票,向您傳遞身份證和其他詳細信息。此時,我們懷疑它不是許可,但是我們沒有爲我們帳戶中的舊服務器獲取「包」對象,但是較新的服務器確實會返回此信息。假設您可以在SoftLayer門戶中查看門票,我將提供所有詳細信息:) – Esrahaddon

+0

是的,我有權訪問SoftLayer票務系統,您可以提供票證的標識符,我會看一看 –

+0

真棒,謝謝!門票標識是35435429 – Esrahaddon