2017-02-01 15 views
0

このように、SoftLayerのカスタマーポータルでは、特定の構成の除外が自動的に検出されます。 たとえば、注文を確認する前に、VSIの25 GB First DiskをWindows OSで選択することはできません。 Product_OrderサービスのverifyOrderメソッドがあることは知っていますが、少なくともすべての設定を提供する必要があります。 無効な設定を検出する他の方法はありますか?APIを使用して除外機能を実装する方法

答えて

0

フォームは次のメソッドを使用する必要があり、その情報を取得するために、項目間の競合を応じて更新されます。また

時々ありますが原因を助けることができる別の方法を、

あなたはそれが特定のパッケージから十分な情報を提供します、私が作成した以下のスクリプトを試すことができます:使用可能な場所、アイテムと私はそれが役に立てば幸い項目

""" 
Get item prices information 

This script retrieves information of prices from a package. It retrieves the item description, 
location conflicts, pricing location group and item conflicts 

Important manual pages: 
http://sldn.softlayer.com/reference/services/SoftLayer_Product_Package/getRegions 
http://sldn.softlayer.com/reference/services/SoftLayer_Product_Package/getItemPrices 
http://sldn.softlayer.com/reference/datatypes/SoftLayer_Product_Package/getItemPrices 
http://sldn.softlayer.com/article/object-masks 

@License: http://sldn.softlayer.com/article/License 
@Author: SoftLayer Technologies, Inc. <[email protected]> 
""" 
# So we can talk to the SoftLayer API: 
import SoftLayer 
from prettytable import PrettyTable 
# Your SoftLayer API username and key. 
API_USERNAME = 'set me' 
API_KEY = 'set me' 
# Declare the image template id 
packageId = 46 
# Create a client instance 
client = SoftLayer.Client(username=API_USERNAME, api_key=API_KEY) 
# Declare an object mask to get location conflicts 
objectMask = 'mask[pricingLocationGroup[locations],item[locationConflicts, conflicts]]' 

try: 
    locations = client['SoftLayer_Product_Package'].getRegions(id=packageId) 
    items = client['SoftLayer_Product_Package'].getItems(id=packageId) 
    print('***** AVAILABLE LOCATIONS *****') 
    for location in locations: 
     print('Id: %s, Location: %s' % (location['location']['location']['id'], location['location']['location']['longName'])) 
    itemPrices = client['SoftLayer_Product_Package'].getItemPrices(id=packageId, mask=objectMask) 
    items = client['SoftLayer_Product_Package'].getItems(id=packageId, mask='mask[prices]') 
    x = PrettyTable(["Price Id", "Item Id", "Description", "Datacenter conflicts", "Pricing Location", 'Price conflicts', 'Item conflicts']) 
    x.align["Price Id"] = "l" # Left align city names 
    x.padding_width = 1 
    for price in itemPrices: 
     dcConflicts = '' 
     pricingLocation = '' 
     conflictItems = '' 
     conflictPrices = '' 
     # Get location conflicts 
     if len(price['item']['locationConflicts']) > 0: 
      for locationConflicts in price['item']['locationConflicts']: 
       for location in locations: 
        if locationConflicts['resourceTableId'] == location['location']['location']['id']: 
         dcConflicts = dcConflicts + ' ' + location['location']['location']['longName'] 
     else: 
      dcConflicts = "None" 
     # Get Pricing location 
     if 'pricingLocationGroup' in price: 
      for priceLocation in price['pricingLocationGroup']['locations']: 
       pricingLocation = pricingLocation + ' ' + priceLocation['longName'] 
     else: 
      pricingLocation = 'Standard price' 
     # Get item conflicts 
     if len(price['item']['conflicts']) > 0: 
      for conflict in price['item']['conflicts']: 
       for item in items: 
        if conflict['resourceTableId'] == item['id']: 
         conflictItems = conflictItems + ' ' + str(conflict['resourceTableId']) 
         for priceConf in item['prices']: 
          conflictPrices = conflictPrices + ' ' + str(priceConf['id']) 
     if conflictItems == '': 
      conflictItems = 'None' 
      conflictPrices = 'None' 
     x.add_row([price['id'], price['item']['id'], price['item']['description'], dcConflicts, pricingLocation, conflictPrices, conflictItems]) 
    print(x) 
except SoftLayer.SoftLayerAPIError as e: 
    print("Unable to get item prices faultCode=%s, faultString=%s" % (e.faultCode, e.faultString)) 
    exit(1) 

間の競合のための場所の競合疑問やご意見があれば教えてください

関連する問題