From 8da6256ebe455d4a18d7e75a06ce62da904312f3 Mon Sep 17 00:00:00 2001
From: msimonin <matthieu.simonin@inria.fr>
Date: Mon, 17 Jun 2024 23:17:55 +0200
Subject: [PATCH] pass on 1 and 2

---
 g5k/01_remote_actions_and_variables.ipynb     | 27 +++++++++-
 ...vironment_control_resource_selection.ipynb | 52 +++++++++++--------
 2 files changed, 55 insertions(+), 24 deletions(-)

diff --git a/g5k/01_remote_actions_and_variables.ipynb b/g5k/01_remote_actions_and_variables.ipynb
index 348676e..7239da6 100644
--- a/g5k/01_remote_actions_and_variables.ipynb
+++ b/g5k/01_remote_actions_and_variables.ipynb
@@ -94,6 +94,16 @@
     "conf"
    ]
   },
+  {
+   "cell_type": "markdown",
+   "id": "9884533b-a860-4cf2-a31e-e8c38a6d0768",
+   "metadata": {},
+   "source": [
+    "<div class=\"alert alert-info\">\n",
+    "    💡 Wanted nodes might not be available, check the <a href=\"https://www.grid5000.fr/w/Status\">availability page (non production nodes)</a> (bookmark your favorite sites!)\n",
+    "</div>"
+   ]
+  },
   {
    "cell_type": "markdown",
    "id": "green-producer",
@@ -117,7 +127,22 @@
   },
   {
    "cell_type": "markdown",
-   "id": "asian-stretch",
+   "id": "37399c5f-0368-47a1-a869-4ce103f17b8b",
+   "metadata": {},
+   "source": [
+    "<div class=\"alert alert-info\">\n",
+    "    💡 Check the status page after the reservation is made (find your job)\n",
+    "</div>\n",
+    "<div class=\"alert alert-info\">\n",
+    "    💡 Get textual information of your job using the terminal (oarstat, oarstat -u, oarstat -j <jobid>, oarstat -j <jobid> -f ...)                                      \n",
+    "</div>\n",
+    "\n",
+    " \n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "f95ad948-3e72-4b3d-b0e2-d7a137fc2351",
    "metadata": {},
    "source": [
     "Inspecting the ressources we own for the experiment's lifetime:\n",
diff --git a/g5k/02_environment_control_resource_selection.ipynb b/g5k/02_environment_control_resource_selection.ipynb
index c8384aa..8bb248c 100644
--- a/g5k/02_environment_control_resource_selection.ipynb
+++ b/g5k/02_environment_control_resource_selection.ipynb
@@ -57,7 +57,7 @@
     "EnOSlib exposes a higher level interface for selecting resources which is based on the [Grid'5000 REST API](https://api.grid5000.fr/) (which wraps OAR). \n",
     "In EnOSlib you can reserve compute resources, networks (provided by Grid5000) and disks with the following assumptions:\n",
     "\n",
-    "- Nodes are reserved as a whole (this makes a difference with OAR supports to reserve part of a node)\n",
+    "- Nodes are reserved as a whole (this makes a difference with OAR that supports reserving part of a node) but multisite is transparent using EnOSlib\n",
     "- Networks are those offered by Grid'5000 (Layer 3 subnets and Layer 2 VLANS - possibly spanning multiple sites)\n",
     "- Local disks are reserved with there associated machines\n",
     "\n",
@@ -71,6 +71,16 @@
     "EnOSlib supports the so called multisite experiments (experiments spanning different sites) easily. To illustrate this let's reserve nodes from different sites. The multisites experiment requires to synchronize jobs on different sites. EnOSlib eases this process for you.\n"
    ]
   },
+  {
+   "cell_type": "markdown",
+   "id": "5d7669da-cd31-45e4-97e8-5286c1c90bc1",
+   "metadata": {},
+   "source": [
+    "<div class=\"alert alert-info\">\n",
+    "    💡 You might check the <a href=\"https://www.grid5000.fr/w/Status\">availability page (non production nodes)</a> \n",
+    "</div>"
+   ]
+  },
   {
    "cell_type": "code",
    "execution_count": null,
@@ -80,9 +90,11 @@
    "source": [
     "job_name=\"multisite\"\n",
     "conf = (\n",
-    "    en.G5kConf.from_settings(job_type=[], job_name=job_name, walltime=\"0:10:00\")\n",
-    "    # For convenience, we use the site name as role\n",
+    "    en.G5kConf.from_settings(job_name=job_name, walltime=\"0:10:00\")\n",
+    "    # For convenience, we use the site name as role but that's only informative\n",
+    "    # paravance cluster has many nodes (rennes site)\n",
     "    .add_machine(roles=[\"rennes\", \"intel\"], cluster=\"paravance\", nodes=1)\n",
+    "    # chiclet cluster has only 8 nodes (lille site)\n",
     "    .add_machine(roles=[\"lille\", \"amd\"], cluster=\"chiclet\", nodes=1)\n",
     ")\n",
     "provider = en.G5k(conf)"
@@ -181,16 +193,20 @@
    "source": [
     "In all of the above we get the default network resource (the \"production network\"). This network is shared with other users.\n",
     "There are two other types of networks:\n",
-    "- `subnets`, which can be used if you need to assign extra addresses to your nodes (e.g virtual machines)\n",
-    "- `kavlans` are layer 2 isolated network. Using this network type currently requires an extra step after getting the resources: **a deployement** of a full OS on the node.\n",
+    "- `subnets`, which can be used if you need to assign extra addresses to your \"nodes\" (e.g virtual machines)\n",
+    "- `kavlans` are layer 2 isolated network. Using this network type currently requires an extra step after getting the resources: **a reconfiguration/deployment** of a full OS on the node.\n",
     "\n",
-    "<div class=\"alert alert-warning\">\n",
-    "    The number of kavlans is limited:\n",
+    "<div class=\"alert alert-info\">\n",
+    "    💡 The number of kavlans is limited:\n",
     "    <ul>\n",
     "        <li>kavlan-local: 3 per sites (non routed network)</li>\n",
-    "        <li>kavlan: 3 per sites (routed network)</li>\n",
+    "        <li>kavlan: 6 per sites (routed network)</li>\n",
     "        <li>kavlan-global: 1 per site (allow multi site, isolated experiments)</li>\n",
     "    </ul>\n",
+    "</div>\n",
+    "\n",
+    "<div class=\"alert alert-info\">\n",
+    "    💡 To check the OS available to be deployed, run `kaen3 -l` in a frontend node (open a terminal) or build your own :)\n",
     "</div>"
    ]
   },
@@ -205,8 +221,6 @@
     "\n",
     "job_name = \"vlan\"\n",
     "\n",
-    "\n",
-    "\n",
     "private_net = en.G5kNetworkConf(type=\"kavlan\", roles=[\"private\"], site=\"rennes\")\n",
     "\n",
     "conf = (\n",
@@ -218,7 +232,7 @@
     "    )\n",
     "    .add_network_conf(private_net)\n",
     "    .add_machine(\n",
-    "        roles=[\"roleA\"], cluster=\"paravance\", nodes=1, primary_network=private_net\n",
+    "        roles=[\"roleA\"], cluster=\"parasilo\", nodes=1, primary_network=private_net\n",
     "    )\n",
     "    .finalize()\n",
     ")\n",
@@ -294,8 +308,8 @@
     "\n",
     "Let's have a look in the following\n",
     "\n",
-    "<div class=\"alert alert-warning\">\n",
-    "    Make sure to specify a cluster that supports this feature -- refer to the documentation\n",
+    "<div class=\"alert alert-info\">\n",
+    "    Make sure to specify a cluster that supports this feature -- refer to <a href=\"https://www.grid5000.fr/w/Disk_reservation\">the documentation</a> and <a href=\"https://www.grid5000.fr/w/Status\">the status page\n",
     "</div>"
    ]
   },
@@ -306,7 +320,7 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "job_name = \"disks\"\n",
+    "job_name = \"without disks\"\n",
     "conf = en.G5kConf.from_settings(\n",
     "    job_name=job_name, job_type=[], walltime=\"0:30:00\"\n",
     "\n",
@@ -331,14 +345,6 @@
     "print(results[0].stdout)"
    ]
   },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "d5e22b94-c7d2-4410-a187-5c66568d41c4",
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  },
   {
    "cell_type": "code",
    "execution_count": null,
@@ -346,7 +352,7 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "job_name = \"disks\"\n",
+    "job_name = \"with disks\"\n",
     "conf = en.G5kConf.from_settings(\n",
     "    job_name=job_name, job_type=[], walltime=\"0:30:00\"\n",
     "\n",
-- 
GitLab