From c785dd617c3c0f09ff682f006a1202144cfd94ca Mon Sep 17 00:00:00 2001
From: Lucas Nussbaum <lucas.nussbaum@loria.fr>
Date: Tue, 27 Oct 2020 11:56:12 +0100
Subject: [PATCH] =?UTF-8?q?Adaptation=20du=20script=20de=20g=C3=A9n=C3=A9r?=
 =?UTF-8?q?ation=20pour=20le=20nouveau=20sch=C3=A9ma?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 scripts/mesos/mesos.rb | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/scripts/mesos/mesos.rb b/scripts/mesos/mesos.rb
index e6f149d205..84b46712ec 100755
--- a/scripts/mesos/mesos.rb
+++ b/scripts/mesos/mesos.rb
@@ -66,26 +66,28 @@ d['sites'].each_pair do |site, ds|
   o['clusterList'] = []
   ds['clusters'].each_pair do |cluster, dc|
     oc = {}
-    oc['clusterName'] = cluster
+    oc['name'] = cluster
     nodes = dc['nodes'].values.select { |n| not n['status'] == 'retired' }
     next if nodes.empty?
     fn = nodes.first
-    oc['vendorName'] = case fn['chassis']['manufacturer']
+    oc['vendorName'] = [
+      case fn['chassis']['manufacturer']
                        when 'Dell Inc.' then 'Dell' # normalize according to schema
                        when 'HP' then 'HPE'
                        else fn['chassis']['manufacturer']
                        end
+    ]
 
     oc['jobschedulerName'] = 'oar'
     oc['clusterCoreNumber'] = nodes.length * fn['architecture']['nb_cores']
     oc['nodeType'] = [
       {
         "CPUType" => "#{fn['processor']['model']} #{fn['processor']['version']}",
-        "coreNumber" => fn['architecture']['nb_cores'],
-        "cpuNumber" => fn['architecture']['nb_procs'], # FIXME check name of property
-        "memory" => (fn['main_memory']['ram_size'].to_f / 1024**3).to_i,
+        "CPUCoreNumber" => fn['architecture']['nb_cores'] / fn['architecture']['nb_procs'],
+        "nodeCPUNumber" => fn['architecture']['nb_procs'],
+        "nodeRAMSize" => (fn['main_memory']['ram_size'].to_f / 1024**3).to_i,
         "nodeNumber" => nodes.length,
-        "localDisk" => (fn['storage_devices'].map { |sd| sd['size'] }.sum.to_f / 1024**4).round(2)
+        "nodeStorageSize" => (fn['storage_devices'].map { |sd| sd['size'] }.sum.to_f / 1024**4).round(2)
       }
     ]
     if not fn['network_adapters'].select { |na| na['interface'] == 'InfiniBand' }.empty?
@@ -99,7 +101,7 @@ d['sites'].each_pair do |site, ds|
     if (fn['gpu_devices'] || {}).values.length > 0
       gpus = fn['gpu_devices'].values
       oc['nodeType'].first['GPUType'] = "#{gpus.first['vendor']} #{gpus.first['model']}"
-      oc['nodeType'].first['GPUNumber'] = gpus.length
+      oc['nodeType'].first['nodeGPUNumber'] = gpus.length
     end
     o['clusterList'] << oc
   end
@@ -176,8 +178,8 @@ d['sites'].each_pair do |site, ds|
       'size' => 40
     }
   end
-  o['totalCoreNumber'] = o['clusterList'].map { |c| c['clusterCoreNumber'] }.sum
-  o['totalStorage'] = (o['clusterList'].map { |c| c['nodeType'].map { |n| n['localDisk'] * n['nodeNumber'] }.sum }.sum +
+  o['mesoCoreNumber'] = o['clusterList'].map { |c| c['clusterCoreNumber'] }.sum
+  o['mesoStorageSize'] = (o['clusterList'].map { |c| c['nodeType'].map { |n| n['nodeStorageSize'] * n['nodeNumber'] }.sum }.sum +
     o['storageList'].map { |s| s['size'] }.sum).round(2)
   JSON::Validator.validate!(mesos_schema, o)
   File::open("grid5000-#{site}.json", "w") { |fd| fd.puts JSON::pretty_generate(o) }
-- 
GitLab