diff --git a/README b/README index 7e403b7fb7348f4ed18eb8fe186118019debef76..5a3e3d84c7beabd9f50e2eef4fe61431ae8694ca 100755 --- a/README +++ b/README @@ -1,12 +1,18 @@ -# Synopsis -This repository contains the reference data of Grid5000. The raw data is located in the "data" directory. You may change or add files by hand, but you could also use a specific generator called "grid5000.rb", which is available in the "generators" directory. Given one or more input files that describe in Ruby the data you want to add, it will generate the raw json files, directories and hard links needed. +=== Synopsis === +This repository contains the reference data of Grid5000. The raw data is located in the "data" directory. You may change or add files by hand, but you could also use a specific generator called "grid5000.rb", which is available in the "generators" directory. Given one or more input files that describe (using the Ruby language) the data you want to add, it will generate the raw json files, directories and hard links needed. -# Getting started -Right now, the easiest way to get started is to look at some existing input files in the "generators/input" directory. There you can see how you define sites, clusters, nodes and environments programmatically. Then you can create or change an existing input file and run it in simulation mode (your changes won't be applied but you'll see what will be changed). +=== Getting started === +Right now, the easiest way to get started is to look at some existing input files in the "generators/input" directory. There you can see how you can define sites, clusters, nodes and environments programmatically. Then you can create a new file or change an existing one and run it in simulation mode: + $ ruby grid5000.rb input/*.rb -s +Your changes won't be applied but you'll see what would have been changed. Thus, the simulation mode is useful to review your changes before committing and check the ruby syntax of the input files. Run the "grid5000.rb" script (in /generators) without options ($ ruby grid5000.rb) to see how to use it. -After each modification to the repository, you should commit your changes with a meaningful message, so that people can easily track them. Your commits should also be site-specific, or even cluster-specific. Try to avoid putting a lot of changes in only one commit. +=== Apply your changes to the master repository === +After each modification to the repository, you should immediately commit your changes with a meaningful message, so that people can easily understand what has changed. Your commits should also be site-specific, or even cluster-specific to avoid merge conflicts. Try to avoid putting a lot of changes in only one commit. + +Since users will make queries such as: "give me the description of that site at this date", the time between the date of the commit and the effective replication of the changes to the APIs must be as low as possible. +That's why, right after your commit, you should push your changes to the remote master repository. Please not that commits whose committed date is older than 60 seconds will be rejected (please check that your system clock is correctly synchronized with a time server). Modifications are replicated every minute to the APIs. # Authors Cyril Rohr, cyril.rohr@irisa.fr \ No newline at end of file diff --git a/data/grid5000/services/authorization.json b/data/grid5000/services/authorization.json deleted file mode 100644 index 15657f050032ab40dec23c5a232dbe4d4a9c7999..0000000000000000000000000000000000000000 --- a/data/grid5000/services/authorization.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "contact": "cyril.rohr@irisa.fr", - "description": "Returns the access policy for a particular service accessed by a given user.", - "doc": "\/authorization\/doc", - "name": "Authorization", - "type": "service", - "uid": "authorization", - "uri": "\/authorization" -} \ No newline at end of file diff --git a/data/grid5000/services/jobsets.json b/data/grid5000/services/jobsets.json deleted file mode 100644 index 11c9a7668df8cd0b81d0f1f8b40b58590ff4ef59..0000000000000000000000000000000000000000 --- a/data/grid5000/services/jobsets.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "description": "Manages the creation\/deletion and update of job sets.", - "doc": "\/jobsets\/doc", - "name": "Jobsets", - "policies": { - "DELETE": { - "admin_groups": "CT", - "authorized_groups": "rennes,grenoble,bordeaux,toulouse,sophia,orsay,nancy,lille,lyon", - "user_must_be_owner": true - }, - "GET": { - "admin_groups": "CT", - "authorized_groups": "rennes,grenoble,bordeaux,toulouse,sophia,orsay,nancy,lille,lyon", - "user_must_be_owner": true - }, - "POST": { - "admin_groups": "CT", - "authorized_groups": "rennes,grenoble,bordeaux,toulouse,sophia,orsay,nancy,lille,lyon", - "user_must_be_owner": true - }, - "PUT": { - "admin_groups": "CT", - "authorized_groups": "rennes,grenoble,bordeaux,toulouse,sophia,orsay,nancy,lille,lyon", - "user_must_be_owner": true - } - }, - "type": "service", - "uid": "jobsets", - "uri": "\/jobsets" -} \ No newline at end of file diff --git a/data/grid5000/services/oar.json b/data/grid5000/services/oar.json deleted file mode 100644 index 289807107cdd8f40b9ed29be7e0c95940af607a9..0000000000000000000000000000000000000000 --- a/data/grid5000/services/oar.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "contact": "bruno.bzeznik@imag.fr", - "description": null, - "doc": null, - "name": "OAR", - "type": "service", - "uid": "oar", - "uri": "\/oar-site" -} \ No newline at end of file diff --git a/data/grid5000/services/statuses.json b/data/grid5000/services/statuses.json deleted file mode 100644 index 03c21bbba921881d4b8228d65be5592c168d35fc..0000000000000000000000000000000000000000 --- a/data/grid5000/services/statuses.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "contact": "cyril.rohr@irisa.fr", - "description": "Returns the status of a given resource.", - "doc": "\/statuses\/doc", - "name": "Statuses", - "type": "service", - "uid": "statuses", - "uri": "\/statuses" -} \ No newline at end of file diff --git a/data/grid5000/sites/grenoble/clusters/genepi/genepi.json b/data/grid5000/sites/grenoble/clusters/genepi/genepi.json index 3060e4c3de9746baab783362aa882157dd570075..d230a1da4cd1f80c17d3d0475b19b259b08eb075 100755 --- a/data/grid5000/sites/grenoble/clusters/genepi/genepi.json +++ b/data/grid5000/sites/grenoble/clusters/genepi/genepi.json @@ -1,5 +1,5 @@ { - "date_of_arrival": 1222812000, + "created_at": "Tue, 30 Sep 2008 22:00:00 GMT", "model": "Bull R422-E1", "type": "cluster", "uid": "genepi" diff --git a/data/grid5000/sites/lille/clusters/chicon/chicon.json b/data/grid5000/sites/lille/clusters/chicon/chicon.json index 1d09c3748547c264d5026e901607563d480351cc..dff2997f69f1a167b7a15240f3908a8187432e1b 100755 --- a/data/grid5000/sites/lille/clusters/chicon/chicon.json +++ b/data/grid5000/sites/lille/clusters/chicon/chicon.json @@ -1,5 +1,5 @@ { - "date_of_arrival": null, + "created_at": null, "model": "IBM eServer 326m", "type": "cluster", "uid": "chicon" diff --git a/data/grid5000/sites/lille/clusters/chinqchint/chinqchint.json b/data/grid5000/sites/lille/clusters/chinqchint/chinqchint.json index 1a18bef39023d7496d14f21107135604a5f29944..ab703590eb7ce45ae8763f49e42399911c89880f 100755 --- a/data/grid5000/sites/lille/clusters/chinqchint/chinqchint.json +++ b/data/grid5000/sites/lille/clusters/chinqchint/chinqchint.json @@ -1,5 +1,5 @@ { - "date_of_arrival": null, + "created_at": null, "model": "Altix Xe 310", "type": "cluster", "uid": "chinqchint" diff --git a/data/grid5000/sites/lille/clusters/chti/chti.json b/data/grid5000/sites/lille/clusters/chti/chti.json index 8dd74a81bf2fdcfa47779e725ac701654ac6af47..1a67caaf444083d370962226f2d4c53d2fa70ae5 100755 --- a/data/grid5000/sites/lille/clusters/chti/chti.json +++ b/data/grid5000/sites/lille/clusters/chti/chti.json @@ -1,5 +1,5 @@ { - "date_of_arrival": null, + "created_at": null, "model": "IBM eServer 326m", "type": "cluster", "uid": "chti" diff --git a/data/grid5000/sites/lille/clusters/chuque/chuque.json b/data/grid5000/sites/lille/clusters/chuque/chuque.json index 2620146bee73bc03d869f33c333bf6ca0e0c0417..e241d217eec13e56be221e0752b33645bce20c62 100755 --- a/data/grid5000/sites/lille/clusters/chuque/chuque.json +++ b/data/grid5000/sites/lille/clusters/chuque/chuque.json @@ -1,5 +1,5 @@ { - "date_of_arrival": null, + "created_at": null, "misc": "deployment unavailable because reboot instruments are not enough dependable.", "model": "IBM eServer 326", "type": "cluster", diff --git a/data/grid5000/sites/lyon/clusters/capricorne/capricorne.json b/data/grid5000/sites/lyon/clusters/capricorne/capricorne.json index 1f2ed95fd9c70dcf53f042f071a732b2ea8f3f4d..92c64d73de9598426936752b084786d4ca9e2d8d 100755 --- a/data/grid5000/sites/lyon/clusters/capricorne/capricorne.json +++ b/data/grid5000/sites/lyon/clusters/capricorne/capricorne.json @@ -1,5 +1,5 @@ { - "date_of_arrival": 1101902400, + "created_at": "Wed, 01 Dec 2004 12:00:00 GMT", "misc": "bios: 1.36 \/ bcm: 1.20.9 \/ bmc: 1.46", "model": "IBM eServer 325", "type": "cluster", diff --git a/data/grid5000/sites/lyon/clusters/sagittaire/sagittaire.json b/data/grid5000/sites/lyon/clusters/sagittaire/sagittaire.json index 114ecd918e399c4b9490e54b5f08c4d03db0ebc6..cd82c45d44973523aa276b0477d7e729c2a1a79b 100755 --- a/data/grid5000/sites/lyon/clusters/sagittaire/sagittaire.json +++ b/data/grid5000/sites/lyon/clusters/sagittaire/sagittaire.json @@ -1,5 +1,5 @@ { - "date_of_arrival": 1151755200, + "created_at": "Sat, 01 Jul 2006 12:00:00 GMT", "model": "Sun Fire V20z", "type": "cluster", "uid": "sagittaire" diff --git a/data/grid5000/sites/nancy/clusters/grelon/grelon.json b/data/grid5000/sites/nancy/clusters/grelon/grelon.json index 9bb89bd47adc596020727fc8bdbd92c4f8d4efeb..22a20160accdfded0c65a30a8111f74c5ae94d06 100755 --- a/data/grid5000/sites/nancy/clusters/grelon/grelon.json +++ b/data/grid5000/sites/nancy/clusters/grelon/grelon.json @@ -1,5 +1,5 @@ { - "date_of_arrival": 1172577600, + "created_at": "Tue, 27 Feb 2007 12:00:00 GMT", "model": "HP ProLiant DL140G3", "type": "cluster", "uid": "grelon" diff --git a/data/grid5000/sites/nancy/clusters/grillon/grillon.json b/data/grid5000/sites/nancy/clusters/grillon/grillon.json index 3a7a99fb55b9c400e923d68613e5a2841e1f6dcb..092eab9d56194c2eedeb8210032a348ddbc3e011 100755 --- a/data/grid5000/sites/nancy/clusters/grillon/grillon.json +++ b/data/grid5000/sites/nancy/clusters/grillon/grillon.json @@ -1,5 +1,5 @@ { - "date_of_arrival": 1130846400, + "created_at": "Tue, 01 Nov 2005 12:00:00 GMT", "model": "HP ProLiant DL145G2", "type": "cluster", "uid": "grillon" diff --git a/data/grid5000/sites/orsay/clusters/gdx/gdx.json b/data/grid5000/sites/orsay/clusters/gdx/gdx.json index 3ce6b2b7a33fcb26998cb0cd3a30486bdb04c025..f5f38f6d601218852b2cacd1e2faa2a1abf8cdbd 100755 --- a/data/grid5000/sites/orsay/clusters/gdx/gdx.json +++ b/data/grid5000/sites/orsay/clusters/gdx/gdx.json @@ -1,5 +1,5 @@ { - "date_of_arrival": null, + "created_at": null, "misc": "bios:1.28\/bcm:1.20.17\/bmc:1.10\/rsaII:1.00", "model": "IBM eServer 326m", "type": "cluster", diff --git a/data/grid5000/sites/orsay/clusters/netgdx/netgdx.json b/data/grid5000/sites/orsay/clusters/netgdx/netgdx.json index 703ec0a9ca144c134741e300c6cfa6a9c7a5b89d..465106f72dc65e9b32d5e445e825fa2a84929153 100755 --- a/data/grid5000/sites/orsay/clusters/netgdx/netgdx.json +++ b/data/grid5000/sites/orsay/clusters/netgdx/netgdx.json @@ -1,5 +1,5 @@ { - "date_of_arrival": null, + "created_at": null, "misc": "bios:1.28\/bcm:1.20.17\/bmc:1.10\/rsaII:1.00", "model": "IBM eServer 326m", "type": "cluster", diff --git a/data/grid5000/sites/rennes/clusters/paramount/paramount.json b/data/grid5000/sites/rennes/clusters/paramount/paramount.json index 5ed36e03d734a380f4e1dbc6f66862db7f3df400..3cbc5c2e21f2f9bc03a07dcfbfb3c8f3dafa14ed 100755 --- a/data/grid5000/sites/rennes/clusters/paramount/paramount.json +++ b/data/grid5000/sites/rennes/clusters/paramount/paramount.json @@ -1,5 +1,5 @@ { - "created_at": 1188597600, + "created_at": "Fri, 31 Aug 2007 22:00:00 GMT", "model": "Dell PowerEdge 1950", "type": "cluster", "uid": "paramount" diff --git a/data/grid5000/sites/rennes/clusters/paraquad/paraquad.json b/data/grid5000/sites/rennes/clusters/paraquad/paraquad.json index c16666644c641faf7e59b2e966299328dce24a28..b1147ca579dfaea8e6ff6553a8dedef7ed0f5c26 100755 --- a/data/grid5000/sites/rennes/clusters/paraquad/paraquad.json +++ b/data/grid5000/sites/rennes/clusters/paraquad/paraquad.json @@ -1,5 +1,5 @@ { - "created_at": 1164927600, + "created_at": "Thu, 30 Nov 2006 23:00:00 GMT", "model": "Dell PowerEdge 1950", "type": "cluster", "uid": "paraquad" diff --git a/data/grid5000/sites/sophia/clusters/azur/azur.json b/data/grid5000/sites/sophia/clusters/azur/azur.json index 99347e2fa99fe5f4525a38d788cee0349a0e3423..d529b043ad85c1c13c8733b73bb66fa8d64c4b19 100755 --- a/data/grid5000/sites/sophia/clusters/azur/azur.json +++ b/data/grid5000/sites/sophia/clusters/azur/azur.json @@ -1,5 +1,5 @@ { - "created_at": 1108681200, + "created_at": "Thu, 17 Feb 2005 23:00:00 GMT", "model": "IBM eServer 325", "type": "cluster", "uid": "azur" diff --git a/data/grid5000/sites/sophia/clusters/helios/helios.json b/data/grid5000/sites/sophia/clusters/helios/helios.json index eb03b2317307e4b41a96413399a99d797d432ee6..692bfa57c4900e78842e5050a0020fc230f532dc 100755 --- a/data/grid5000/sites/sophia/clusters/helios/helios.json +++ b/data/grid5000/sites/sophia/clusters/helios/helios.json @@ -1,5 +1,5 @@ { - "created_at": 1149199200, + "created_at": "Thu, 01 Jun 2006 22:00:00 GMT", "model": "Sun Fire X4100", "type": "cluster", "uid": "helios" diff --git a/data/grid5000/sites/sophia/clusters/sol/sol.json b/data/grid5000/sites/sophia/clusters/sol/sol.json index e55934c535b17cbe4f375c6de1cba230a0450f14..f7e56849f03804669dac9d4c6cb2e18e4c01455f 100755 --- a/data/grid5000/sites/sophia/clusters/sol/sol.json +++ b/data/grid5000/sites/sophia/clusters/sol/sol.json @@ -1,5 +1,5 @@ { - "created_at": 1172185200, + "created_at": "Thu, 22 Feb 2007 23:00:00 GMT", "model": "Sun Fire X2200 M2", "type": "cluster", "uid": "sol" diff --git a/generators/input/grenoble.rb b/generators/input/grenoble.rb index 26bcb3c9207b34fb5f680cd589e103b03abd160c..315aa72e7d3cf486a59a5870039ea9933d1c03f8 100755 --- a/generators/input/grenoble.rb +++ b/generators/input/grenoble.rb @@ -13,7 +13,7 @@ site :grenoble do cluster :genepi do model "Bull R422-E1" - date_of_arrival Time.parse("2008-10-01").to_i + created_at Time.parse("2008-10-01").httpdate 34.times do |i| node "genepi-#{i+1}" do diff --git a/generators/input/lille.rb b/generators/input/lille.rb index 69da2b97660a38b80b9c2ce228e23780415c3b1d..05c66179c84079274ae7a557c17fb6d47a33ea28 100755 --- a/generators/input/lille.rb +++ b/generators/input/lille.rb @@ -13,7 +13,7 @@ site :lille do cluster :chuque do model "IBM eServer 326" - date_of_arrival nil + created_at nil misc "deployment unavailable because reboot instruments are not enough dependable." 53.times do |i| node "chuque-#{i+1}" do @@ -55,7 +55,7 @@ site :lille do cluster :chti do model "IBM eServer 326m" - date_of_arrival nil + created_at nil 20.times do |i| node "chti-#{i+1}" do @@ -97,7 +97,7 @@ site :lille do cluster :chicon do model "IBM eServer 326m" - date_of_arrival nil + created_at nil 26.times do |i| node "chicon-#{i+1}" do architecture({ @@ -138,7 +138,7 @@ site :lille do cluster :chinqchint do model "Altix Xe 310" - date_of_arrival nil + created_at nil 46.times do |i| node "chinqchint-#{i+1}" do architecture({ diff --git a/generators/input/lyon.rb b/generators/input/lyon.rb index d4ce72a462cae22f75f64d9c2f18b67c50a713e5..ed2d50ef8996d4d3d9e1f4bc8ad217e38855542f 100755 --- a/generators/input/lyon.rb +++ b/generators/input/lyon.rb @@ -13,7 +13,7 @@ site :lyon do cluster :capricorne do model "IBM eServer 325" - date_of_arrival Time.parse("2004-12-01 12:00 GMT").to_i + created_at Time.parse("2004-12-01 12:00 GMT").httpdate misc "bios: 1.36 / bcm: 1.20.9 / bmc: 1.46" 56.times do |i| node "capricorne-#{i+1}" do @@ -56,7 +56,7 @@ site :lyon do cluster :sagittaire do model "Sun Fire V20z" - date_of_arrival Time.parse("2006-07-01 12:00 GMT").to_i + created_at Time.parse("2006-07-01 12:00 GMT").httpdate 79.times do |i| node "sagittaire-#{i+1}" do architecture({ diff --git a/generators/input/nancy.rb b/generators/input/nancy.rb index aa6822bb11fde715eee2493ac9031bcabc8c6523..2df8c556ed3b7b8fff5aaead42f0e59259f0028f 100755 --- a/generators/input/nancy.rb +++ b/generators/input/nancy.rb @@ -13,7 +13,7 @@ site :nancy do cluster :grillon do model "HP ProLiant DL145G2" - date_of_arrival Time.parse("2005-11-01 12:00 GMT").to_i + created_at Time.parse("2005-11-01 12:00 GMT").httpdate 47.times do |i| node "grillon-#{i+1}" do architecture({ @@ -55,7 +55,7 @@ site :nancy do cluster :grelon do model "HP ProLiant DL140G3" - date_of_arrival Time.parse("2007-02-27 12:00 GMT").to_i + created_at Time.parse("2007-02-27 12:00 GMT").httpdate 120.times do |i| node "grelon-#{i+1}" do architecture({ diff --git a/generators/input/orsay.rb b/generators/input/orsay.rb index 5b16a4daa47c29cc52ccb7591f02d6d726bccfca..579eef668afa2aa432f2e9cfe3c76111966bfe8d 100755 --- a/generators/input/orsay.rb +++ b/generators/input/orsay.rb @@ -13,7 +13,7 @@ site :orsay do cluster :netgdx do model "IBM eServer 326m" - date_of_arrival nil + created_at nil misc "bios:1.28/bcm:1.20.17/bmc:1.10/rsaII:1.00" 30.times do |i| node "netgdx-#{i+1}" do @@ -57,7 +57,7 @@ site :orsay do cluster :gdx do model "IBM eServer 326m" - date_of_arrival nil + created_at nil misc "bios:1.28/bcm:1.20.17/bmc:1.10/rsaII:1.00" (186+126).times do |i| diff --git a/generators/input/rennes.rb b/generators/input/rennes.rb index bd01f3d13b61af7fed1c20d3dc07a429df18b744..f31c147f88cf3d55b7cdd626d71ef670fe5e4ac2 100755 --- a/generators/input/rennes.rb +++ b/generators/input/rennes.rb @@ -58,7 +58,7 @@ site :rennes do cluster :paramount do model "Dell PowerEdge 1950" - created_at Time.parse("2007-09-01").to_i + created_at Time.parse("2007-09-01").httpdate 33.times do |i| node "paramount-#{i+1}" do architecture({ @@ -103,7 +103,7 @@ site :rennes do cluster(:paraquad) do model "Dell PowerEdge 1950" - created_at Time.parse("2006-12-01").to_i + created_at Time.parse("2006-12-01").httpdate 64.times do |i| node "paraquad-#{i+1}" do diff --git a/generators/input/services.rb b/generators/input/services.rb deleted file mode 100644 index ba6a45f222666012af64bdcb0d28a94da0d5ebd2..0000000000000000000000000000000000000000 --- a/generators/input/services.rb +++ /dev/null @@ -1,41 +0,0 @@ -# +policies+ is a hash describing the policies for authorizing or refusing access to a particular operation on a specific service: -# * the key is the name of the operation (in the case of REST APIs, the operation should be one of the HTTP methods); -# * the value is a hash that must contain: -# - a comma separated list of +authorized_groups+ ("*" if no restriction), -# - a +user_must_be_owner+ boolean indicating if the user requesting the resource must also own it and, -# - a comma separated list of +admin_groups+, who will be able to access the resource even if they do not own it. -# No +policies+ means that the authorization decision is delegated to the API receiving the request. -service :authorization do - name "Authorization" - description "Returns the access policy for a particular service accessed by a given user." - doc "/authorization/doc" - uri "/authorization" - contact "cyril.rohr@irisa.fr" -end - -service :jobsets do - name "Jobsets" - description "Manages the creation/deletion and update of job sets." - uri "/jobsets" - doc "/jobsets/doc" - policies( 'GET' => {:admin_groups => "CT", :authorized_groups => SITES.join(","), :user_must_be_owner => true}, - 'POST' => {:admin_groups => "CT", :authorized_groups => SITES.join(","), :user_must_be_owner => true}, - 'DELETE' => {:admin_groups => "CT", :authorized_groups => SITES.join(","), :user_must_be_owner => true}, - 'PUT' => {:admin_groups => "CT", :authorized_groups => SITES.join(","), :user_must_be_owner => true} ) -end - -service :statuses do - name "Statuses" - uri "/statuses" - doc "/statuses/doc" - contact "cyril.rohr@irisa.fr" - description "Returns the status of a given resource." -end - -service :oar do - name "OAR" - uri "/oar-site" - doc - contact "bruno.bzeznik@imag.fr" - description -end \ No newline at end of file diff --git a/generators/input/sophia.rb b/generators/input/sophia.rb index aae217109aef138365ceff7306edec6a9b4bd6bf..33aee7808c844afbdf5dc9c3652b00d276e2b790 100755 --- a/generators/input/sophia.rb +++ b/generators/input/sophia.rb @@ -15,7 +15,7 @@ site :sophia do cluster :azur do model "IBM eServer 325" - created_at Time.parse("2005-02-18").to_i + created_at Time.parse("2005-02-18").httpdate 72.times do |i| node "azur-#{i+1}" do architecture({ @@ -54,7 +54,7 @@ site :sophia do cluster :helios do model "Sun Fire X4100" - created_at Time.parse("2006-06-02").to_i + created_at Time.parse("2006-06-02").httpdate 56.times do |i| node "helios-#{i+1}" do architecture({ @@ -94,7 +94,7 @@ site :sophia do cluster :sol do model "Sun Fire X2200 M2" - created_at Time.parse("2007-02-23").to_i + created_at Time.parse("2007-02-23").httpdate 50.times do |i| node "sol-#{i+1}" do architecture({ @@ -135,47 +135,4 @@ site :sophia do end end end - # - # cluster :storage do - # model "Sun X4100" - # node "storage-1" do - # architecture({ - # :smp_size => 2, - # :smt_size => 2, - # :platform_type => "" - # }) - # processor({ - # :vendor => "AMD", - # :model => "AMD Opteron", - # :version => "275", - # :clock_speed => 2.2.giga, - # :instruction_set => "", - # :other_description => "", - # :cache_l1 => nil, - # :cache_l1i => nil, - # :cache_l1d => nil, - # :cache_l2 => nil - # }) - # main_memory({ - # :ram_size => 4.GB(true), # bytes - # :virtual_size => nil - # }) - # operating_system({ - # :name => nil, - # :release => nil, - # :version => nil - # }) - # storage_devices [ - # {:interface => 'SAS', :size => 73.GB(false), :rpm => 10_000, :raid => "1 'Mirroring'"}, - # {:interface => 'SATA II', :size => 2.TB(false), :raid => "5", :name => "Sun StorEdge 3511 FC Array"} - # ] - # network_adapters [ - # {:interface => 'Ethernet', :rate => 1.giga, :enabled => true, :vendor => "Intel", :version => "e1000"}, - # {:interface => 'Ethernet', :rate => 1.giga, :enabled => true, :vendor => "Intel", :version => "e1000"}, - # {:interface => 'Ethernet', :rate => 1.giga, :enabled => true, :vendor => "Intel", :version => "e1000"}, - # {:interface => 'Ethernet', :rate => 1.giga, :enabled => true, :vendor => "Intel", :version => "e1000"}, - # {:interface => 'Fibre Channel', :rate => 2.giga, :enabled => true, :vendor => "QLogic", :version => "QLA2342"} - # ] - # end - # end end \ No newline at end of file