Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 07a75328 authored by Alexandre MERLIN's avatar Alexandre MERLIN
Browse files

[valid/oar-properties] raise error when discrepancy between number of disk and...

[valid/oar-properties] raise error when discrepancy between number of disk and disk_reservations_count
parent 2a3afcce
No related branches found
No related tags found
1 merge request!429[valid/oar-properties] raise error when discrepancy between number of disk and...
Pipeline #679332 passed
......@@ -18,6 +18,7 @@ module RefRepo::Valid::OarProperties
resources = RefRepo::Utils::get_api("sites/#{site}/internal/oarapi/resources/details.json?limit=1000000")['items']
default_resources = resources.select { |e| e['type'] == 'default' }.sort_by { |e| e['id'] }
disk_resources = resources.select { |e| e['type'] == 'disk' }.sort_by { |e| e['id'] }
if not options[:clusters].empty?
puts "Restricting to resources of clusters #{options[:clusters].join(',')}"
default_resources.select! { |e| options[:clusters].include?(e['cluster']) }
......@@ -67,9 +68,21 @@ module RefRepo::Valid::OarProperties
# for each host ...
default_resources.map { |e| e['host'] }.uniq.each do |host|
host_resources = default_resources.select { |e| e['host'] == host }
host_disks = disk_resources.select { |e| e['host'] == host }
cluster = host_resources.first['cluster']
next if not options[:clusters].empty? and not options[:clusters].include?(cluster)
# check number of reservable disks against disk_reservation_count
disk_reservation_count = host_resources.map{ |e| e['disk_reservation_count'] }.uniq
if disk_reservation_count.length > 1
raise "Invalid: varying disk_reservation_count inside cluster!"
end
disk_reservation_count = disk_reservation_count.first || 0
if disk_reservation_count != host_disks.count
puts "ERROR: Discrepancy found between the number of disks (#{host_disks.count}) and \"disk_reservation_count\" (#{disk_reservation_count}) for #{host}"
ret = false
end
# compute nbcores.
# cpucore is cores per cpu. to know the number of cpus, we devide memnode per memcpu.
nbcores = host_resources.map { |e| e['cpucore'] * (e['memnode'] / e['memcpu']) }.uniq
......
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