From 1bf043643f2333fafb4f75a7817b1644226c8211 Mon Sep 17 00:00:00 2001 From: Pierre Neyron <pierre.neyron@imag.fr> Date: Tue, 17 Mar 2020 15:52:35 +0100 Subject: [PATCH] [spec] add tests for the contiguous-including-threads cpu_core_numbering scheme --- spec/oar_properties_spec.rb | 144 ++++ ..._contiguous-including-threads_cpusets.json | 769 ++++++++++++++++++ 2 files changed, 913 insertions(+) create mode 100644 spec/stub_oar_properties/load_data_hierarchy_stubbed_data_contiguous-including-threads_cpusets.json diff --git a/spec/oar_properties_spec.rb b/spec/oar_properties_spec.rb index af276b9a2e..e367948166 100644 --- a/spec/oar_properties_spec.rb +++ b/spec/oar_properties_spec.rb @@ -702,6 +702,150 @@ oarnodesetting --sql "host='clustera-2.fakesite.grid5000.fr' and type='default'" end end + context 'interracting with an empty OAR server (contiguous_including_threads cpusets)' do + before do + prepare_stubs("dump_oar_api_empty_server.json", "load_data_hierarchy_stubbed_data_contiguous-including-threads_cpusets.json") + end + + it 'should generate correctly a table of nodes' do + + uri = URI(conf["uri"]) + + response = Net::HTTP.get(uri) + + expect(response).to be_an_instance_of(String) + + options = { + :table => true, + :print => false, + :update => false, + :diff => false, + :site => "fakesite", + :clusters => ["clustera"] + } + + expected_header = <<-TXT ++---------- + -------------------- + ----- + ----- + -------- + ---- + -------------------- + ------------------------------ + ------------------------------+ +| cluster | host | cpu | core | cpuset | gpu | gpudevice | cpumodel | gpumodel | ++---------- + -------------------- + ----- + ----- + -------- + ---- + -------------------- + ------------------------------ + ------------------------------+ + TXT + + expected_clustera1_begin_desc = <<-TXT +| clustera | clustera-1 | 1 | 1 | 0 | | | ThunderX2 99xx | | +| clustera | clustera-1 | 1 | 2 | 1 | | | ThunderX2 99xx | | +| clustera | clustera-1 | 1 | 3 | 2 | | | ThunderX2 99xx | | +| clustera | clustera-1 | 1 | 4 | 3 | | | ThunderX2 99xx | | +| clustera | clustera-1 | 1 | 5 | 4 | | | ThunderX2 99xx | | + TXT + + + expected_clustera1_middle_desc = <<-TXT +| clustera | clustera-1 | 1 | 29 | 28 | | | ThunderX2 99xx | | +| clustera | clustera-1 | 1 | 30 | 29 | | | ThunderX2 99xx | | +| clustera | clustera-1 | 1 | 31 | 30 | | | ThunderX2 99xx | | +| clustera | clustera-1 | 1 | 32 | 31 | | | ThunderX2 99xx | | +| clustera | clustera-1 | 2 | 33 | 128 | | | ThunderX2 99xx | | +| clustera | clustera-1 | 2 | 34 | 129 | | | ThunderX2 99xx | | +| clustera | clustera-1 | 2 | 35 | 130 | | | ThunderX2 99xx | | +| clustera | clustera-1 | 2 | 36 | 131 | | | ThunderX2 99xx | | + TXT + + expected_clustera2_middle_desc = <<-TXT +| clustera | clustera-2 | 3 | 93 | 28 | | | ThunderX2 99xx | | +| clustera | clustera-2 | 3 | 94 | 29 | | | ThunderX2 99xx | | +| clustera | clustera-2 | 3 | 95 | 30 | | | ThunderX2 99xx | | +| clustera | clustera-2 | 3 | 96 | 31 | | | ThunderX2 99xx | | +| clustera | clustera-2 | 4 | 97 | 128 | | | ThunderX2 99xx | | +| clustera | clustera-2 | 4 | 98 | 129 | | | ThunderX2 99xx | | +| clustera | clustera-2 | 4 | 99 | 130 | | | ThunderX2 99xx | | +| clustera | clustera-2 | 4 | 100 | 131 | | | ThunderX2 99xx | | + TXT + + expected_clustera2_end_desc = <<-TXT +| clustera | clustera-2 | 4 | 125 | 156 | | | ThunderX2 99xx | | +| clustera | clustera-2 | 4 | 126 | 157 | | | ThunderX2 99xx | | +| clustera | clustera-2 | 4 | 127 | 158 | | | ThunderX2 99xx | | +| clustera | clustera-2 | 4 | 128 | 159 | | | ThunderX2 99xx | | ++---------- + -------------------- + ----- + ----- + -------- + ---- + -------------------- + ------------------------------ + ------------------------------+ + TXT + + generator_output = capture do + generate_oar_properties(options) + end + + expect(generator_output[:stdout]).to include(expected_header) + expect(generator_output[:stdout]).to include(expected_clustera1_begin_desc) + expect(generator_output[:stdout]).to include(expected_clustera1_middle_desc) + expect(generator_output[:stdout]).to include(expected_clustera2_middle_desc) + expect(generator_output[:stdout]).to include(expected_clustera2_end_desc) + end + + it 'should generate correctly all the commands to update OAR' do + + uri = URI(conf["uri"]) + + response = Net::HTTP.get(uri) + + expect(response).to be_an_instance_of(String) + + options = { + :table => false, + :print => true, + :update => false, + :diff => false, + :site => "fakesite", + :clusters => ["clustera"] + } + + expected_header = <<-TXT +############################################# +# Create OAR properties that were created by 'oar_resources_add' +############################################# +property_exist 'host' || oarproperty -a host --varchar +property_exist 'cpu' || oarproperty -a cpu +property_exist 'core' || oarproperty -a core +property_exist 'gpudevice' || oarproperty -a gpudevice +property_exist 'gpu' || oarproperty -a gpu +property_exist 'gpu_model' || oarproperty -a gpu_model --varchar + TXT + + expected_clustera1_cmds = <<-TXT +oarnodesetting -a -h 'clustera-1.fakesite.grid5000.fr' -p host='clustera-1.fakesite.grid5000.fr' -p cpu=1 -p core=29 -p cpuset=28 +oarnodesetting -a -h 'clustera-1.fakesite.grid5000.fr' -p host='clustera-1.fakesite.grid5000.fr' -p cpu=1 -p core=30 -p cpuset=29 +oarnodesetting -a -h 'clustera-1.fakesite.grid5000.fr' -p host='clustera-1.fakesite.grid5000.fr' -p cpu=1 -p core=31 -p cpuset=30 +oarnodesetting -a -h 'clustera-1.fakesite.grid5000.fr' -p host='clustera-1.fakesite.grid5000.fr' -p cpu=1 -p core=32 -p cpuset=31 +oarnodesetting -a -h 'clustera-1.fakesite.grid5000.fr' -p host='clustera-1.fakesite.grid5000.fr' -p cpu=2 -p core=33 -p cpuset=128 +oarnodesetting -a -h 'clustera-1.fakesite.grid5000.fr' -p host='clustera-1.fakesite.grid5000.fr' -p cpu=2 -p core=34 -p cpuset=129 +oarnodesetting -a -h 'clustera-1.fakesite.grid5000.fr' -p host='clustera-1.fakesite.grid5000.fr' -p cpu=2 -p core=35 -p cpuset=130 +oarnodesetting -a -h 'clustera-1.fakesite.grid5000.fr' -p host='clustera-1.fakesite.grid5000.fr' -p cpu=2 -p core=36 -p cpuset=131 + TXT + + expected_clustera2_cmds = <<-TXT +oarnodesetting -a -h 'clustera-2.fakesite.grid5000.fr' -p host='clustera-2.fakesite.grid5000.fr' -p cpu=3 -p core=93 -p cpuset=28 +oarnodesetting -a -h 'clustera-2.fakesite.grid5000.fr' -p host='clustera-2.fakesite.grid5000.fr' -p cpu=3 -p core=94 -p cpuset=29 +oarnodesetting -a -h 'clustera-2.fakesite.grid5000.fr' -p host='clustera-2.fakesite.grid5000.fr' -p cpu=3 -p core=95 -p cpuset=30 +oarnodesetting -a -h 'clustera-2.fakesite.grid5000.fr' -p host='clustera-2.fakesite.grid5000.fr' -p cpu=3 -p core=96 -p cpuset=31 +oarnodesetting -a -h 'clustera-2.fakesite.grid5000.fr' -p host='clustera-2.fakesite.grid5000.fr' -p cpu=4 -p core=97 -p cpuset=128 +oarnodesetting -a -h 'clustera-2.fakesite.grid5000.fr' -p host='clustera-2.fakesite.grid5000.fr' -p cpu=4 -p core=98 -p cpuset=129 +oarnodesetting -a -h 'clustera-2.fakesite.grid5000.fr' -p host='clustera-2.fakesite.grid5000.fr' -p cpu=4 -p core=99 -p cpuset=130 +oarnodesetting -a -h 'clustera-2.fakesite.grid5000.fr' -p host='clustera-2.fakesite.grid5000.fr' -p cpu=4 -p core=100 -p cpuset=131 + TXT + + expected_clustera3_cmds = <<-TXT +oarnodesetting --sql "host='clustera-2.fakesite.grid5000.fr' and type='default'" -p ip='172.16.54.2' -p cluster='clustera' -p nodemodel='Dell PowerEdge T640' -p switch='gw' -p besteffort='YES' -p deploy='YES' -p virtual='arm64' -p cpuarch='aarch64' -p cpucore=32 -p cputype='ThunderX2 99xx' -p cpufreq='2.2' -p disktype='SAS' -p eth_count=1 -p eth_rate=10 -p ib_count=0 -p ib_rate=0 -p ib='NO' -p opa_count=0 -p opa_rate=0 -p myri_count=0 -p myri_rate=0 -p myri='NO' -p memcore=4096 -p memcpu=131072 -p memnode=262144 -p gpu_count=0 -p mic='NO' -p wattmeter='NO' -p cluster_priority=201906 -p max_walltime=0 -p production='NO' -p maintenance='YES' -p disk_reservation_count=0 + TXT + + generator_output = capture do + generate_oar_properties(options) + end + + expect(generator_output[:stdout]).to include(expected_header) + expect(generator_output[:stdout]).to include(expected_clustera1_cmds) + expect(generator_output[:stdout]).to include(expected_clustera2_cmds) + expect(generator_output[:stdout]).to include(expected_clustera3_cmds) + end + end + context 'interracting with an empty OAR server (cluster with disk)' do before do prepare_stubs("dump_oar_api_empty_server.json", "load_data_hierarchy_stubbed_data_with_disk.json") diff --git a/spec/stub_oar_properties/load_data_hierarchy_stubbed_data_contiguous-including-threads_cpusets.json b/spec/stub_oar_properties/load_data_hierarchy_stubbed_data_contiguous-including-threads_cpusets.json new file mode 100644 index 0000000000..45b5a87980 --- /dev/null +++ b/spec/stub_oar_properties/load_data_hierarchy_stubbed_data_contiguous-including-threads_cpusets.json @@ -0,0 +1,769 @@ +{ + "sites": { + "fakesite": { + "clusters": { + "clustera": { + "nodes": { + "clustera-1": { + "architecture": { + "cpu_core_numbering": "contiguous-including-threads", + "nb_cores": 64, + "nb_procs": 2, + "nb_threads": 256, + "platform_type": "aarch64" + }, + "bios": { + "release_date": "10/25/2019", + "vendor": "GIGABYTE", + "version": "F27" + }, + "bmc_version": "1.95", + "chassis": { + "manufacturer": "GIGABYTE", + "name": "R181-T92-00", + "serial": "GJG5N9812A0001" + }, + "kavlan": { + "eth0": { + "kavlan-1": "192.168.198.1", + "kavlan-11": "10.7.206.1", + "kavlan-12": "10.11.206.1", + "kavlan-13": "10.15.206.1", + "kavlan-14": "10.19.206.1", + "kavlan-16": "10.27.206.1", + "kavlan-18": "10.35.206.1", + "kavlan-2": "192.168.214.1", + "kavlan-20": "10.43.206.1", + "kavlan-21": "10.47.206.1", + "kavlan-3": "192.168.230.1", + "kavlan-4": "10.12.6.1", + "kavlan-5": "10.12.70.1", + "kavlan-6": "10.12.134.1", + "kavlan-7": "10.12.198.1", + "kavlan-8": "10.13.6.1", + "kavlan-9": "10.13.70.1" + } + }, + "main_memory": { + "ram_size": 274877906944 + }, + "monitoring": { + "wattmeter": "false" + }, + "network_adapters": [ + { + "device": "eth0", + "driver": "qede", + "enabled": true, + "firmware_version": "mfw 8.35.24.0 storm 8.37.2.0", + "interface": "Ethernet", + "ip": "172.16.54.1", + "ip6": "2001:660:4406:400:7::1", + "kavlan": true, + "mac": "b4:2e:99:3d:1f:40", + "management": false, + "model": "FastLinQ QL41000 Series 10/25/40/50GbE Controller", + "mountable": true, + "mounted": true, + "name": "eno1", + "network_address": "clustera-1.fakesite.grid5000.fr", + "rate": 10000000000, + "switch": "gw", + "switch_port": "ethernet1/1/3", + "vendor": "QLogic Corp." + }, + { + "device": "eth1", + "driver": "qede", + "enabled": false, + "firmware_version": "mfw 8.35.24.0 storm 8.37.2.0", + "interface": "Ethernet", + "kavlan": false, + "mac": "b4:2e:99:3d:1f:41", + "management": false, + "model": "FastLinQ QL41000 Series 10/25/40/50GbE Controller", + "mountable": false, + "mounted": false, + "name": "eno2", + "vendor": "QLogic Corp." + }, + { + "device": "bmc", + "enabled": true, + "interface": "Ethernet", + "ip": "172.17.54.1", + "kavlan": false, + "mac": "b4:2e:99:3d:1f:42", + "management": true, + "mountable": false, + "mounted": false, + "network_address": "clustera-1-bmc.fakesite.grid5000.fr" + } + ], + "operating_system": { + "cstate_driver": "none", + "cstate_governor": "menu", + "ht_enabled": true, + "pstate_driver": "cppc_cpufreq", + "pstate_governor": "performance", + "turboboost_enabled": false + }, + "performance": { + "core_flops": 0, + "node_flops": 0 + }, + "processor": { + "cache_l1": null, + "cache_l1d": 32768, + "cache_l1i": 32768, + "cache_l2": 262144, + "cache_l3": 33554432, + "clock_speed": 2200000000, + "ht_capable": false, + "instruction_set": "aarch64", + "microarchitecture": "Vulcan", + "microcode": "unknown", + "model": "ThunderX2", + "other_description": "ThunderX2 99xx", + "vendor": "Cavium", + "version": "99xx" + }, + "sensors": { + "power": { + "available": true, + "per_outlets": true, + "via": { + "api": { + "metric": "power" + }, + "pdu": [ + { + "port": 45, + "uid": "wattmetre1" + } + ], + "www": { + "url": "http://wattmetre.lyon.grid5000.fr/GetWatts-json.php" + } + } + } + }, + "software": { + "standard-environment": "debian10-arm64-std" + }, + "storage_devices": [ + { + "by_id": "/dev/disk/by-id/wwn-0x5002538e40c53de0", + "by_path": "/dev/disk/by-path/pci-0000:0f:00.0-sas-phy2-lun-0", + "device": "sda", + "firmware_version": "RVT02B6Q", + "interface": "SAS", + "model": "Samsung SSD 860", + "size": 250059350016, + "storage": "HDD", + "vendor": "Samsung" + }, + { + "by_id": "/dev/disk/by-id/wwn-0x5002538e40c53daa", + "by_path": "/dev/disk/by-path/pci-0000:0f:00.0-sas-phy3-lun-0", + "device": "sdb", + "firmware_version": "RVT02B6Q", + "interface": "SAS", + "model": "Samsung SSD 860", + "size": 250059350016, + "storage": "HDD", + "vendor": "Samsung" + } + ], + "supported_job_types": { + "besteffort": true, + "deploy": true, + "max_walltime": 0, + "queues": [ + "admin", + "testing" + ], + "virtual": "arm64" + }, + "type": "node", + "uid": "clustera-1" + }, + "clustera-2": { + "architecture": { + "cpu_core_numbering": "contiguous-including-threads", + "nb_cores": 64, + "nb_procs": 2, + "nb_threads": 256, + "platform_type": "aarch64" + }, + "bios": { + "release_date": "10/25/2019", + "vendor": "GIGABYTE", + "version": "F27" + }, + "bmc_version": "1.95", + "chassis": { + "manufacturer": "GIGABYTE", + "name": "R181-T92-00", + "serial": "GJG5N9812A0004" + }, + "kavlan": { + "eth0": { + "kavlan-1": "192.168.198.2", + "kavlan-11": "10.7.206.2", + "kavlan-12": "10.11.206.2", + "kavlan-13": "10.15.206.2", + "kavlan-14": "10.19.206.2", + "kavlan-16": "10.27.206.2", + "kavlan-18": "10.35.206.2", + "kavlan-2": "192.168.214.2", + "kavlan-20": "10.43.206.2", + "kavlan-21": "10.47.206.2", + "kavlan-3": "192.168.230.2", + "kavlan-4": "10.12.6.2", + "kavlan-5": "10.12.70.2", + "kavlan-6": "10.12.134.2", + "kavlan-7": "10.12.198.2", + "kavlan-8": "10.13.6.2", + "kavlan-9": "10.13.70.2" + } + }, + "main_memory": { + "ram_size": 274877906944 + }, + "monitoring": { + "wattmeter": "false" + }, + "network_adapters": [ + { + "device": "eth0", + "driver": "qede", + "enabled": true, + "firmware_version": "mfw 8.35.24.0 storm 8.37.2.0", + "interface": "Ethernet", + "ip": "172.16.54.2", + "ip6": "2001:660:4406:400:7::2", + "kavlan": true, + "mac": "b4:2e:99:3d:1f:3c", + "management": false, + "model": "FastLinQ QL41000 Series 10/25/40/50GbE Controller", + "mountable": true, + "mounted": true, + "name": "eno1", + "network_address": "clustera-2.fakesite.grid5000.fr", + "rate": 10000000000, + "switch": "gw", + "switch_port": "ethernet1/1/4", + "vendor": "QLogic Corp." + }, + { + "device": "eth1", + "driver": "qede", + "enabled": false, + "firmware_version": "mfw 8.35.24.0 storm 8.37.2.0", + "interface": "Ethernet", + "kavlan": false, + "mac": "b4:2e:99:3d:1f:3d", + "management": false, + "model": "FastLinQ QL41000 Series 10/25/40/50GbE Controller", + "mountable": false, + "mounted": false, + "name": "eno2", + "vendor": "QLogic Corp." + }, + { + "device": "bmc", + "enabled": true, + "interface": "Ethernet", + "ip": "172.17.54.2", + "kavlan": false, + "mac": "b4:2e:99:3d:1f:3e", + "management": true, + "mountable": false, + "mounted": false, + "network_address": "clustera-2-bmc.fakesite.grid5000.fr" + } + ], + "operating_system": { + "cstate_driver": "none", + "cstate_governor": "menu", + "ht_enabled": true, + "pstate_driver": "cppc_cpufreq", + "pstate_governor": "performance", + "turboboost_enabled": false + }, + "performance": { + "core_flops": 0, + "node_flops": 0 + }, + "processor": { + "cache_l1": null, + "cache_l1d": 32768, + "cache_l1i": 32768, + "cache_l2": 262144, + "cache_l3": 33554432, + "clock_speed": 2200000000, + "ht_capable": false, + "instruction_set": "aarch64", + "microarchitecture": "Vulcan", + "microcode": "unknown", + "model": "ThunderX2", + "other_description": "ThunderX2 99xx", + "vendor": "Cavium", + "version": "99xx" + }, + "sensors": { + "power": { + "available": true, + "per_outlets": true, + "via": { + "api": { + "metric": "power" + }, + "pdu": [ + { + "port": 24, + "uid": "wattmetre1" + } + ], + "www": { + "url": "http://wattmetre.lyon.grid5000.fr/GetWatts-json.php" + } + } + } + }, + "software": { + "standard-environment": "debian10-arm64-std" + }, + "storage_devices": [ + { + "by_id": "/dev/disk/by-id/wwn-0x5002538e40c53daf", + "by_path": "/dev/disk/by-path/pci-0000:0f:00.0-sas-phy2-lun-0", + "device": "sda", + "firmware_version": "RVT02B6Q", + "interface": "SAS", + "model": "Samsung SSD 860", + "size": 250059350016, + "storage": "HDD", + "vendor": "Samsung" + }, + { + "by_id": "/dev/disk/by-id/wwn-0x5002538e40c53da8", + "by_path": "/dev/disk/by-path/pci-0000:0f:00.0-sas-phy3-lun-0", + "device": "sdb", + "firmware_version": "RVT02B6Q", + "interface": "SAS", + "model": "Samsung SSD 860", + "size": 250059350016, + "storage": "HDD", + "vendor": "Samsung" + } + ], + "supported_job_types": { + "besteffort": true, + "deploy": true, + "max_walltime": 0, + "queues": [ + "admin", + "testing" + ], + "virtual": "arm64" + }, + "type": "node", + "uid": "clustera-2" + } + }, + "created_at": "Fri, 07 Jun 2019 00:00:00 GMT", + "kavlan": false, + "model": "Dell PowerEdge T640", + "queues": ["admin", "production"], + "type": "cluster", + "uid": "clustera" + } + }, + "network_equipments": { + "gw-fakesite": { + "backplane_bps": 1280000000000, + "kind": "router", + "linecards": [{}, {}, {}, {}, {}, {}, { + "backplane_bps": 1280000000000, + "kavlan_pattern": "Ethernet%LINECARD%/%PORT%", + "kind": "node", + "model": "N9K-X9464PX", + "ports": [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, { + "kind": "node", + "port": "eth2", + "uid": "clustera-1" + }, { + "kind": "node", + "port": "eth2", + "uid": "clustera-2" + }], + "rate": 10000000000, + "snmp_pattern": "Ethernet%LINECARD%/%PORT%" + }], + "model": "Cisco Nexus 9508", + "monitoring": { + "metric": "power", + "wattmeter": "multiple" + }, + "sensors": { + "network": { + "available": true, + "resolution": 10 + }, + "power": { + "available": true, + "resolution": 1, + "via": { + "pdu": [{ + "port": 8, + "uid": "graoully-pdu1" + }, { + "port": 8, + "uid": "graoully-pdu2" + }, { + "port": 8, + "uid": "grimoire-pdu1" + }, { + "port": 8, + "uid": "grimoire-pdu2" + }] + } + } + }, + "site": "fakesite", + "snmp_community": "public", + "type": "network_equipment", + "uid": "gw-fakesite", + "vlans": { + "vlan100": { + "addresses": ["172.16.79.254"], + "administrative": true + }, + "vlan101": { + "addresses": ["172.17.79.254"] + }, + "vlan500": { + "addresses": ["192.168.4.14"] + }, + "vlan701": { + "addresses": ["192.168.192.0/20"], + "name": "kavlan-1" + }, + "vlan702": { + "addresses": ["192.168.208.0/20"], + "name": "kavlan-2" + }, + "vlan703": { + "addresses": ["192.168.224.0/20"], + "name": "kavlan-3" + }, + "vlan704": { + "addresses": ["10.16.0.0/18"], + "name": "kavlan-4" + }, + "vlan705": { + "addresses": ["10.16.64.0/18"], + "name": "kavlan-5" + }, + "vlan706": { + "addresses": ["10.16.128.0/18"], + "name": "kavlan-6" + }, + "vlan707": { + "addresses": ["10.16.192.0/18"], + "name": "kavlan-7" + }, + "vlan708": { + "addresses": ["10.17.0.0/18"], + "name": "kavlan-8" + }, + "vlan709": { + "addresses": ["10.17.64.0/18"], + "name": "kavlan-9" + }, + "vlan714": { + "addresses": ["10.19.192.0/18"], + "name": "kavlan-14" + } + }, + "warranty": "2020-09-01", + "weathermap": {} + } + }, + "pdus": { + "clustera-pdu1": { + "ip": "172.17.79.226", + "mac": "28:29:86:0B:3B:06", + "model": "AP8653", + "ports": { + "1": "clustera-1", + "6": "clustera-2" + }, + "sensors": [{ + "power": { + "per_outlets": true, + "resolution": 1, + "snmp": { + "available": true, + "outlet_prefix_oid": "iso.3.6.1.4.1.318.1.1.26.9.4.3.1.7", + "total_oids": ["iso.3.6.1.4.1.318.1.1.12.1.16.0"], + "unit": "W" + } + } + }], + "type": "pdu", + "uid": "clustera-pdu1", + "vendor": "APC" + }, + "clustera-pdu3": { + "ip": "172.17.79.231", + "mac": "28:29:86:12:27:FF", + "model": "AP8653", + "ports": {}, + "sensors": [{ + "power": { + "per_outlets": true, + "resolution": 1, + "snmp": { + "available": true, + "outlet_prefix_oid": "iso.3.6.1.4.1.318.1.1.26.9.4.3.1.7", + "total_oids": ["iso.3.6.1.4.1.318.1.1.12.1.16.0"], + "unit": "W" + } + } + }], + "type": "pdu", + "uid": "clustera-pdu3", + "vendor": "APC" + }, + "clustera-pdu2": { + "ip": "172.17.79.227", + "mac": "28:29:86:10:0E:8C", + "model": "AP8653", + "ports": { + "1": "clustera-1", + "6": "clustera-2" + }, + "sensors": [{ + "power": { + "per_outlets": true, + "resolution": 1, + "snmp": { + "available": true, + "outlet_prefix_oid": "iso.3.6.1.4.1.318.1.1.26.9.4.3.1.7", + "total_oids": ["iso.3.6.1.4.1.318.1.1.12.1.16.0"], + "unit": "W" + } + } + }], + "type": "pdu", + "uid": "clustera-pdu2", + "vendor": "APC" + }, + "clustera-pdu4": { + "ip": "172.17.79.232", + "mac": "28:29:86:10:0E:B4", + "model": "AP8653", + "ports": {}, + "sensors": [{ + "power": { + "per_outlets": true, + "resolution": 1, + "snmp": { + "available": true, + "outlet_prefix_oid": "iso.3.6.1.4.1.318.1.1.26.9.4.3.1.7", + "total_oids": ["iso.3.6.1.4.1.318.1.1.12.1.16.0"], + "unit": "W" + } + } + }], + "type": "pdu", + "uid": "clustera-pdu4", + "vendor": "APC" + } + }, + "compilation_server": false, + "description": "Grid5000 Fakesite site", + "email_contact": "support-staff@lists.grid5000.fr", + "frontend_ip": "172.16.79.101", + "g5ksubnet": { + "gateway": "10.147.255.254", + "network": "10.144.0.0/14" + }, + "latitude": 48.7, + "location": "Fakesite, France", + "longitude": 6.2, + "name": "Fakesite", + "production": true, + "renater_ip": "192.168.4.14", + "security_contact": "support-staff@lists.grid5000.fr", + "storage5k": false, + "sys_admin_contact": "support-staff@lists.grid5000.fr", + "type": "site", + "uid": "fakesite", + "user_support_contact": "support-staff@lists.grid5000.fr", + "virt_ip_range": "10.144.0.0/14", + "web": "http://www.grid5000.fr/mediawiki/index.php/Fakesite:Home" + } + }, + "network_equipments": { + "renater-lyon": { + "kind": "virtual", + "linecards": [{ + "ports": [{ + "uid": "renater-paris" + }, { + "uid": "renater-sophia" + }, { + "uid": "renater-grenoble" + }, { + "uid": "renater-nantes" + }, { + "kind": "router", + "site_uid": "lyon", + "uid": "gw-lyon" + }], + "rate": 10000000000 + }], + "type": "network_equipment", + "uid": "renater-lyon", + "weathermap": {} + }, + "renater-grenoble": { + "kind": "virtual", + "linecards": [{ + "ports": [{ + "uid": "renater-lyon" + }, { + "kind": "router", + "site_uid": "grenoble", + "uid": "gw-grenoble" + }], + "rate": 10000000000 + }], + "type": "network_equipment", + "uid": "renater-grenoble", + "weathermap": {} + }, + "renater-nancy": { + "kind": "virtual", + "linecards": [{ + "ports": [{ + "uid": "renater-luxembourg" + }, { + "uid": "renater-paris" + }, { + "kind": "router", + "site_uid": "nancy", + "uid": "gw-nancy" + }], + "rate": 10000000000 + }], + "type": "network_equipment", + "uid": "renater-nancy", + "weathermap": {} + }, + "renater-luxembourg": { + "kind": "virtual", + "linecards": [{ + "ports": [{ + "uid": "renater-nancy" + }, { + "kind": "router", + "site_uid": "luxembourg", + "uid": "gw-luxembourg" + }], + "rate": 10000000000 + }], + "type": "network_equipment", + "uid": "renater-luxembourg", + "weathermap": {} + }, + "renater-sophia": { + "kind": "virtual", + "linecards": [{ + "ports": [{ + "uid": "renater-lyon" + }, { + "kind": "router", + "site_uid": "sophia", + "uid": "gw-sophia" + }], + "rate": 10000000000 + }], + "type": "network_equipment", + "uid": "renater-sophia", + "weathermap": {} + }, + "renater-paris": { + "kind": "virtual", + "linecards": [{ + "ports": [{ + "uid": "renater-lille" + }, { + "uid": "renater-lyon" + }, { + "uid": "renater-nancy" + }], + "rate": 10000000000 + }], + "type": "network_equipment", + "uid": "renater-paris", + "weathermap": {} + }, + "renater-rennes": { + "kind": "virtual", + "linecards": [{ + "ports": [{ + "uid": "renater-nantes" + }, { + "kind": "router", + "site_uid": "rennes", + "uid": "gw-rennes" + }], + "rate": 10000000000 + }], + "type": "network_equipment", + "uid": "renater-rennes", + "weathermap": {} + }, + "renater-nantes": { + "kind": "virtual", + "linecards": [{ + "ports": [{ + "uid": "renater-lyon" + }, { + "uid": "renater-rennes" + }, { + "kind": "router", + "site_uid": "nantes", + "uid": "gw-nantes" + }], + "rate": 10000000000 + }], + "type": "network_equipment", + "uid": "renater-nantes", + "weathermap": {} + }, + "renater-lille": { + "kind": "virtual", + "linecards": [{ + "ports": [{ + "uid": "renater-paris" + }, { + "kind": "router", + "site_uid": "lille", + "uid": "gw-lille" + }], + "rate": 10000000000 + }], + "type": "network_equipment", + "uid": "renater-lille", + "weathermap": {} + } + }, + "type": "grid", + "uid": "grid5000" +} -- GitLab