From 3445de1131818f3ea4bca0a6228c1301f49a4804 Mon Sep 17 00:00:00 2001 From: Andrea Franchini <hello@andreafranchini.com> Date: Wed, 8 Mar 2023 14:26:19 +0100 Subject: [PATCH] add data for PoC of CSP in notebook --- mc_openapi/notebooks/csp_compatibility.ipynb | 77 ++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 mc_openapi/notebooks/csp_compatibility.ipynb diff --git a/mc_openapi/notebooks/csp_compatibility.ipynb b/mc_openapi/notebooks/csp_compatibility.ipynb new file mode 100644 index 0000000..de1e63d --- /dev/null +++ b/mc_openapi/notebooks/csp_compatibility.ipynb @@ -0,0 +1,77 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import requests" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{'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'}]\n" + ] + } + ], + "source": [ + "IEC_API = 'https://iec.ci.piacere.digital.tecnalia.dev/services/iecbackend/api/root-services/catalogue'\n", + "all_json = requests.get(IEC_API).json()\n", + "\n", + "all_json = [\n", + " {\n", + " 'name': x['serviceName'],\n", + " 'class': x['serviceClass']['serviceClassName'],\n", + " 'props': x['serviceAttributeValues']\n", + " }\n", + " for x in all_json\n", + "]\n", + "\n", + "vms = [vm for vm in all_json if vm['class'] == 'Virtual Machine']\n", + "stos = [vm for vm in all_json if vm['class'] == 'Storage']\n", + "dbs = [vm for vm in all_json if vm['class'] == 'Database']\n", + "\n", + "def flatten_properties(el):\n", + " for p in el['props']:\n", + " el[p['serviceAttributeType']['name']] = p['serviceAttributeValue'] or None\n", + " el.pop('props', None)\n", + " return el\n", + "\n", + "vms = [flatten_properties(vm) for vm in vms]\n", + "\n", + "print(vms)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.16" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} -- GitLab