Advertisement
sasa2742002

Untitled

Sep 22nd, 2023
804
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 8.82 KB | None | 0 0
  1. import requests
  2.  
  3.  
  4. def get_data(url, region_name):
  5.     response = requests.get(url)
  6.     data_info = response.json()
  7.  
  8.     if response.status_code == 200:
  9.         instances = []
  10.         region_data = data_info['regions'].get(region_name, {})
  11.  
  12.         for instance_name, instance_attributes in region_data.items():
  13.             instance = {
  14.                 'Instance Name': instance_name,
  15.                 'Rate Code': instance_attributes.get('rateCode', ''),
  16.                 'Price': instance_attributes.get('price', ''),
  17.                 'Location': instance_attributes.get('Location', ''),
  18.                 'Instance Family': instance_attributes.get('Instance Family', ''),
  19.                 'vCPU': instance_attributes.get('vCPU', ''),
  20.                 'Memory': instance_attributes.get('Memory', ''),
  21.                 'Storage': instance_attributes.get('Storage', ''),
  22.                 'Network Performance': instance_attributes.get('Network Performance', ''),
  23.                 'Operating System': instance_attributes.get('Operating System', ''),
  24.                 'Pre Installed S/W': instance_attributes.get('Pre Installed S/W', ''),
  25.                 'License Model': instance_attributes.get('License Model', ''),
  26.             }
  27.             instances.append(instance)
  28.  
  29.         return instances
  30.     else:
  31.         return None
  32.  
  33.  
  34. def north_america():
  35.     north_america_urls = [
  36.         ["US East (N. Virginia)", "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ec2/USD/current/ec2-ondemand-without-sec-sel/US%20East%20(N.%20Virginia)/Linux/index.json?timestamp=1695335197182"],
  37.         ["US East (N. California)", "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ec2/USD/current/ec2-ondemand-without-sec-sel/US%20West%20(N.%20California)/Linux/index.json?timestamp=1695335943885"],
  38.         ["US West (Oregon)", "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ec2/USD/current/ec2-ondemand-without-sec-sel/US%20West%20(Oregon)/Linux/index.json?timestamp=1695336005767"],
  39.         ["Canada (Central)", "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ec2/USD/current/ec2-ondemand-without-sec-sel/Canada%20(Central)/Linux/index.json?timestamp=1695336038545"],
  40.         ["AWS GovCloud (US-East)", "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ec2/USD/current/ec2-ondemand-without-sec-sel/AWS%20GovCloud%20(US-East)/Linux/index.json?timestamp=1695336076977"],
  41.         ["AWS GovCloud (US-West)", "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ec2/USD/current/ec2-ondemand-without-sec-sel/AWS%20GovCloud%20(US)/Linux/index.json?timestamp=1695336143250"]
  42.     ]
  43.  
  44.     north_america = []
  45.     for region_info in north_america_urls:
  46.         region = region_info[0]
  47.         url = region_info[1]
  48.         data = get_data(url, region)
  49.         north_america.append(data)
  50.  
  51.     return north_america
  52.  
  53.  
  54. def africa():
  55.     africa_urls = [
  56.         ["Africa (Cape Town)", "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ec2/USD/current/ec2-ondemand-without-sec-sel/Africa%20(Cape%20Town)/Linux/index.json?timestamp=1695336201165"]
  57.     ]
  58.  
  59.     africa = []
  60.     for region_info in africa_urls:
  61.         region = region_info[0]
  62.         url = region_info[1]
  63.         data = get_data(url, region)
  64.         africa.append(data)
  65.  
  66.     return africa
  67.  
  68.  
  69. def asia_pacific():
  70.     asia_pacific = [
  71.         ["Asia Pacific (Hong Kong)", "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ec2/USD/current/ec2-ondemand-without-sec-sel/Asia%20Pacific%20(Hong%20Kong)/Linux/index.json?timestamp=1695336236566"],
  72.         ["Asia Pacific (Hyderabad)", "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ec2/USD/current/ec2-ondemand-without-sec-sel/Asia%20Pacific%20(Hyderabad)/Linux/index.json?timestamp=1695336267211"],
  73.         ["Asia Pacific (Jakarta)", "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ec2/USD/current/ec2-ondemand-without-sec-sel/Asia%20Pacific%20(Jakarta)/Linux/index.json?timestamp=1695336335452"],
  74.         ["Asia Pacific (Melbourne)", "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ec2/USD/current/ec2-ondemand-without-sec-sel/Asia%20Pacific%20(Melbourne)/Linux/index.json?timestamp=1695336377353"],
  75.         ["Asia Pacific (Mumbai)", "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ec2/USD/current/ec2-ondemand-without-sec-sel/Asia%20Pacific%20(Mumbai)/Linux/index.json?timestamp=1695336414559"],
  76.         ["Asia Pacific (Osaka)", "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ec2/USD/current/ec2-ondemand-without-sec-sel/Asia%20Pacific%20(Osaka)/Linux/index.json?timestamp=1695336448367"],
  77.         ["Asia Pacific (Seoul)", "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ec2/USD/current/ec2-ondemand-without-sec-sel/Asia%20Pacific%20(Seoul)/Linux/index.json?timestamp=1695336489384"],
  78.         ["Asia Pacific (Singapore)", "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ec2/USD/current/ec2-ondemand-without-sec-sel/Asia%20Pacific%20(Singapore)/Linux/index.json?timestamp=1695336516652"],
  79.         ["Asia Pacific (Sydney)", "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ec2/USD/current/ec2-ondemand-without-sec-sel/Australia%20(Sydney)/Linux/index.json?timestamp=1695336549342"],
  80.         ["Asia Pacific (Tokyo)", "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ec2/USD/current/ec2-ondemand-without-sec-sel/Australia%20(Tokyo)/Linux/index.json?timestamp=1695336572681"]
  81.     ]
  82.  
  83.     asia_pacific = []
  84.     for region_info in asia_pacific:
  85.         region = region_info[0]
  86.         url = region_info[1]
  87.         data = get_data(url, region)
  88.         asia_pacific.append(data)
  89.  
  90.     return asia_pacific
  91.  
  92.  
  93. def europe():
  94.     europe = [
  95.         ["Europe (Frankfurt)", "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ec2/USD/current/ec2-ondemand-without-sec-sel/EU%20(Frankfurt)/Linux/index.json?timestamp=1695336606682"],
  96.         ["Europe (Ireland)", "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ec2/USD/current/ec2-ondemand-without-sec-sel/EU%20(Ireland)/Linux/index.json?timestamp=1695336640824"],
  97.         ["Europe (London)", "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ec2/USD/current/ec2-ondemand-without-sec-sel/EU%20(London)/Linux/index.json?timestamp=1695336671834"],
  98.         ["Europe (Milan)", "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ec2/USD/current/ec2-ondemand-without-sec-sel/EU%20(Milan)/Linux/index.json?timestamp=1695336709113"],
  99.         ["Europe (Paris)", "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ec2/USD/current/ec2-ondemand-without-sec-sel/EU%20(Paris)/Linux/index.json?timestamp=1695336734334"],
  100.         ["Europe (Spain)", "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ec2/USD/current/ec2-ondemand-without-sec-sel/EU%20(Spain)/Linux/index.json?timestamp=1695336756525"],
  101.         ["Europe (Stockholm)", "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ec2/USD/current/ec2-ondemand-without-sec-sel/EU%20(Stockholm)/Linux/index.json?timestamp=1695336795677"],
  102.         ["Europe (Zurich)", "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ec2/USD/current/ec2-ondemand-without-sec-sel/EU%20(Zurich)/Linux/index.json?timestamp=1695336817871"]
  103.     ]
  104.  
  105.     europe = []
  106.     for region_info in europe:
  107.         region = region_info[0]
  108.         url = region_info[1]
  109.         data = get_data(url, region)
  110.         europe.append(data)
  111.  
  112.     return europe
  113.  
  114.  
  115. def middle_east():
  116.     middle_east = [
  117.         ["Middle East (Bahrain)", "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ec2/USD/current/ec2-ondemand-without-sec-sel/Middle%20East%20(Bahrain)/Linux/index.json?timestamp=1695336880976"],
  118.         ["Middle East (UAE)", "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ec2/USD/current/ec2-ondemand-without-sec-sel/Middle%20East%20(UAE)/Linux/index.json?timestamp=1695336906621"]
  119.     ]
  120.  
  121.     middle_east = []
  122.     for region_info in middle_east:
  123.         region = region_info[0]
  124.         url = region_info[1]
  125.         data = get_data(url, region)
  126.         middle_east.append(data)
  127.  
  128.     return middle_east
  129.  
  130.  
  131. def south_america():
  132.     south_america = [
  133.         ["South America (Sao Paulo)", "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ec2/USD/current/ec2-ondemand-without-sec-sel/South%20America%20(Sao%20Paulo)/Linux/index.json?timestamp=1695336944637"]
  134.     ]
  135.  
  136.     south_america = []
  137.     for region_info in south_america:
  138.         region = region_info[0]
  139.         url = region_info[1]
  140.         data = get_data(url, region)
  141.         south_america.append(data)
  142.  
  143.     return south_america
  144.  
  145.  
  146. def main():
  147.     # north_america_data = north_america()
  148.     africa_data = africa()
  149.     # asia_pacific_data = asia_pacific()
  150.     # europe_data = europe()
  151.     # middle_east_data = middle_east()
  152.     # south_america_data = south_america()
  153.  
  154.     # print(north_america_data)
  155.     print(africa_data)
  156.     # print(asia_pacific_data)
  157.     # print(europe_data)
  158.     # print(middle_east_data)
  159.     # print(south_america_data)
  160.  
  161.  
  162. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement