Mentions légales du service

Skip to content
Snippets Groups Projects
Commit c785dd61 authored by Lucas Nussbaum's avatar Lucas Nussbaum
Browse files

Adaptation du script de génération pour le nouveau schéma

parent 1d86b1f9
No related branches found
No related tags found
No related merge requests found
...@@ -66,26 +66,28 @@ d['sites'].each_pair do |site, ds| ...@@ -66,26 +66,28 @@ d['sites'].each_pair do |site, ds|
o['clusterList'] = [] o['clusterList'] = []
ds['clusters'].each_pair do |cluster, dc| ds['clusters'].each_pair do |cluster, dc|
oc = {} oc = {}
oc['clusterName'] = cluster oc['name'] = cluster
nodes = dc['nodes'].values.select { |n| not n['status'] == 'retired' } nodes = dc['nodes'].values.select { |n| not n['status'] == 'retired' }
next if nodes.empty? next if nodes.empty?
fn = nodes.first 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 'Dell Inc.' then 'Dell' # normalize according to schema
when 'HP' then 'HPE' when 'HP' then 'HPE'
else fn['chassis']['manufacturer'] else fn['chassis']['manufacturer']
end end
]
oc['jobschedulerName'] = 'oar' oc['jobschedulerName'] = 'oar'
oc['clusterCoreNumber'] = nodes.length * fn['architecture']['nb_cores'] oc['clusterCoreNumber'] = nodes.length * fn['architecture']['nb_cores']
oc['nodeType'] = [ oc['nodeType'] = [
{ {
"CPUType" => "#{fn['processor']['model']} #{fn['processor']['version']}", "CPUType" => "#{fn['processor']['model']} #{fn['processor']['version']}",
"coreNumber" => fn['architecture']['nb_cores'], "CPUCoreNumber" => fn['architecture']['nb_cores'] / fn['architecture']['nb_procs'],
"cpuNumber" => fn['architecture']['nb_procs'], # FIXME check name of property "nodeCPUNumber" => fn['architecture']['nb_procs'],
"memory" => (fn['main_memory']['ram_size'].to_f / 1024**3).to_i, "nodeRAMSize" => (fn['main_memory']['ram_size'].to_f / 1024**3).to_i,
"nodeNumber" => nodes.length, "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? if not fn['network_adapters'].select { |na| na['interface'] == 'InfiniBand' }.empty?
...@@ -99,7 +101,7 @@ d['sites'].each_pair do |site, ds| ...@@ -99,7 +101,7 @@ d['sites'].each_pair do |site, ds|
if (fn['gpu_devices'] || {}).values.length > 0 if (fn['gpu_devices'] || {}).values.length > 0
gpus = fn['gpu_devices'].values gpus = fn['gpu_devices'].values
oc['nodeType'].first['GPUType'] = "#{gpus.first['vendor']} #{gpus.first['model']}" oc['nodeType'].first['GPUType'] = "#{gpus.first['vendor']} #{gpus.first['model']}"
oc['nodeType'].first['GPUNumber'] = gpus.length oc['nodeType'].first['nodeGPUNumber'] = gpus.length
end end
o['clusterList'] << oc o['clusterList'] << oc
end end
...@@ -176,8 +178,8 @@ d['sites'].each_pair do |site, ds| ...@@ -176,8 +178,8 @@ d['sites'].each_pair do |site, ds|
'size' => 40 'size' => 40
} }
end end
o['totalCoreNumber'] = o['clusterList'].map { |c| c['clusterCoreNumber'] }.sum o['mesoCoreNumber'] = o['clusterList'].map { |c| c['clusterCoreNumber'] }.sum
o['totalStorage'] = (o['clusterList'].map { |c| c['nodeType'].map { |n| n['localDisk'] * n['nodeNumber'] }.sum }.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) o['storageList'].map { |s| s['size'] }.sum).round(2)
JSON::Validator.validate!(mesos_schema, o) JSON::Validator.validate!(mesos_schema, o)
File::open("grid5000-#{site}.json", "w") { |fd| fd.puts JSON::pretty_generate(o) } File::open("grid5000-#{site}.json", "w") { |fd| fd.puts JSON::pretty_generate(o) }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment