Ich bin nicht in der Lage, dies mit Bare Metal (Package 200) als Test zu replizieren. Können Sie angeben, mit welcher Paket-ID Sie dies sehen?
import SoftLayer
import json
package_id = 200
datacenter = 'osl01'
client = SoftLayer.Client()
location_object_filter = {
'name': {'operation': datacenter}
}
location_object_mask = "priceGroups"
location = client["SoftLayer_Location_Datacenter"].getDatacenters(filter=location_object_filter, mask=location_object_mask)
if len(location) == 0:
# error handling
exit()
# lookup location group ids
location_group_ids = []
for location_group in location[0]["priceGroups"]:
location_group_ids.append(location_group["id"])
object_filter_standard = {
'items': {
"prices": {
"locationGroupId": {
"operation": "is null"
}
}
}
}
standard_items = client["SoftLayer_Product_Package"].getItems(id=package_id, filter=object_filter_standard)
object_filter_location = {
'items': {
"prices": {
"locationGroupId": {
"operation": "in",
"options": [
{
"name": "data",
"value": location_group_ids
}
]
}
}
}
}
location_items = client["SoftLayer_Product_Package"].getItems(id=package_id, filter=object_filter_location)
# let's key by item id
items = {}
for standard_item in standard_items:
for location_item in location_items:
if location_item["id"] == standard_item["id"]:
items[location_item["id"]] = location_item
break
if standard_item["id"] not in items:
items[standard_item["id"]] = standard_item
print(json.dumps(items, sort_keys=True, indent=2, separators=(',', ': ')))
Wir haben versucht, Pakete 257 und 251. – sambol
dass ungerade ist, ich bin das nicht in der Lage zu replizieren mit 257 oder 251. Wenn Sie in der Lage sind hier, um das Codebeispiel verwenden https: //softlayer.github. io/python/location_based_pricing/dann kann es mit dem Python-Manager (Helfer) sein. Wenn dies der Fall ist, können Sie ein Problem unter https://github.com/softlayer/softlayer-python/issues öffnen. – greyhoundforty