Skip to content
Snippets Groups Projects
Commit 42526b15 authored by Andrea Franchini's avatar Andrea Franchini
Browse files

wip: csp iec integration

parent 3445de11
Branches
No related tags found
No related merge requests found
......@@ -10,6 +10,7 @@ from doml_synthesis.types import State
from mc_openapi.app_config import app
from mc_openapi.doml_mc import DOMLVersion
from mc_openapi.doml_mc.csp_compatibility.cspcomp import check_csp_compatibility
from mc_openapi.doml_mc.domlr_parser.exceptions import RequirementException
from mc_openapi.doml_mc.domlr_parser.parser import (DOMLRTransformer, Parser,
SynthesisDOMLRTransformer)
......@@ -75,9 +76,10 @@ else:
# Check CSP Compatibility
if args.csp:
from mc_openapi.doml_mc.csp_compatibility import CSPCompatibilityValidator
cspc = CSPCompatibilityValidator
cspc.check(dmc.intermediate_model, doml_ver)
# from mc_openapi.doml_mc.csp_compatibility import CSPCompatibilityValidator
# cspc = CSPCompatibilityValidator
# cspc.check(dmc.intermediate_model, doml_ver)
check_csp_compatibility(dmc.intermediate_model, doml_ver)
exit(0)
# Store of Requirements and unique string constants
......
from itertools import groupby
import re
import requests
from mc_openapi.doml_mc.imc import IntermediateModelChecker
from mc_openapi.doml_mc.intermediate_model.metamodel import DOMLVersion
IEC_API = 'https://iec.ci.piacere.digital.tecnalia.dev/services/iecbackend/api/root-services/catalogue'
def check_csp_compatibility(model: IntermediateModelChecker, doml_version: DOMLVersion):
if doml_version != DOMLVersion.V2_2 and doml_version != DOMLVersion.V2_2_1:
print("Unsupported DOML version!")
all_json = requests.get(IEC_API).json()
all_json = [
{
'name': x['serviceName'],
'class': x['serviceClass']['serviceClassName'],
'props': x['serviceAttributeValues']
}
for x in all_json
]
def filterByClass(name: str):
return [vm for vm in all_json if vm['class'] == name]
def groupByProvider(elems: list):
def flatten_properties(el):
for p in el['props']:
el[p['serviceAttributeType']['name'].lower()] = p['serviceAttributeValue'] or None
el.pop('props', None)
return el
elems = [flatten_properties(elem) for elem in elems]
return { k: list(v) for k, v in groupby(sorted(elems, key=lambda elem: elem['provider']), lambda elem: elem['provider'])}
# Catalog IEC Elements
iec_vms = groupByProvider(filterByClass('Virtual Machine'))
iec_stos = groupByProvider(filterByClass('Storage'))
iec_dbs = groupByProvider(filterByClass('Database'))
# DOML IM Elements
im_elems = model.values()
compnodes = [cn for cn in im_elems if re.match(r"infrastructure_(ComputingNode|Container|PhysicalComputingNode|VirtualMachine)", cn.class_)]
locations = [lc for lc in im_elems if lc.class_ == 'infrastructure_Location']
# print(compnodes)
# print(locations)
# for each provider
# check if the available elements have all the properties of doml elements
# if not, mark provider as unsupported and report the unsupported element and its value
for provider, avail_vms in iec_vms.items():
print(f'==={provider}===')
for cn in compnodes:
# attributes are list|None!
name = cn.attributes.get('commons_DOMLElement::name')
cpu_count = cn.attributes.get('infrastructure_ComputingNode::cpu_count')
memory_mb = cn.attributes.get('infrastructure_ComputingNode::memory_mb')
location = cn.associations.get('infrastructure_ComputingNode::location')
region = None
zone = None
if location:
location = model[list(location)[0]]
region = location.attributes.get('infrastructure_Location::region')
zone = location.attributes.get('infrastructure_Location::zone')
# not in IEC
# arch = cn.attributes.get('infrastructure_ComputingNode::architecture')
# os = cn.attributes.get('infrastructure_ComputingNode::os')
print(f'---{name[0]}---')
valid_configs = avail_vms
if cpu_count:
valid_configs = [
avm for avm in valid_configs
if (int(avm['virtual cpu cores']) == cpu_count[0] if cpu_count else False)
]
if memory_mb:
valid_configs = [
avm for avm in valid_configs
if (float(avm['memory']) * 1000 == float(memory_mb[0]) if memory_mb else False)
]
if region:
valid_configs = [
avm for avm in valid_configs
if (avm['region'] == region[0] if region else False)
]
if zone:
valid_configs = [
avm for avm in valid_configs
if (avm['zone'] == zone[0] if zone else False)
]
# print(valid_configs)
%% Cell type:code id: tags:
``` python
import pandas as pd
import requests
from pprint import pprint
from itertools import groupby
```
%% Cell type:code id: tags:
``` python
IEC_API = 'https://iec.ci.piacere.digital.tecnalia.dev/services/iecbackend/api/root-services/catalogue'
all_json = requests.get(IEC_API).json()
all_json = [
{
'name': x['serviceName'],
'class': x['serviceClass']['serviceClassName'],
'props': x['serviceAttributeValues']
}
for x in all_json
]
vms = [vm for vm in all_json if vm['class'] == 'Virtual Machine']
stos = [vm for vm in all_json if vm['class'] == 'Storage']
dbs = [vm for vm in all_json if vm['class'] == 'Database']
def flatten_properties(el):
for p in el['props']:
el[p['serviceAttributeType']['name']] = p['serviceAttributeValue'] or None
el[p['serviceAttributeType']['name'].lower()] = p['serviceAttributeValue'] or None
el.pop('props', None)
return el
vms = [flatten_properties(vm) for vm in vms]
print(vms)
vms ={ k: list(v) for k, v in groupby(sorted(vms, key=lambda vm: vm['provider']), lambda vm: vm['provider'])}
pprint(vms)
```
%% Output
[{'name': 'C1_Spain', 'class': 'Virtual Machine', 'Region': '00EU', 'Zone': 'SPEU', 'Provider': 'ARSY', 'Virtual CPU Cores': '1', 'Frequency per Core': '1500', 'Memory': '1', 'Instance Storage': '40', 'Optimized for': None, 'Public IP': None, 'Underpinning Technology': 'VmWare', 'Availability': '99.5', 'Response time: Virtual Machine Performance': '5', 'Legal Level/Accreditations': None, 'Cost/Currency': '15'}, {'name': 'C1_USA', 'class': 'Virtual Machine', 'Region': '00NA', 'Zone': 'USNA', 'Provider': 'ARSY', 'Virtual CPU Cores': '1', 'Frequency per Core': '1500', 'Memory': '1', 'Instance Storage': '40', 'Optimized for': None, 'Public IP': None, 'Underpinning Technology': 'VmWare', 'Availability': '99.5', 'Response time: Virtual Machine Performance': '5', 'Legal Level/Accreditations': None, 'Cost/Currency': '15'}, {'name': 'C2_Europe', 'class': 'Virtual Machine', 'Frequency per Core': '1500', 'Memory': '4', 'Instance Storage': '60', 'Optimized for': None, 'Public IP': None, 'Underpinning Technology': 'VmWare', 'Availability': '99.6', 'Response time: Virtual Machine Performance': '3', 'Legal Level/Accreditations': None, 'Cost/Currency': '40', 'Region': '00EU', 'Zone': 'DEEU', 'Provider': 'ARSY', 'Virtual CPU Cores': '2'}, {'name': 'C2_UnitedKingdom', 'class': 'Virtual Machine', 'Region': '00EU', 'Zone': 'UKEU', 'Provider': 'ARSY', 'Virtual CPU Cores': '2', 'Frequency per Core': '1500', 'Memory': '4', 'Instance Storage': '60', 'Optimized for': None, 'Public IP': None, 'Underpinning Technology': 'VmWare', 'Availability': '99.6', 'Response time: Virtual Machine Performance': '3', 'Legal Level/Accreditations': None, 'Cost/Currency': '40'}, {'name': 'C4_Europe', 'class': 'Virtual Machine', 'Public IP': 'IPV4', 'Underpinning Technology': 'VmWare', 'Availability': '99.8', 'Response time: Virtual Machine Performance': '2', 'Legal Level/Accreditations': None, 'Cost/Currency': '80', 'Region': '00EU', 'Zone': None, 'Provider': 'ARSY', 'Virtual CPU Cores': '4', 'Frequency per Core': '1500', 'Memory': '8', 'Instance Storage': '100', 'Optimized for': None}, {'name': 'C4_USA', 'class': 'Virtual Machine', 'Region': '00NA', 'Zone': 'USNA', 'Provider': 'ARSY', 'Virtual CPU Cores': '4', 'Frequency per Core': '1500', 'Memory': '8', 'Instance Storage': '100', 'Optimized for': None, 'Public IP': None, 'Underpinning Technology': 'VmWare', 'Availability': '99.8', 'Response time: Virtual Machine Performance': '3', 'Legal Level/Accreditations': None, 'Cost/Currency': '80'}, {'name': 'C8_Germany', 'class': 'Virtual Machine', 'Legal Level/Accreditations': None, 'Cost/Currency': '150', 'Region': '00EU', 'Zone': 'DEEU', 'Provider': 'ARSY', 'Virtual CPU Cores': '8', 'Frequency per Core': '1500', 'Memory': '16', 'Instance Storage': '200', 'Optimized for': None, 'Public IP': 'IPV4', 'Underpinning Technology': 'VmWare', 'Availability': '99.9', 'Response time: Virtual Machine Performance': '2'}, {'name': 'C8_Spain', 'class': 'Virtual Machine', 'Region': '00EU', 'Zone': 'SPEU', 'Provider': 'ARSY', 'Virtual CPU Cores': '8', 'Frequency per Core': '1500', 'Memory': '16', 'Instance Storage': '200', 'Optimized for': None, 'Public IP': 'IPV4', 'Underpinning Technology': 'VmWare', 'Availability': '99.8', 'Response time: Virtual Machine Performance': '2', 'Legal Level/Accreditations': None, 'Cost/Currency': '150'}, {'name': 't2.nano', 'class': 'Virtual Machine', 'Frequency per Core': '1500', 'Memory': '0.5', 'Instance Storage': '40', 'Optimized for': 'GEPU', 'Public IP': 'IPV4', 'Underpinning Technology': None, 'Availability': '98', 'Response time: Virtual Machine Performance': '3', 'Legal Level/Accreditations': None, 'Cost/Currency': '4.53', 'Region': '00EU', 'Zone': 'IEEU', 'Provider': 'AMAZ', 'Virtual CPU Cores': '1'}, {'name': 't2.medium', 'class': 'Virtual Machine', 'Region': '00NA', 'Zone': 'USNA', 'Provider': 'AMAZ', 'Virtual CPU Cores': '2', 'Frequency per Core': '1500', 'Memory': '4', 'Instance Storage': '60', 'Optimized for': 'GEPU', 'Public IP': 'IPV4', 'Underpinning Technology': None, 'Availability': '98.2', 'Response time: Virtual Machine Performance': '2', 'Legal Level/Accreditations': None, 'Cost/Currency': '39.75'}, {'name': 'm5.large', 'class': 'Virtual Machine', 'Public IP': 'IPV4', 'Underpinning Technology': None, 'Availability': '98.5', 'Response time: Virtual Machine Performance': '1', 'Legal Level/Accreditations': None, 'Cost/Currency': '77', 'Region': '00NA', 'Zone': 'CANA', 'Provider': 'ARSY', 'Virtual CPU Cores': '2', 'Frequency per Core': '1500', 'Memory': '8', 'Instance Storage': '100', 'Optimized for': 'GEPU'}, {'name': 'm4.4xlarge', 'class': 'Virtual Machine', 'Region': '00EU', 'Zone': 'SPEU', 'Provider': 'AMAZ', 'Virtual CPU Cores': '16', 'Frequency per Core': '1500', 'Memory': '64', 'Instance Storage': '120', 'Optimized for': 'GEPU', 'Public IP': None, 'Underpinning Technology': None, 'Availability': '99.8', 'Response time: Virtual Machine Performance': '2', 'Legal Level/Accreditations': None, 'Cost/Currency': '640'}, {'name': 'm5.2xlarge', 'class': 'Virtual Machine', 'Legal Level/Accreditations': None, 'Cost/Currency': '323', 'Region': '00NA', 'Zone': 'USNA', 'Provider': 'AMAZ', 'Virtual CPU Cores': '8', 'Frequency per Core': '1500', 'Memory': '32', 'Instance Storage': '100', 'Optimized for': 'GEPU', 'Public IP': None, 'Underpinning Technology': None, 'Availability': '99.2', 'Response time: Virtual Machine Performance': '3'}, {'name': 'c5.2xlarge', 'class': 'Virtual Machine', 'Region': '00NA', 'Zone': 'CANA', 'Provider': 'AMAZ', 'Virtual CPU Cores': '8', 'Frequency per Core': '1500', 'Memory': '16', 'Instance Storage': '80', 'Optimized for': 'COOP', 'Public IP': 'IPV4', 'Underpinning Technology': None, 'Availability': '99.4', 'Response time: Virtual Machine Performance': '5', 'Legal Level/Accreditations': None, 'Cost/Currency': '268'}, {'name': 'c4.8xlarge', 'class': 'Virtual Machine', 'Region': '00EU', 'Zone': 'IEEU', 'Provider': 'AMAZ', 'Virtual CPU Cores': '36', 'Frequency per Core': '1500', 'Memory': '60', 'Instance Storage': '200', 'Optimized for': 'COOP', 'Public IP': 'IPV4', 'Underpinning Technology': None, 'Availability': '99.8', 'Response time: Virtual Machine Performance': '2', 'Legal Level/Accreditations': None, 'Cost/Currency': '1304'}, {'name': 'g3.8xlarge', 'class': 'Virtual Machine', 'Provider': 'AMAZ', 'Virtual CPU Cores': '32', 'Frequency per Core': '1500', 'Memory': '244', 'Instance Storage': '220', 'Optimized for': 'GPUI', 'Public IP': 'IPV4', 'Underpinning Technology': None, 'Availability': '99.8', 'Response time: Virtual Machine Performance': '2', 'Legal Level/Accreditations': None, 'Cost/Currency': '2209', 'Region': '00NA', 'Zone': 'USNA'}, {'name': 'p2.8xlarge', 'class': 'Virtual Machine', 'Region': '00EU', 'Zone': 'UKEU', 'Provider': 'AMAZ', 'Virtual CPU Cores': '32', 'Frequency per Core': '1500', 'Memory': '488', 'Instance Storage': '250', 'Optimized for': 'GPUI', 'Public IP': 'IPV4', 'Underpinning Technology': None, 'Availability': '99.9', 'Response time: Virtual Machine Performance': '2', 'Legal Level/Accreditations': None, 'Cost/Currency': '5600'}, {'name': 'r4.xlarge', 'class': 'Virtual Machine', 'Instance Storage': '70', 'Optimized for': 'MEOP', 'Public IP': 'IPV4', 'Underpinning Technology': None, 'Availability': '98.5', 'Response time: Virtual Machine Performance': '2', 'Legal Level/Accreditations': None, 'Cost/Currency': '214', 'Region': '00NA', 'Zone': 'USNA', 'Provider': 'AMAZ', 'Virtual CPU Cores': '4', 'Frequency per Core': '1500', 'Memory': '30.5'}, {'name': 'x1e.4xlarge', 'class': 'Virtual Machine', 'Region': '00EU', 'Zone': 'DEEU', 'Provider': 'AMAZ', 'Virtual CPU Cores': '16', 'Frequency per Core': '1500', 'Memory': '488', 'Instance Storage': '80', 'Optimized for': 'MEOP', 'Public IP': 'IPV4', 'Underpinning Technology': None, 'Availability': '99', 'Response time: Virtual Machine Performance': '2', 'Legal Level/Accreditations': None, 'Cost/Currency': '3376'}, {'name': 'A2v2', 'class': 'Virtual Machine', 'Region': '00EU', 'Zone': 'IEEU', 'Provider': 'AZUR', 'Virtual CPU Cores': '2', 'Frequency per Core': '1500', 'Memory': '4', 'Instance Storage': '20', 'Optimized for': None, 'Public IP': 'IPV4', 'Underpinning Technology': None, 'Availability': '95', 'Response time: Virtual Machine Performance': '5', 'Legal Level/Accreditations': None, 'Cost/Currency': '93.60'}, {'name': 'A2v2_USA', 'class': 'Virtual Machine', 'Region': '00NA', 'Zone': 'USNA', 'Provider': 'AZUR', 'Virtual CPU Cores': '2', 'Frequency per Core': '1500', 'Memory': '4', 'Instance Storage': '20', 'Optimized for': None, 'Public IP': 'IPV4', 'Underpinning Technology': None, 'Availability': '95', 'Response time: Virtual Machine Performance': '5', 'Legal Level/Accreditations': None, 'Cost/Currency': '67'}, {'name': 'B8_USA', 'class': 'Virtual Machine', 'Frequency per Core': '1500', 'Memory': '32', 'Instance Storage': '64', 'Optimized for': None, 'Public IP': 'IPV4', 'Underpinning Technology': None, 'Availability': '98', 'Response time: Virtual Machine Performance': '2', 'Legal Level/Accreditations': None, 'Cost/Currency': '242', 'Region': '00NA', 'Zone': None, 'Provider': 'AZUR', 'Virtual CPU Cores': '8'}, {'name': 'B8_Germany', 'class': 'Virtual Machine', 'Region': '00EU', 'Zone': 'DEEU', 'Provider': 'AZUR', 'Virtual CPU Cores': '8', 'Frequency per Core': '1500', 'Memory': '32', 'Instance Storage': '64', 'Optimized for': None, 'Public IP': None, 'Underpinning Technology': None, 'Availability': '98', 'Response time: Virtual Machine Performance': '2', 'Legal Level/Accreditations': None, 'Cost/Currency': '170'}, {'name': 'A3_France', 'class': 'Virtual Machine', 'Public IP': 'IPV4', 'Underpinning Technology': None, 'Availability': '96', 'Response time: Virtual Machine Performance': '3', 'Legal Level/Accreditations': None, 'Cost/Currency': '193', 'Region': '00EU', 'Zone': 'FREU', 'Provider': 'AZUR', 'Virtual CPU Cores': '4', 'Frequency per Core': '1500', 'Memory': '7', 'Instance Storage': '120', 'Optimized for': None}, {'name': 'DS13v2', 'class': 'Virtual Machine', 'Region': '00EU', 'Zone': None, 'Provider': 'AZUR', 'Virtual CPU Cores': '8', 'Frequency per Core': '1500', 'Memory': '56', 'Instance Storage': '112', 'Optimized for': None, 'Public IP': None, 'Underpinning Technology': None, 'Availability': '98', 'Response time: Virtual Machine Performance': '3', 'Legal Level/Accreditations': None, 'Cost/Currency': '541'}, {'name': 'n1-standard-16', 'class': 'Virtual Machine', 'Region': '00EU', 'Zone': 'DEEU', 'Provider': 'GOOG', 'Virtual CPU Cores': '16', 'Frequency per Core': '1500', 'Memory': '60', 'Instance Storage': '300', 'Optimized for': None, 'Public IP': 'IPV4', 'Underpinning Technology': None, 'Availability': '96', 'Response time: Virtual Machine Performance': '4', 'Legal Level/Accreditations': None, 'Cost/Currency': '500'}, {'name': 'n1-highmem-16', 'class': 'Virtual Machine', 'Virtual CPU Cores': '16', 'Frequency per Core': '1500', 'Memory': '104', 'Instance Storage': '300', 'Optimized for': 'MEOP', 'Public IP': None, 'Underpinning Technology': None, 'Availability': '98', 'Response time: Virtual Machine Performance': '4', 'Legal Level/Accreditations': None, 'Cost/Currency': '552', 'Region': '00NA', 'Zone': 'USNA', 'Provider': 'GOOG'}, {'name': 'VM_1_CS', 'class': 'Virtual Machine', 'Memory': '4', 'Instance Storage': '256', 'Optimized for': None, 'Public IP': 'IPV4', 'Underpinning Technology': None, 'Availability': '98', 'Response time: Virtual Machine Performance': '100', 'Legal Level/Accreditations': None, 'Cost/Currency': '186', 'Region': '00EU', 'Zone': 'ZUEU', 'Provider': 'CLSI', 'Virtual CPU Cores': '2', 'Frequency per Core': '5200'}, {'name': 'm1.medium', 'class': 'Virtual Machine', 'Region': '00NA', 'Zone': 'USNA', 'Provider': 'AMAZ', 'Virtual CPU Cores': '1', 'Frequency per Core': None, 'Memory': '3.7', 'Instance Storage': '410', 'Optimized for': None, 'Public IP': 'IPV4', 'Underpinning Technology': None, 'Availability': '98', 'Response time: Virtual Machine Performance': '100', 'Legal Level/Accreditations': None, 'Cost/Currency': '200'}, {'name': 'm1.tiny', 'class': 'Virtual Machine', 'Underpinning Technology': None, 'Availability': '98', 'Response time: Virtual Machine Performance': '10', 'Legal Level/Accreditations': None, 'Cost/Currency': '10', 'Region': '00EU', 'Zone': 'SPEU', 'Provider': 'OPEN', 'Virtual CPU Cores': '1', 'Frequency per Core': '1500', 'Memory': '512', 'Instance Storage': '1', 'Optimized for': None, 'Public IP': 'IPV4'}, {'name': 'm1.small', 'class': 'Virtual Machine', 'Region': '00EU', 'Zone': 'SPEU', 'Provider': 'OPEN', 'Virtual CPU Cores': '1', 'Frequency per Core': '1500', 'Memory': '2', 'Instance Storage': '20', 'Optimized for': None, 'Public IP': None, 'Underpinning Technology': None, 'Availability': '99', 'Response time: Virtual Machine Performance': '5', 'Legal Level/Accreditations': None, 'Cost/Currency': '20'}, {'name': 'm1.medium', 'class': 'Virtual Machine', 'Cost/Currency': '40', 'Region': '00EU', 'Zone': 'SPEU', 'Provider': 'OPEN', 'Virtual CPU Cores': '2', 'Frequency per Core': '1500', 'Memory': '4', 'Instance Storage': '40', 'Optimized for': None, 'Public IP': None, 'Underpinning Technology': None, 'Availability': '99.5', 'Response time: Virtual Machine Performance': '4', 'Legal Level/Accreditations': None}, {'name': 'm1.large', 'class': 'Virtual Machine', 'Region': '00EU', 'Zone': 'SPEU', 'Provider': 'OPEN', 'Virtual CPU Cores': '4', 'Frequency per Core': '1500', 'Memory': '8', 'Instance Storage': '80', 'Optimized for': None, 'Public IP': None, 'Underpinning Technology': None, 'Availability': '99.6', 'Response time: Virtual Machine Performance': '3', 'Legal Level/Accreditations': None, 'Cost/Currency': '80'}, {'name': 'm1.xlarge', 'class': 'Virtual Machine', 'Region': '00EU', 'Zone': 'SPEU', 'Provider': 'OPEN', 'Virtual CPU Cores': '8', 'Frequency per Core': '1500', 'Memory': '16', 'Instance Storage': '160', 'Optimized for': None, 'Public IP': None, 'Underpinning Technology': None, 'Availability': '99.8', 'Response time: Virtual Machine Performance': '2', 'Legal Level/Accreditations': None, 'Cost/Currency': '160'}]
{'AMAZ': [{'availability': '98',
'class': 'Virtual Machine',
'cost/currency': '4.53',
'frequency per core': '1500',
'instance storage': '40',
'legal level/accreditations': None,
'memory': '0.5',
'name': 't2.nano',
'optimized for': 'GEPU',
'provider': 'AMAZ',
'public ip': 'IPV4',
'region': '00EU',
'response time: virtual machine performance': '3',
'underpinning technology': None,
'virtual cpu cores': '1',
'zone': 'IEEU'},
{'availability': '98.2',
'class': 'Virtual Machine',
'cost/currency': '39.75',
'frequency per core': '1500',
'instance storage': '60',
'legal level/accreditations': None,
'memory': '4',
'name': 't2.medium',
'optimized for': 'GEPU',
'provider': 'AMAZ',
'public ip': 'IPV4',
'region': '00NA',
'response time: virtual machine performance': '2',
'underpinning technology': None,
'virtual cpu cores': '2',
'zone': 'USNA'},
{'availability': '99.8',
'class': 'Virtual Machine',
'cost/currency': '640',
'frequency per core': '1500',
'instance storage': '120',
'legal level/accreditations': None,
'memory': '64',
'name': 'm4.4xlarge',
'optimized for': 'GEPU',
'provider': 'AMAZ',
'public ip': None,
'region': '00EU',
'response time: virtual machine performance': '2',
'underpinning technology': None,
'virtual cpu cores': '16',
'zone': 'SPEU'},
{'availability': '99.2',
'class': 'Virtual Machine',
'cost/currency': '323',
'frequency per core': '1500',
'instance storage': '100',
'legal level/accreditations': None,
'memory': '32',
'name': 'm5.2xlarge',
'optimized for': 'GEPU',
'provider': 'AMAZ',
'public ip': None,
'region': '00NA',
'response time: virtual machine performance': '3',
'underpinning technology': None,
'virtual cpu cores': '8',
'zone': 'USNA'},
{'availability': '99.4',
'class': 'Virtual Machine',
'cost/currency': '268',
'frequency per core': '1500',
'instance storage': '80',
'legal level/accreditations': None,
'memory': '16',
'name': 'c5.2xlarge',
'optimized for': 'COOP',
'provider': 'AMAZ',
'public ip': 'IPV4',
'region': '00NA',
'response time: virtual machine performance': '5',
'underpinning technology': None,
'virtual cpu cores': '8',
'zone': 'CANA'},
{'availability': '99.8',
'class': 'Virtual Machine',
'cost/currency': '1304',
'frequency per core': '1500',
'instance storage': '200',
'legal level/accreditations': None,
'memory': '60',
'name': 'c4.8xlarge',
'optimized for': 'COOP',
'provider': 'AMAZ',
'public ip': 'IPV4',
'region': '00EU',
'response time: virtual machine performance': '2',
'underpinning technology': None,
'virtual cpu cores': '36',
'zone': 'IEEU'},
{'availability': '99.8',
'class': 'Virtual Machine',
'cost/currency': '2209',
'frequency per core': '1500',
'instance storage': '220',
'legal level/accreditations': None,
'memory': '244',
'name': 'g3.8xlarge',
'optimized for': 'GPUI',
'provider': 'AMAZ',
'public ip': 'IPV4',
'region': '00NA',
'response time: virtual machine performance': '2',
'underpinning technology': None,
'virtual cpu cores': '32',
'zone': 'USNA'},
{'availability': '99.9',
'class': 'Virtual Machine',
'cost/currency': '5600',
'frequency per core': '1500',
'instance storage': '250',
'legal level/accreditations': None,
'memory': '488',
'name': 'p2.8xlarge',
'optimized for': 'GPUI',
'provider': 'AMAZ',
'public ip': 'IPV4',
'region': '00EU',
'response time: virtual machine performance': '2',
'underpinning technology': None,
'virtual cpu cores': '32',
'zone': 'UKEU'},
{'availability': '98.5',
'class': 'Virtual Machine',
'cost/currency': '214',
'frequency per core': '1500',
'instance storage': '70',
'legal level/accreditations': None,
'memory': '30.5',
'name': 'r4.xlarge',
'optimized for': 'MEOP',
'provider': 'AMAZ',
'public ip': 'IPV4',
'region': '00NA',
'response time: virtual machine performance': '2',
'underpinning technology': None,
'virtual cpu cores': '4',
'zone': 'USNA'},
{'availability': '99',
'class': 'Virtual Machine',
'cost/currency': '3376',
'frequency per core': '1500',
'instance storage': '80',
'legal level/accreditations': None,
'memory': '488',
'name': 'x1e.4xlarge',
'optimized for': 'MEOP',
'provider': 'AMAZ',
'public ip': 'IPV4',
'region': '00EU',
'response time: virtual machine performance': '2',
'underpinning technology': None,
'virtual cpu cores': '16',
'zone': 'DEEU'},
{'availability': '98',
'class': 'Virtual Machine',
'cost/currency': '200',
'frequency per core': None,
'instance storage': '410',
'legal level/accreditations': None,
'memory': '3.7',
'name': 'm1.medium',
'optimized for': None,
'provider': 'AMAZ',
'public ip': 'IPV4',
'region': '00NA',
'response time: virtual machine performance': '100',
'underpinning technology': None,
'virtual cpu cores': '1',
'zone': 'USNA'}],
'ARSY': [{'availability': '99.5',
'class': 'Virtual Machine',
'cost/currency': '15',
'frequency per core': '1500',
'instance storage': '40',
'legal level/accreditations': None,
'memory': '1',
'name': 'C1_Spain',
'optimized for': None,
'provider': 'ARSY',
'public ip': None,
'region': '00EU',
'response time: virtual machine performance': '5',
'underpinning technology': 'VmWare',
'virtual cpu cores': '1',
'zone': 'SPEU'},
{'availability': '99.5',
'class': 'Virtual Machine',
'cost/currency': '15',
'frequency per core': '1500',
'instance storage': '40',
'legal level/accreditations': None,
'memory': '1',
'name': 'C1_USA',
'optimized for': None,
'provider': 'ARSY',
'public ip': None,
'region': '00NA',
'response time: virtual machine performance': '5',
'underpinning technology': 'VmWare',
'virtual cpu cores': '1',
'zone': 'USNA'},
{'availability': '99.6',
'class': 'Virtual Machine',
'cost/currency': '40',
'frequency per core': '1500',
'instance storage': '60',
'legal level/accreditations': None,
'memory': '4',
'name': 'C2_Europe',
'optimized for': None,
'provider': 'ARSY',
'public ip': None,
'region': '00EU',
'response time: virtual machine performance': '3',
'underpinning technology': 'VmWare',
'virtual cpu cores': '2',
'zone': 'DEEU'},
{'availability': '99.6',
'class': 'Virtual Machine',
'cost/currency': '40',
'frequency per core': '1500',
'instance storage': '60',
'legal level/accreditations': None,
'memory': '4',
'name': 'C2_UnitedKingdom',
'optimized for': None,
'provider': 'ARSY',
'public ip': None,
'region': '00EU',
'response time: virtual machine performance': '3',
'underpinning technology': 'VmWare',
'virtual cpu cores': '2',
'zone': 'UKEU'},
{'availability': '99.8',
'class': 'Virtual Machine',
'cost/currency': '80',
'frequency per core': '1500',
'instance storage': '100',
'legal level/accreditations': None,
'memory': '8',
'name': 'C4_Europe',
'optimized for': None,
'provider': 'ARSY',
'public ip': 'IPV4',
'region': '00EU',
'response time: virtual machine performance': '2',
'underpinning technology': 'VmWare',
'virtual cpu cores': '4',
'zone': None},
{'availability': '99.8',
'class': 'Virtual Machine',
'cost/currency': '80',
'frequency per core': '1500',
'instance storage': '100',
'legal level/accreditations': None,
'memory': '8',
'name': 'C4_USA',
'optimized for': None,
'provider': 'ARSY',
'public ip': None,
'region': '00NA',
'response time: virtual machine performance': '3',
'underpinning technology': 'VmWare',
'virtual cpu cores': '4',
'zone': 'USNA'},
{'availability': '99.9',
'class': 'Virtual Machine',
'cost/currency': '150',
'frequency per core': '1500',
'instance storage': '200',
'legal level/accreditations': None,
'memory': '16',
'name': 'C8_Germany',
'optimized for': None,
'provider': 'ARSY',
'public ip': 'IPV4',
'region': '00EU',
'response time: virtual machine performance': '2',
'underpinning technology': 'VmWare',
'virtual cpu cores': '8',
'zone': 'DEEU'},
{'availability': '99.8',
'class': 'Virtual Machine',
'cost/currency': '150',
'frequency per core': '1500',
'instance storage': '200',
'legal level/accreditations': None,
'memory': '16',
'name': 'C8_Spain',
'optimized for': None,
'provider': 'ARSY',
'public ip': 'IPV4',
'region': '00EU',
'response time: virtual machine performance': '2',
'underpinning technology': 'VmWare',
'virtual cpu cores': '8',
'zone': 'SPEU'},
{'availability': '98.5',
'class': 'Virtual Machine',
'cost/currency': '77',
'frequency per core': '1500',
'instance storage': '100',
'legal level/accreditations': None,
'memory': '8',
'name': 'm5.large',
'optimized for': 'GEPU',
'provider': 'ARSY',
'public ip': 'IPV4',
'region': '00NA',
'response time: virtual machine performance': '1',
'underpinning technology': None,
'virtual cpu cores': '2',
'zone': 'CANA'}],
'AZUR': [{'availability': '95',
'class': 'Virtual Machine',
'cost/currency': '93.60',
'frequency per core': '1500',
'instance storage': '20',
'legal level/accreditations': None,
'memory': '4',
'name': 'A2v2',
'optimized for': None,
'provider': 'AZUR',
'public ip': 'IPV4',
'region': '00EU',
'response time: virtual machine performance': '5',
'underpinning technology': None,
'virtual cpu cores': '2',
'zone': 'IEEU'},
{'availability': '95',
'class': 'Virtual Machine',
'cost/currency': '67',
'frequency per core': '1500',
'instance storage': '20',
'legal level/accreditations': None,
'memory': '4',
'name': 'A2v2_USA',
'optimized for': None,
'provider': 'AZUR',
'public ip': 'IPV4',
'region': '00NA',
'response time: virtual machine performance': '5',
'underpinning technology': None,
'virtual cpu cores': '2',
'zone': 'USNA'},
{'availability': '98',
'class': 'Virtual Machine',
'cost/currency': '242',
'frequency per core': '1500',
'instance storage': '64',
'legal level/accreditations': None,
'memory': '32',
'name': 'B8_USA',
'optimized for': None,
'provider': 'AZUR',
'public ip': 'IPV4',
'region': '00NA',
'response time: virtual machine performance': '2',
'underpinning technology': None,
'virtual cpu cores': '8',
'zone': None},
{'availability': '98',
'class': 'Virtual Machine',
'cost/currency': '170',
'frequency per core': '1500',
'instance storage': '64',
'legal level/accreditations': None,
'memory': '32',
'name': 'B8_Germany',
'optimized for': None,
'provider': 'AZUR',
'public ip': None,
'region': '00EU',
'response time: virtual machine performance': '2',
'underpinning technology': None,
'virtual cpu cores': '8',
'zone': 'DEEU'},
{'availability': '96',
'class': 'Virtual Machine',
'cost/currency': '193',
'frequency per core': '1500',
'instance storage': '120',
'legal level/accreditations': None,
'memory': '7',
'name': 'A3_France',
'optimized for': None,
'provider': 'AZUR',
'public ip': 'IPV4',
'region': '00EU',
'response time: virtual machine performance': '3',
'underpinning technology': None,
'virtual cpu cores': '4',
'zone': 'FREU'},
{'availability': '98',
'class': 'Virtual Machine',
'cost/currency': '541',
'frequency per core': '1500',
'instance storage': '112',
'legal level/accreditations': None,
'memory': '56',
'name': 'DS13v2',
'optimized for': None,
'provider': 'AZUR',
'public ip': None,
'region': '00EU',
'response time: virtual machine performance': '3',
'underpinning technology': None,
'virtual cpu cores': '8',
'zone': None}],
'CLSI': [{'availability': '98',
'class': 'Virtual Machine',
'cost/currency': '186',
'frequency per core': '5200',
'instance storage': '256',
'legal level/accreditations': None,
'memory': '4',
'name': 'VM_1_CS',
'optimized for': None,
'provider': 'CLSI',
'public ip': 'IPV4',
'region': '00EU',
'response time: virtual machine performance': '100',
'underpinning technology': None,
'virtual cpu cores': '2',
'zone': 'ZUEU'}],
'GOOG': [{'availability': '96',
'class': 'Virtual Machine',
'cost/currency': '500',
'frequency per core': '1500',
'instance storage': '300',
'legal level/accreditations': None,
'memory': '60',
'name': 'n1-standard-16',
'optimized for': None,
'provider': 'GOOG',
'public ip': 'IPV4',
'region': '00EU',
'response time: virtual machine performance': '4',
'underpinning technology': None,
'virtual cpu cores': '16',
'zone': 'DEEU'},
{'availability': '98',
'class': 'Virtual Machine',
'cost/currency': '552',
'frequency per core': '1500',
'instance storage': '300',
'legal level/accreditations': None,
'memory': '104',
'name': 'n1-highmem-16',
'optimized for': 'MEOP',
'provider': 'GOOG',
'public ip': None,
'region': '00NA',
'response time: virtual machine performance': '4',
'underpinning technology': None,
'virtual cpu cores': '16',
'zone': 'USNA'}],
'OPEN': [{'availability': '98',
'class': 'Virtual Machine',
'cost/currency': '10',
'frequency per core': '1500',
'instance storage': '1',
'legal level/accreditations': None,
'memory': '512',
'name': 'm1.tiny',
'optimized for': None,
'provider': 'OPEN',
'public ip': 'IPV4',
'region': '00EU',
'response time: virtual machine performance': '10',
'underpinning technology': None,
'virtual cpu cores': '1',
'zone': 'SPEU'},
{'availability': '99',
'class': 'Virtual Machine',
'cost/currency': '20',
'frequency per core': '1500',
'instance storage': '20',
'legal level/accreditations': None,
'memory': '2',
'name': 'm1.small',
'optimized for': None,
'provider': 'OPEN',
'public ip': None,
'region': '00EU',
'response time: virtual machine performance': '5',
'underpinning technology': None,
'virtual cpu cores': '1',
'zone': 'SPEU'},
{'availability': '99.5',
'class': 'Virtual Machine',
'cost/currency': '40',
'frequency per core': '1500',
'instance storage': '40',
'legal level/accreditations': None,
'memory': '4',
'name': 'm1.medium',
'optimized for': None,
'provider': 'OPEN',
'public ip': None,
'region': '00EU',
'response time: virtual machine performance': '4',
'underpinning technology': None,
'virtual cpu cores': '2',
'zone': 'SPEU'},
{'availability': '99.6',
'class': 'Virtual Machine',
'cost/currency': '80',
'frequency per core': '1500',
'instance storage': '80',
'legal level/accreditations': None,
'memory': '8',
'name': 'm1.large',
'optimized for': None,
'provider': 'OPEN',
'public ip': None,
'region': '00EU',
'response time: virtual machine performance': '3',
'underpinning technology': None,
'virtual cpu cores': '4',
'zone': 'SPEU'},
{'availability': '99.8',
'class': 'Virtual Machine',
'cost/currency': '160',
'frequency per core': '1500',
'instance storage': '160',
'legal level/accreditations': None,
'memory': '16',
'name': 'm1.xlarge',
'optimized for': None,
'provider': 'OPEN',
'public ip': None,
'region': '00EU',
'response time: virtual machine performance': '2',
'underpinning technology': None,
'virtual cpu cores': '8',
'zone': 'SPEU'}]}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment