From b65cb0f4a55a66d927916ba99d12184cc8c6bdab Mon Sep 17 00:00:00 2001 From: Dimitri DELABROYE Date: Thu, 22 Oct 2020 16:14:39 +0200 Subject: [PATCH] [lib/gen/wiki/site_hardware] enhancement for bug #12343 --- .../gen/wiki/generators/site_hardware.rb | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/lib/refrepo/gen/wiki/generators/site_hardware.rb b/lib/refrepo/gen/wiki/generators/site_hardware.rb index 746c933b3e..e18e813a24 100644 --- a/lib/refrepo/gen/wiki/generators/site_hardware.rb +++ b/lib/refrepo/gen/wiki/generators/site_hardware.rb @@ -10,13 +10,22 @@ def initialize(page_name, site) end def generate_content + has_reservable_disks = false + G5K::get_global_hash['sites'][@site]['clusters'].each do |_,c| + c['nodes'].each do |_,n| + n['storage_devices'].each do |d| + has_reservable_disks ||= d['reservation'] + end + end + end + @generated_content = "__NOTOC__\n__NOEDITSECTION__\n" + "{{Portal|User}}\n" + "
[[Hardware|Global]] | " + G5K::SITES.map { |e| "[[#{e.capitalize}:Hardware|#{e.capitalize}]]" }.join(" | ") + "
\n" + "\n= Summary =\n" + "'''#{generate_oneline_summary}'''\n" + self.class.generate_summary(@site, false) + - "''*: disk is [[Disk_reservation|reservable]]''" + + (has_reservable_disks ? "''*: disk is [[Disk_reservation|reservable]]''" : '') + self.class.generate_description(@site) + MW.italic(MW.small(generated_date_string)) + MW::LINE_FEED @@ -257,7 +266,9 @@ def get_hardware(sites) } end + has_reservable_disks = false hard['storage_description'] = storage_description.sort_by!{ |d| known_devices_name.index(d['device'])}.map { |e| + has_reservable_disks ||= e['reservation'] [ e['count'] > 1 ? "\n*" : '', G5K.get_size(e['size'],'metric'), @@ -265,11 +276,15 @@ def get_hardware(sites) e['interface'], e['vendor'], e['model'], - ' (path: ' + (e['path'] || 'MISSING') + ', disk name in std environment*: ' + e['device'] + ')', + '(dev: /dev/' + e['device'] + (e['reservation'] ? '*' : '') + ', by-path: ' + (e['path'] || 'MISSING') + ')', e['reservation'] ? '[[Disk_reservation|(reservable)]]' : '', e['device'] == 'sda' ? '(primary disk)' : '' ].join(' ') - }.join('
') + "
\n''*the name of the disk may vary depending on the disks reserved/environment''" + }.join('
') + + if has_reservable_disks + hard['storage_description'] += "
\n''*: the disk block device name /dev/sd? may vary in deployed environments, prefer referring to the by-path identifier''" + end network = node_hash['network_adapters'].select { |v| v['management'] == false &&