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