diff --git a/data/grid5000/sites/lille/servers/granche-srv1.json b/data/grid5000/sites/lille/servers/granche-srv1.json index 768a220bcc63f26d985998f16602499b54b3da6c..3961e0e5dc6178451254562e46f4999e0cd9fe82 100644 --- a/data/grid5000/sites/lille/servers/granche-srv1.json +++ b/data/grid5000/sites/lille/servers/granche-srv1.json @@ -2,6 +2,11 @@ "alias": [ "storage1" ], + "group_storage": { + "name": "storage1", + "rate": 50000000000, + "size": 90000000000000 + }, "kind": "physical", "monitoring": { "metric": "power", diff --git a/data/grid5000/sites/lille/servers/granche-srv2.json b/data/grid5000/sites/lille/servers/granche-srv2.json index cc31db11167adc127c27bfffe2835192fe706b82..3523ee383c0a8a47905ff61d37ecb012847777c4 100644 --- a/data/grid5000/sites/lille/servers/granche-srv2.json +++ b/data/grid5000/sites/lille/servers/granche-srv2.json @@ -3,6 +3,11 @@ "storage2", "modules" ], + "group_storage": { + "name": "storage2", + "rate": 50000000000, + "size": 90000000000000 + }, "kind": "physical", "monitoring": { "metric": "power", diff --git a/data/grid5000/sites/luxembourg/servers/srv-data.json b/data/grid5000/sites/luxembourg/servers/srv-data.json index b444fe6480ad01793f280c33db27dde32425466f..8877b9842a4f83bf8094ee6346230724807f4f49 100644 --- a/data/grid5000/sites/luxembourg/servers/srv-data.json +++ b/data/grid5000/sites/luxembourg/servers/srv-data.json @@ -7,6 +7,11 @@ "storage1", "modules" ], + "group_storage": { + "name": "storage1", + "rate": 20000000000, + "size": 40000000000000 + }, "kind": "physical", "network_adapters": { "bmc": { diff --git a/data/grid5000/sites/lyon/servers/alcor.json b/data/grid5000/sites/lyon/servers/alcor.json index 84243d23c7a91312f2d8036f9258c6e1e728f093..330165a58a34bdbdda2e169b6ff4608ad8d26ef4 100644 --- a/data/grid5000/sites/lyon/servers/alcor.json +++ b/data/grid5000/sites/lyon/servers/alcor.json @@ -2,6 +2,11 @@ "alias": [ "storage1" ], + "group_storage": { + "name": "storage1", + "rate": 10000000000, + "size": 75000000000000 + }, "kind": "physical", "network_adapters": { "bmc": { diff --git a/data/grid5000/sites/nancy/servers/talc-data2.json b/data/grid5000/sites/nancy/servers/talc-data2.json index 1a7e3bd073cd24593868e89059c43e4755cfa9d7..803939d91b50952bd25022031d1af7d54674d2ee 100644 --- a/data/grid5000/sites/nancy/servers/talc-data2.json +++ b/data/grid5000/sites/nancy/servers/talc-data2.json @@ -2,6 +2,11 @@ "alias": [ ], + "group_storage": { + "name": "talc-data2", + "rate": 10000000000, + "size": 200000000000000 + }, "kind": "physical", "network_adapters": { "bmc": { diff --git a/data/grid5000/sites/rennes/servers/srv-bigdata.json b/data/grid5000/sites/rennes/servers/srv-bigdata.json index 77e3c0b8b6e74113f7c02bff24f589db46d36220..b3d464a7a1397de3d65b9c5da01989f1ba06f040 100644 --- a/data/grid5000/sites/rennes/servers/srv-bigdata.json +++ b/data/grid5000/sites/rennes/servers/srv-bigdata.json @@ -4,6 +4,11 @@ "storage1", "modules" ], + "group_storage": { + "name": "storage1", + "rate": 10000000000, + "size": 100000000000000 + }, "kind": "physical", "network_adapters": { "bmc": { diff --git a/data/grid5000/sites/sophia/servers/srv-data.json b/data/grid5000/sites/sophia/servers/srv-data.json index beb860de5c574f097e8f9249d3faef534549a645..8c7fe0a1ca409ca75596a5cac00fa066bf11b72b 100644 --- a/data/grid5000/sites/sophia/servers/srv-data.json +++ b/data/grid5000/sites/sophia/servers/srv-data.json @@ -5,6 +5,11 @@ "storage1", "modules" ], + "group_storage": { + "name": "storage1", + "rate": 1000000000, + "size": 30000000000000 + }, "kind": "physical", "network_adapters": { "bmc": { diff --git a/input/grid5000/sites/lille/servers/physical.yaml b/input/grid5000/sites/lille/servers/physical.yaml index fb98d4d0ad18b81f2bd5895aa5b549fff46192c8..341549b3242e556bdb63869ae4e29204a4ed56f3 100644 --- a/input/grid5000/sites/lille/servers/physical.yaml +++ b/input/grid5000/sites/lille/servers/physical.yaml @@ -322,6 +322,10 @@ granche-srv1: port: 11 - uid: pdu-b2p2 port: 11 + group_storage: + name: storage1 + size: 90000000000000 + rate: 50000000000 granche-srv2: kind: physical @@ -353,3 +357,7 @@ granche-srv2: port: 10 - uid: pdu-b2p2 port: 10 + group_storage: + name: storage2 + size: 90000000000000 + rate: 50000000000 diff --git a/input/grid5000/sites/luxembourg/servers/servers.yaml b/input/grid5000/sites/luxembourg/servers/servers.yaml index 4dea6d97426f26d23fa24ac18880c2741200830b..90389a479876799486a1b2cd9c7cb0de068ef87e 100644 --- a/input/grid5000/sites/luxembourg/servers/servers.yaml +++ b/input/grid5000/sites/luxembourg/servers/servers.yaml @@ -35,6 +35,10 @@ srv-data: bmc: ip: 172.17.190.70 mac: D0:94:66:92:94:C1 + group_storage: + name: storage1 + size: 40000000000000 + rate: 20000000000 petitprince-cmc: kind: physical diff --git a/input/grid5000/sites/lyon/servers/servers.yaml b/input/grid5000/sites/lyon/servers/servers.yaml index 1487083ff63c7eed61ca965d47bddbd5f47b54df..e3c3d50baf3304ced5a3d4319509f5f4c0b983b9 100644 --- a/input/grid5000/sites/lyon/servers/servers.yaml +++ b/input/grid5000/sites/lyon/servers/servers.yaml @@ -51,6 +51,10 @@ alcor: bmc: ip: 172.17.62.11 mac: 4C:D9:8F:6E:26:89 + group_storage: + name: storage1 + size: 75000000000000 + rate: 10000000000 nebula: kind: physical diff --git a/input/grid5000/sites/nancy/servers/servers.yaml b/input/grid5000/sites/nancy/servers/servers.yaml index a3cc45d04236c227111481e79545dfb39a94f6a0..8d1bda4ac6231fb9a4742447c0ad6106858c762f 100644 --- a/input/grid5000/sites/nancy/servers/servers.yaml +++ b/input/grid5000/sites/nancy/servers/servers.yaml @@ -279,6 +279,10 @@ talc-data2: bmc: ip: 172.17.79.30 mac: 4c:d9:8f:63:31:d3 + group_storage: + name: talc-data2 + size: 200000000000000 + rate: 10000000000 srv3: kind: physical diff --git a/input/grid5000/sites/rennes/servers/servers.yaml b/input/grid5000/sites/rennes/servers/servers.yaml index eff1ccb8f6fc59ef5e21a768be03e3b76d3d2265..8bae81bc6497f936a12b167bf33736cd6b8d6fe5 100644 --- a/input/grid5000/sites/rennes/servers/servers.yaml +++ b/input/grid5000/sites/rennes/servers/servers.yaml @@ -69,6 +69,10 @@ srv-bigdata: ip: 172.16.111.7 bmc: ip: 172.17.111.7 + group_storage: + name: storage1 + size: 100000000000000 + rate: 10000000000 rook-storage0: kind: physical diff --git a/input/grid5000/sites/sophia/servers/physical.yaml b/input/grid5000/sites/sophia/servers/physical.yaml index 705ee6bbf3f401a89195a5a7ab1979d81f11a57d..0131199199033dc08ebb7efa3e96ef042dc00287 100644 --- a/input/grid5000/sites/sophia/servers/physical.yaml +++ b/input/grid5000/sites/sophia/servers/physical.yaml @@ -105,6 +105,10 @@ srv-data: mounted: true ip: 172.17.143.5 mac: 14:18:77:45:b8:63 + group_storage: + name: storage1 + size: 30000000000000 + rate: 1000000000 gwol-south: kind: physical diff --git a/lib/refrepo/gen/wiki.rb b/lib/refrepo/gen/wiki.rb index 1ecb98f30689f0e69ca3847746bc2649ff733da2..d6a39f5ee14209f1084353589225ba43d4e6e9df 100644 --- a/lib/refrepo/gen/wiki.rb +++ b/lib/refrepo/gen/wiki.rb @@ -7,6 +7,7 @@ require 'refrepo/gen/wiki/generators/oar_properties' require 'refrepo/gen/wiki/generators/site_hardware' require 'refrepo/gen/wiki/generators/site_network' require 'refrepo/gen/wiki/generators/status' +require 'refrepo/gen/wiki/generators/group_storage' module RefRepo::Gen::Wiki @@ -30,6 +31,10 @@ module RefRepo::Gen::Wiki 'oar_properties' => { :gen => OarPropertiesGenerator, :page => 'OAR_Properties' + }, + 'group_storage' => { + :gen => GroupStorageGenerator, + :page => 'Group_Storage' } } SITE_GENERATORS = { diff --git a/lib/refrepo/gen/wiki/generators/group_storage.rb b/lib/refrepo/gen/wiki/generators/group_storage.rb new file mode 100644 index 0000000000000000000000000000000000000000..9e6f9d6422cac7bae88a0f8db58ca8b9423c3e0d --- /dev/null +++ b/lib/refrepo/gen/wiki/generators/group_storage.rb @@ -0,0 +1,39 @@ +# coding: utf-8 + +class GroupStorageGenerator < WikiGenerator + + def initialize(page_name) + super(page_name) + end + + def generate_content + table_columns = ["Site", "Server Name", "Size", "Link Speed", "Notes"] + table_data = [] + global_hash = get_global_hash + + # Loop over Grid'5000 sites + global_hash["sites"].sort.to_h.each { |site_uid, site_hash| + site_hash.fetch("servers").sort.to_h.each_value { |server_hash| + next unless server_hash['group_storage'] + group_storage = server_hash['group_storage'] + table_data << [ + "[[#{site_uid.capitalize}:Hardware|#{site_uid.capitalize}]]", + "#{group_storage['name']}.#{site_uid}.grid5000.fr", + G5K.get_size(group_storage['size'], 'metric'), + G5K.get_rate(group_storage['rate']), + group_storage["comment"] || "" + ] + } + } + # Sort by site and server name + table_data.sort_by! { |row| + [row[0], row[1]] + } + + # Table construction + table_options = 'class="wikitable sortable" style="text-align: center;"' + @generated_content = MW.generate_table(table_options, table_columns, table_data) + @generated_content += MW.italic(MW.small(generated_date_string)) + @generated_content += MW::LINE_FEED + end +end diff --git a/lib/refrepo/valid/input/schemas/schema-site.yaml b/lib/refrepo/valid/input/schemas/schema-site.yaml index 3413ce21fa7d32b7c6e5d20fd4ded4e131698630..2cafc7c077fd6e216b33c6d639c774a0b257336a 100644 --- a/lib/refrepo/valid/input/schemas/schema-site.yaml +++ b/lib/refrepo/valid/input/schemas/schema-site.yaml @@ -31,6 +31,13 @@ servers: available: boolean resolution: optional_integer via: optional + group_storage: + <optional_hash>: + name: string + size: integer + rate: integer + comment: optional_string + name: string location: string web: string