in contrib/scrape-ec2-sizes.py [0:0]
def dump():
print("Scraping size data, this may take up to 10-15 minutes...")
sizes, regions = parse()
separators = (",", ": ")
# 1. Write file with instance types constants
file_path = "libcloud/compute/constants/ec2_instance_types.py"
with open(file_path, "w") as fp:
fp.write(FILE_HEADER + "\n")
fp.write("\n")
fp.write(
"INSTANCE_TYPES = "
+ json.dumps(sizes, indent=4, sort_keys=True, separators=separators).replace(
"null", "None"
)
)
print("")
print("Data written to %s" % (file_path))
print("")
# 2. Write file with full details for each region
file_path = "libcloud/compute/constants/ec2_region_details_complete.py"
with open(file_path, "w") as fp:
fp.write(FILE_HEADER + "\n")
fp.write("\n")
fp.write(
"REGION_DETAILS = "
+ json.dumps(regions, indent=4, sort_keys=True, separators=separators).replace(
"null", "None"
)
)
print("Data written to %s" % (file_path))
print("")
# 3. Write file with partial region details (everything except instance_types attribute)
regions_partial = {}
keys_to_keep = ["api_name", "country", "id", "endpoint", "signature_version"]
for region_name, region_details in regions.items():
regions_partial[region_name] = {}
for key, value in region_details.items():
if key not in keys_to_keep:
continue
regions_partial[region_name][key] = value
file_path = "libcloud/compute/constants/ec2_region_details_partial.py"
with open(file_path, "w") as fp:
fp.write(FILE_HEADER + "\n")
fp.write("\n")
fp.write(
"REGION_DETAILS = "
+ json.dumps(regions_partial, indent=4, sort_keys=True, separators=separators).replace(
"null", "None"
)
)
print("Data written to %s" % (file_path))
print("")