2016-08-01 9 views
0

api(python) "placeOrder"で仮想マシンのハードウェアをアップグレードする注文を出しました。そして、私はこのトランザクションが終了するのを待つために "wait_for_transaction"(VSManagerの関数)を使いました。数分後、正常に戻った。しかし、 "control.softlayer.com"というウェブサイトにログインすると、アップグレードセンターでは、データセンタープールのリソースが不足しているため、「XXXXを完了できません」というメッセージが表示されていたことが判明しました。キャンセルされ、このチケットは閉鎖されました。Softlayer API - 注文が受け入れられているかどうかを確認する方法

どのようにしてこの注文が受け入れられ、正常に処理されたか確認できますか?私は注文結果を知る必要があります。

答えて

2

VSManagerの「wait_for_transaction」機能は、トランザクションのステータスが保留されていないかどうかだけをチェックするため、トランザクションが失敗したにもかかわらず正常に結果が返されます。 アップグレードが効果的に機能しているかどうかを確認するには、最後のトランザクションのステータスを確認する必要があります。

あなたはPythonクライアントを使用して次のサンプルスクリプトを確認できます。

""" 
Retrieve a computing instance's associated upgrade request object if any. 

Important manual pages: 

http://sldn.softlayer.com/reference/services/SoftLayer_Virtual_Guest/getUpgradeRequest 
http://sldn.softlayer.com/reference/datatypes/SoftLayer_Product_Upgrade_Request 
https://sldn.softlayer.com/article/object-masks 

License: http://sldn.softlayer.com/article/License 
Author: SoftLayer Technologies, Inc. <[email protected]> 
""" 
import SoftLayer 
from pprint import pprint as pp 

virtualGuestId = 12345678 

USERNAME = 'set me' 
API_KEY = 'set me' 

client = SoftLayer.Client(username=USERNAME, 
          api_key=API_KEY) 

virtualGuestService = client['SoftLayer_Virtual_Guest'] 

objectMask = 'mask[completedFlag,order,status,ticket[title,id],virtualGuest[id,fullyQualifiedDomainName,lastTransaction[transactionGroup]]]' 

try: 
    upgradeRequest = virtualGuestService.getUpgradeRequest(mask=objectMask, id=virtualGuestId) 
    # The result should display the upgrade request status, order status, ticket associated 
    # and the last transaction and transaction status of the current Virtual Guest. 
    # Note: The upgrade request status could be the next: 
    # APPROVED 
    # PENDING 
    # PENDING_CUSTOMER_APPROVAL 
    # COMPLETE 
    # CANCELLED 
    # MAINTENANCE_UPDATE_REQUIRED 
    # IN_TRANSACTION 
    # PENDING_PAYMENT_PROCESS 
    # PENDING_AUTOMATED_FINALIZE 
    pp(upgradeRequest) 
except SoftLayer.SoftLayerAPIError as e: 
    pp('Unable to upgrade the VSI faultCode=%s, faultString=%s' 
    % (e.faultCode, e.faultString)) 
関連する問題