earth 0.4.8 → 0.4.9
Sign up to get free protection for your applications and to get access to all the features.
- data/features/{data_center_company.feature → computation_carrier.feature} +5 -5
- data/features/computation_carrier_instance_class.feature +24 -0
- data/features/support/imports/{data_center_company_bad.csv → computation_carrier_bad.csv} +0 -0
- data/features/support/imports/{data_center_company_good.csv → computation_carrier_good.csv} +0 -0
- data/features/support/imports/computation_carrier_instance_class_bad.csv +2 -0
- data/features/support/imports/computation_carrier_instance_class_good.csv +2 -0
- data/lib/earth/computation.rb +3 -4
- data/lib/earth/computation/computation_carrier.rb +10 -0
- data/lib/earth/computation/computation_carrier/data_miner.rb +22 -0
- data/lib/earth/computation/computation_carrier_instance_class.rb +17 -0
- data/lib/earth/computation/computation_carrier_instance_class/data_miner.rb +37 -0
- data/lib/earth/computation/computation_carrier_region.rb +13 -0
- data/lib/earth/computation/computation_carrier_region/data_miner.rb +21 -0
- data/lib/earth/computation/data_miner.rb +3 -4
- data/lib/earth/locality/egrid_region.rb +2 -1
- data/lib/earth/locality/egrid_subregion.rb +2 -1
- data/lib/earth/version.rb +1 -1
- data/spec/earth/bus/bus_class_spec.rb +5 -3
- data/spec/earth_spec.rb +2 -2
- metadata +22 -36
- data/features/computation_platform.feature +0 -14
- data/features/server_type.feature +0 -34
- data/features/server_type_alias.feature +0 -14
- data/features/support/imports/computation_platform_bad.csv +0 -3
- data/features/support/imports/computation_platform_good.csv +0 -3
- data/features/support/imports/server_type_alias_bad.csv +0 -3
- data/features/support/imports/server_type_alias_good.csv +0 -3
- data/features/support/imports/server_type_bad.csv +0 -3
- data/features/support/imports/server_type_good.csv +0 -3
- data/lib/earth/computation/computation_platform.rb +0 -9
- data/lib/earth/computation/computation_platform/data_miner.rb +0 -24
- data/lib/earth/computation/data_center_company.rb +0 -7
- data/lib/earth/computation/data_center_company/data_miner.rb +0 -22
- data/lib/earth/computation/server_type.rb +0 -9
- data/lib/earth/computation/server_type/data_miner.rb +0 -49
- data/lib/earth/computation/server_type_alias.rb +0 -10
- data/lib/earth/computation/server_type_alias/data_miner.rb +0 -30
@@ -1,14 +1,14 @@
|
|
1
|
-
Feature: Data import for
|
1
|
+
Feature: Data import for ComputationCarrier
|
2
2
|
As a data user
|
3
|
-
I want to import
|
4
|
-
So that I can perform
|
3
|
+
I want to import ComputationCarrier data
|
4
|
+
So that I can perform computation carrier-based calculations
|
5
5
|
|
6
6
|
Scenario: Successfully verifying that power usage effectiveness >= 1.0
|
7
|
-
Given a "
|
7
|
+
Given a "ComputationCarrier" data import fetches results listed in "computation_carrier_good"
|
8
8
|
When a data import verifies "Power usage effectiveness should be one or more"
|
9
9
|
Then the verification should be successful
|
10
10
|
|
11
11
|
Scenario: Failing to verify that power usage effectiveness >= 1.0
|
12
|
-
Given a "
|
12
|
+
Given a "ComputationCarrier" data import fetches results listed in "computation_carrier_bad"
|
13
13
|
When a data import verifies "Power usage effectiveness should be one or more"
|
14
14
|
Then the verification should not be successful
|
@@ -0,0 +1,24 @@
|
|
1
|
+
Feature: Data import for ComputationCarrierInstanceClass
|
2
|
+
As a data user
|
3
|
+
I want to import ComputationCarrierInstanceClass data
|
4
|
+
So that I can perform computation carrier instance class-based calculations
|
5
|
+
|
6
|
+
Scenario: Successfully verifying that electricity intensity is more than zero
|
7
|
+
Given a "ComputationCarrierInstanceClass" data import fetches results listed in "computation_carrier_instance_class_good"
|
8
|
+
When a data import verifies "Electricity intensity should be more than zero"
|
9
|
+
Then the verification should be successful
|
10
|
+
|
11
|
+
Scenario: Successfully verifying that electricity intensity units are kilowatts
|
12
|
+
Given a "ComputationCarrierInstanceClass" data import fetches results listed in "computation_carrier_instance_class_good"
|
13
|
+
When a data import verifies "Electricity intensity units should be kilowatts"
|
14
|
+
Then the verification should be successful
|
15
|
+
|
16
|
+
Scenario: Failing to verify that electricity intensity is more than zero
|
17
|
+
Given a "ComputationCarrierInstanceClass" data import fetches results listed in "computation_carrier_instance_class_bad"
|
18
|
+
When a data import verifies "Electricity intensity should be more than zero"
|
19
|
+
Then the verification should not be successful
|
20
|
+
|
21
|
+
Scenario: Failing to verify that electricity intensity units are kilowatts
|
22
|
+
Given a "ComputationCarrierInstanceClass" data import fetches results listed in "computation_carrier_instance_class_bad"
|
23
|
+
When a data import verifies "Electricity intensity units should be kilowatts"
|
24
|
+
Then the verification should not be successful
|
File without changes
|
File without changes
|
data/lib/earth/computation.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'earth/computation/
|
2
|
-
require 'earth/computation/
|
3
|
-
require 'earth/computation/
|
4
|
-
require 'earth/computation/server_type_alias'
|
1
|
+
require 'earth/computation/computation_carrier'
|
2
|
+
require 'earth/computation/computation_carrier_region'
|
3
|
+
require 'earth/computation/computation_carrier_instance_class'
|
@@ -0,0 +1,10 @@
|
|
1
|
+
class ComputationCarrier < ActiveRecord::Base
|
2
|
+
set_primary_key :name
|
3
|
+
|
4
|
+
falls_back_on :name => 'fallback',
|
5
|
+
:power_usage_effectiveness => lambda { ComputationCarrier.maximum('power_usage_effectiveness') }
|
6
|
+
|
7
|
+
data_miner do
|
8
|
+
tap "Brighter Planet's computation carrier data", Earth.taps_server
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
ComputationCarrier.class_eval do
|
2
|
+
data_miner do
|
3
|
+
schema Earth.database_options do
|
4
|
+
string 'name'
|
5
|
+
float 'power_usage_effectiveness'
|
6
|
+
end
|
7
|
+
|
8
|
+
import "a list of computation carriers and their power usage effectiveness",
|
9
|
+
:url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdFlxZVZLai01WWJOOTFiaUd1blF6VkE&gid=0&output=csv' do
|
10
|
+
key 'name'
|
11
|
+
store 'power_usage_effectiveness'
|
12
|
+
end
|
13
|
+
|
14
|
+
verify "Power usage effectiveness should be one or more" do
|
15
|
+
ComputationCarrier.all.each do |carrier|
|
16
|
+
unless carrier.power_usage_effectiveness >= 1.0
|
17
|
+
raise "Invalid power usage effectiveness for ComputationCarrier #{carrier.name}: #{carrier.power_usage_effectiveness} (should be >= 1.0)"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class ComputationCarrierInstanceClass < ActiveRecord::Base
|
2
|
+
set_primary_key :name
|
3
|
+
|
4
|
+
belongs_to :computation_carrier, :foreign_key => 'computation_carrier_name'
|
5
|
+
|
6
|
+
falls_back_on :name => 'fallback',
|
7
|
+
:electricity_intensity => lambda { ComputationCarrierInstanceClass.find_by_name('Amazon m1.small').electricity_intensity },
|
8
|
+
:electricity_intensity_units => lambda { ComputationCarrierInstanceClass.find_by_name('Amazon m1.small').electricity_intensity_units }
|
9
|
+
|
10
|
+
data_miner do
|
11
|
+
tap "Brighter Planet's computation carrier instance class data", Earth.taps_server
|
12
|
+
|
13
|
+
process "Pull dependencies" do
|
14
|
+
run_data_miner_on_belongs_to_associations
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
ComputationCarrierInstanceClass.class_eval do
|
2
|
+
data_miner do
|
3
|
+
schema Earth.database_options do
|
4
|
+
string 'name'
|
5
|
+
string 'computation_carrier_name'
|
6
|
+
string 'instance_class'
|
7
|
+
float 'electricity_intensity'
|
8
|
+
string 'electricity_intensity_units'
|
9
|
+
end
|
10
|
+
|
11
|
+
import "a list of computation carrier instance classes and their characteristics",
|
12
|
+
:url => 'https://spreadsheets.google.com/pub?key=0AkCJNpm9Ks6JdGExaW1ic2c0d2s1ZmpzeUdOa2kyRlE&gid=0&output=csv' do
|
13
|
+
key 'name'
|
14
|
+
store 'computation_carrier_name'
|
15
|
+
store 'instance_class'
|
16
|
+
store 'electricity_intensity', :units_field_name => 'electricity_intensity_units'
|
17
|
+
end
|
18
|
+
|
19
|
+
# FIXME TODO verify that computation carrier name appears in computation_carriers
|
20
|
+
|
21
|
+
verify "Electricity intensity should be more than zero" do
|
22
|
+
ComputationCarrierInstanceClass.all.each do |instance_class|
|
23
|
+
unless instance_class.electricity_intensity > 0
|
24
|
+
raise "Invalid electricity intensity for ComputationCarrierInstanceClass #{instance_class.name}: #{instance_class.electricity_intensity} (should be > 0)"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
verify "Electricity intensity units should be kilowatts" do
|
30
|
+
ComputationCarrierInstanceClass.all.each do |instance_class|
|
31
|
+
unless instance_class.electricity_intensity_units == 'kilowatts'
|
32
|
+
raise "Invalid electricity intensity units for ComputationCarrierInstanceClass #{instance_class.name}: #{instance_class.electricity_intensity_units} (should be kilowatts)"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class ComputationCarrierRegion < ActiveRecord::Base
|
2
|
+
set_primary_key :name
|
3
|
+
|
4
|
+
belongs_to :egrid_subregion, :foreign_key => 'egrid_subregion_abbreviation'
|
5
|
+
|
6
|
+
data_miner do
|
7
|
+
tap "Brighter Planet's computation carrier region data", Earth.taps_server
|
8
|
+
|
9
|
+
process "Pull dependencies" do
|
10
|
+
run_data_miner_on_belongs_to_associations
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
ComputationCarrierRegion.class_eval do
|
2
|
+
data_miner do
|
3
|
+
schema Earth.database_options do
|
4
|
+
string 'name'
|
5
|
+
string 'computation_carrier_name'
|
6
|
+
string 'region'
|
7
|
+
string 'egrid_subregion_abbreviation'
|
8
|
+
end
|
9
|
+
|
10
|
+
import "a list of computation carrier regions",
|
11
|
+
:url => 'https://spreadsheets.google.com/pub?key=0AkCJNpm9Ks6JdGFEU1gtVzFPeS0tV1VnR05WZ2ZFUVE&gid=0&output=csv' do
|
12
|
+
key 'name'
|
13
|
+
store 'computation_carrier_name'
|
14
|
+
store 'region'
|
15
|
+
store 'egrid_subregion_abbreviation'
|
16
|
+
end
|
17
|
+
|
18
|
+
# FIXME TODO verify carrier_name appears in Carrier
|
19
|
+
# FIXME TODO verify egrid_subregion_abbreviation appears in EgridSubregion
|
20
|
+
end
|
21
|
+
end
|
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'earth/computation/
|
2
|
-
require 'earth/computation/
|
3
|
-
require 'earth/computation/
|
4
|
-
require 'earth/computation/server_type_alias/data_miner'
|
1
|
+
require 'earth/computation/computation_carrier/data_miner'
|
2
|
+
require 'earth/computation/computation_carrier_region/data_miner'
|
3
|
+
require 'earth/computation/computation_carrier_instance_class/data_miner'
|
@@ -12,5 +12,6 @@ class EgridRegion < ActiveRecord::Base
|
|
12
12
|
end
|
13
13
|
|
14
14
|
# FIXME TODO someday should calculate this from eGRID data: (USTNGN05 + USTNFI05 - USTCON05) / USTNGN05
|
15
|
-
falls_back_on :
|
15
|
+
falls_back_on :name => 'fallback',
|
16
|
+
:loss_factor => 0.061879 # calculated using above formula 2/21/2011
|
16
17
|
end
|
@@ -10,7 +10,8 @@ class EgridSubregion < ActiveRecord::Base
|
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
|
-
falls_back_on :
|
13
|
+
falls_back_on :name => 'fallback',
|
14
|
+
:egrid_region => lambda { EgridSubregion.fallback_egrid_region },
|
14
15
|
:electricity_co2_emission_factor => lambda { weighted_average(:electricity_co2_emission_factor, :weighted_by => :net_generation) },
|
15
16
|
:electricity_co2_emission_factor_units => 'kilograms_per_kilowatt_hour',
|
16
17
|
:electricity_co2_biogenic_emission_factor => lambda { weighted_average(:electricity_co2_biogenic_emission_factor, :weighted_by => :net_generation) },
|
data/lib/earth/version.rb
CHANGED
@@ -5,8 +5,10 @@ describe 'BusFuel' do
|
|
5
5
|
Earth.init :bus, :fuel, :apply_schemas => true
|
6
6
|
end
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
describe 'import', :slow => true do
|
9
|
+
it 'is related to fuels' do
|
10
|
+
BusFuel.run_data_miner!
|
11
|
+
BusFuel.last.fuel.should_not be_nil
|
12
|
+
end
|
11
13
|
end
|
12
14
|
end
|
data/spec/earth_spec.rb
CHANGED
@@ -23,7 +23,7 @@ describe Earth do
|
|
23
23
|
describe '.resources' do
|
24
24
|
it 'should get a list of resources' do
|
25
25
|
resources = Earth.resources
|
26
|
-
resources.keys.count.should ==
|
26
|
+
resources.keys.count.should == 75
|
27
27
|
resources['FuelType'][:domain].should == 'fuel'
|
28
28
|
end
|
29
29
|
it 'should exclude data_miner files' do
|
@@ -33,7 +33,7 @@ describe Earth do
|
|
33
33
|
|
34
34
|
describe '.resource_names' do
|
35
35
|
it 'should get a list of all resource names' do
|
36
|
-
Earth.resource_names.count.should ==
|
36
|
+
Earth.resource_names.count.should == 75
|
37
37
|
Earth.resource_names.should include('Aircraft')
|
38
38
|
Earth.resource_names.should include('Industry')
|
39
39
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 4
|
8
|
-
-
|
9
|
-
version: 0.4.
|
8
|
+
- 9
|
9
|
+
version: 0.4.9
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Seamus Abshere
|
@@ -249,16 +249,14 @@ files:
|
|
249
249
|
- features/bus_fuel.feature
|
250
250
|
- features/carrier.feature
|
251
251
|
- features/carrier_mode.feature
|
252
|
-
- features/
|
253
|
-
- features/
|
252
|
+
- features/computation_carrier.feature
|
253
|
+
- features/computation_carrier_instance_class.feature
|
254
254
|
- features/egrid_region.feature
|
255
255
|
- features/egrid_subregion.feature
|
256
256
|
- features/flight_segment.feature
|
257
257
|
- features/fuel_year.feature
|
258
258
|
- features/greenhouse_gas.feature
|
259
259
|
- features/rail_class.feature
|
260
|
-
- features/server_type.feature
|
261
|
-
- features/server_type_alias.feature
|
262
260
|
- features/shipment_mode.feature
|
263
261
|
- features/step_definitions/data_steps.rb
|
264
262
|
- features/support/env.rb
|
@@ -300,10 +298,10 @@ files:
|
|
300
298
|
- features/support/imports/carrier_good.csv
|
301
299
|
- features/support/imports/carrier_mode_bad.csv
|
302
300
|
- features/support/imports/carrier_mode_good.csv
|
303
|
-
- features/support/imports/
|
304
|
-
- features/support/imports/
|
305
|
-
- features/support/imports/
|
306
|
-
- features/support/imports/
|
301
|
+
- features/support/imports/computation_carrier_bad.csv
|
302
|
+
- features/support/imports/computation_carrier_good.csv
|
303
|
+
- features/support/imports/computation_carrier_instance_class_bad.csv
|
304
|
+
- features/support/imports/computation_carrier_instance_class_good.csv
|
307
305
|
- features/support/imports/egrid_region_bad.csv
|
308
306
|
- features/support/imports/egrid_region_good.csv
|
309
307
|
- features/support/imports/egrid_subregion_bad.csv
|
@@ -316,10 +314,6 @@ files:
|
|
316
314
|
- features/support/imports/greenhouse_gas_good.csv
|
317
315
|
- features/support/imports/rail_class_bad.csv
|
318
316
|
- features/support/imports/rail_class_good.csv
|
319
|
-
- features/support/imports/server_type_alias_bad.csv
|
320
|
-
- features/support/imports/server_type_alias_good.csv
|
321
|
-
- features/support/imports/server_type_bad.csv
|
322
|
-
- features/support/imports/server_type_good.csv
|
323
317
|
- features/support/imports/shipment_mode_bad.csv
|
324
318
|
- features/support/imports/shipment_mode_good.csv
|
325
319
|
- lib/earth.rb
|
@@ -389,15 +383,13 @@ files:
|
|
389
383
|
- lib/earth/bus/bus_fuel_year_control/data_miner.rb
|
390
384
|
- lib/earth/bus/data_miner.rb
|
391
385
|
- lib/earth/computation.rb
|
392
|
-
- lib/earth/computation/
|
393
|
-
- lib/earth/computation/
|
394
|
-
- lib/earth/computation/
|
395
|
-
- lib/earth/computation/
|
386
|
+
- lib/earth/computation/computation_carrier.rb
|
387
|
+
- lib/earth/computation/computation_carrier/data_miner.rb
|
388
|
+
- lib/earth/computation/computation_carrier_instance_class.rb
|
389
|
+
- lib/earth/computation/computation_carrier_instance_class/data_miner.rb
|
390
|
+
- lib/earth/computation/computation_carrier_region.rb
|
391
|
+
- lib/earth/computation/computation_carrier_region/data_miner.rb
|
396
392
|
- lib/earth/computation/data_miner.rb
|
397
|
-
- lib/earth/computation/server_type.rb
|
398
|
-
- lib/earth/computation/server_type/data_miner.rb
|
399
|
-
- lib/earth/computation/server_type_alias.rb
|
400
|
-
- lib/earth/computation/server_type_alias/data_miner.rb
|
401
393
|
- lib/earth/conversions_ext.rb
|
402
394
|
- lib/earth/data_miner.rb
|
403
395
|
- lib/earth/diet.rb
|
@@ -562,7 +554,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
562
554
|
requirements:
|
563
555
|
- - ">="
|
564
556
|
- !ruby/object:Gem::Version
|
565
|
-
hash: -
|
557
|
+
hash: -1989203883064114868
|
566
558
|
segments:
|
567
559
|
- 0
|
568
560
|
version: "0"
|
@@ -571,7 +563,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
571
563
|
requirements:
|
572
564
|
- - ">="
|
573
565
|
- !ruby/object:Gem::Version
|
574
|
-
hash: -
|
566
|
+
hash: -1989203883064114868
|
575
567
|
segments:
|
576
568
|
- 0
|
577
569
|
version: "0"
|
@@ -602,16 +594,14 @@ test_files:
|
|
602
594
|
- features/bus_fuel.feature
|
603
595
|
- features/carrier.feature
|
604
596
|
- features/carrier_mode.feature
|
605
|
-
- features/
|
606
|
-
- features/
|
597
|
+
- features/computation_carrier.feature
|
598
|
+
- features/computation_carrier_instance_class.feature
|
607
599
|
- features/egrid_region.feature
|
608
600
|
- features/egrid_subregion.feature
|
609
601
|
- features/flight_segment.feature
|
610
602
|
- features/fuel_year.feature
|
611
603
|
- features/greenhouse_gas.feature
|
612
604
|
- features/rail_class.feature
|
613
|
-
- features/server_type.feature
|
614
|
-
- features/server_type_alias.feature
|
615
605
|
- features/shipment_mode.feature
|
616
606
|
- features/step_definitions/data_steps.rb
|
617
607
|
- features/support/env.rb
|
@@ -653,10 +643,10 @@ test_files:
|
|
653
643
|
- features/support/imports/carrier_good.csv
|
654
644
|
- features/support/imports/carrier_mode_bad.csv
|
655
645
|
- features/support/imports/carrier_mode_good.csv
|
656
|
-
- features/support/imports/
|
657
|
-
- features/support/imports/
|
658
|
-
- features/support/imports/
|
659
|
-
- features/support/imports/
|
646
|
+
- features/support/imports/computation_carrier_bad.csv
|
647
|
+
- features/support/imports/computation_carrier_good.csv
|
648
|
+
- features/support/imports/computation_carrier_instance_class_bad.csv
|
649
|
+
- features/support/imports/computation_carrier_instance_class_good.csv
|
660
650
|
- features/support/imports/egrid_region_bad.csv
|
661
651
|
- features/support/imports/egrid_region_good.csv
|
662
652
|
- features/support/imports/egrid_subregion_bad.csv
|
@@ -669,10 +659,6 @@ test_files:
|
|
669
659
|
- features/support/imports/greenhouse_gas_good.csv
|
670
660
|
- features/support/imports/rail_class_bad.csv
|
671
661
|
- features/support/imports/rail_class_good.csv
|
672
|
-
- features/support/imports/server_type_alias_bad.csv
|
673
|
-
- features/support/imports/server_type_alias_good.csv
|
674
|
-
- features/support/imports/server_type_bad.csv
|
675
|
-
- features/support/imports/server_type_good.csv
|
676
662
|
- features/support/imports/shipment_mode_bad.csv
|
677
663
|
- features/support/imports/shipment_mode_good.csv
|
678
664
|
- spec/earth/air/aircraft_spec.rb
|
@@ -1,14 +0,0 @@
|
|
1
|
-
Feature: Data import for ComputationPlatform
|
2
|
-
As a data user
|
3
|
-
I want to import ComputationPlatform data
|
4
|
-
So that I can perform computation platform-based calculations
|
5
|
-
|
6
|
-
Scenario: Successfully verifying that data center company name is never missing
|
7
|
-
Given a "ComputationPlatform" data import fetches results listed in "computation_platform_good"
|
8
|
-
When a data import verifies "Data center company name should never be missing"
|
9
|
-
Then the verification should be successful
|
10
|
-
|
11
|
-
Scenario: Failing to verify that data center company name is never missing
|
12
|
-
Given a "ComputationPlatform" data import fetches results listed in "computation_platform_bad"
|
13
|
-
When a data import verifies "Data center company name should never be missing"
|
14
|
-
Then the verification should not be successful
|
@@ -1,34 +0,0 @@
|
|
1
|
-
Feature: Data import for ServerType
|
2
|
-
As a data user
|
3
|
-
I want to import ServerType data
|
4
|
-
So that I can perform server type-based calculations
|
5
|
-
|
6
|
-
Scenario: Successfully verifying that data center company name is never missing
|
7
|
-
Given a "ServerType" data import fetches results listed in "server_type_good"
|
8
|
-
When a data import verifies "Data center company name should never be missing"
|
9
|
-
Then the verification should be successful
|
10
|
-
|
11
|
-
Scenario: Successfully verifying that electricity draw is more than zero
|
12
|
-
Given a "ServerType" data import fetches results listed in "server_type_good"
|
13
|
-
When a data import verifies "Electricity draw should be more than zero"
|
14
|
-
Then the verification should be successful
|
15
|
-
|
16
|
-
Scenario: Successfully verifying that electricity draw units are kilowatts
|
17
|
-
Given a "ServerType" data import fetches results listed in "server_type_good"
|
18
|
-
When a data import verifies "Electricity draw units should be kilowatts"
|
19
|
-
Then the verification should be successful
|
20
|
-
|
21
|
-
Scenario: Failing to verify that data center company name is never missing
|
22
|
-
Given a "ServerType" data import fetches results listed in "server_type_bad"
|
23
|
-
When a data import verifies "Data center company name should never be missing"
|
24
|
-
Then the verification should not be successful
|
25
|
-
|
26
|
-
Scenario: Failing to verify that electricity draw is more than zero
|
27
|
-
Given a "ServerType" data import fetches results listed in "server_type_bad"
|
28
|
-
When a data import verifies "Electricity draw should be more than zero"
|
29
|
-
Then the verification should not be successful
|
30
|
-
|
31
|
-
Scenario: Failing to verify that electricity draw units are kilowatts
|
32
|
-
Given a "ServerType" data import fetches results listed in "server_type_bad"
|
33
|
-
When a data import verifies "Electricity draw units should be kilowatts"
|
34
|
-
Then the verification should not be successful
|
@@ -1,14 +0,0 @@
|
|
1
|
-
Feature: Data import for ServerTypeAlias
|
2
|
-
As a data user
|
3
|
-
I want to import ServerTypeAlias data
|
4
|
-
So that I can perform server type alias-based calculations
|
5
|
-
|
6
|
-
Scenario: Successfully verifying that server type name and platform name are never missing
|
7
|
-
Given a "ServerTypeAlias" data import fetches results listed in "server_type_alias_good"
|
8
|
-
When a data import verifies "Server type name and platform name should never be missing"
|
9
|
-
Then the verification should be successful
|
10
|
-
|
11
|
-
Scenario: Failing to verify that server type name and platform name are never missing
|
12
|
-
Given a "ServerTypeAlias" data import fetches results listed in "server_type_alias_bad"
|
13
|
-
When a data import verifies "Server type name and platform name should never be missing"
|
14
|
-
Then the verification should not be successful
|
@@ -1,24 +0,0 @@
|
|
1
|
-
ComputationPlatform.class_eval do
|
2
|
-
data_miner do
|
3
|
-
schema Earth.database_options do
|
4
|
-
string 'name'
|
5
|
-
string 'data_center_company_name'
|
6
|
-
end
|
7
|
-
|
8
|
-
import "a list of computation platforms and the data center company they use",
|
9
|
-
:url => 'https://spreadsheets.google.com/pub?key=0AkCJNpm9Ks6JdG5zVER5THhXRlE4N0RXTklVaS03Ymc&gid=0&gid=0&output=csv' do
|
10
|
-
key 'name'
|
11
|
-
store 'data_center_company_name'
|
12
|
-
end
|
13
|
-
|
14
|
-
verify "Data center company name should never be missing" do
|
15
|
-
ComputationPlatform.all.each do |platform|
|
16
|
-
unless platform.data_center_company_name.present?
|
17
|
-
raise "Invalid data center company name for DataCenterCompany #{platform.name}: #{platform.data_center_company_name}"
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
# FIXME TODO verify that all data center company names appear in data_center_companies
|
23
|
-
end
|
24
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
DataCenterCompany.class_eval do
|
2
|
-
data_miner do
|
3
|
-
schema Earth.database_options do
|
4
|
-
string 'name'
|
5
|
-
float 'power_usage_effectiveness'
|
6
|
-
end
|
7
|
-
|
8
|
-
import "a list of data center companies and their power usage effectiveness",
|
9
|
-
:url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdFlxZVZLai01WWJOOTFiaUd1blF6VkE&hl=en&gid=0&output=csv' do
|
10
|
-
key 'name'
|
11
|
-
store 'power_usage_effectiveness'
|
12
|
-
end
|
13
|
-
|
14
|
-
verify "Power usage effectiveness should be one or more" do
|
15
|
-
DataCenterCompany.all.each do |company|
|
16
|
-
unless company.power_usage_effectiveness >= 1.0
|
17
|
-
raise "Invalid power usage effectiveness for DataCenterCompany #{company.name}: #{company.power_usage_effectiveness} (should be >= 1.0)"
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,49 +0,0 @@
|
|
1
|
-
ServerType.class_eval do
|
2
|
-
data_miner do
|
3
|
-
schema Earth.database_options do
|
4
|
-
string 'name'
|
5
|
-
string 'data_center_company_name'
|
6
|
-
float 'cpu'
|
7
|
-
string 'cpu_units'
|
8
|
-
float 'memory'
|
9
|
-
string 'memory_units'
|
10
|
-
float 'electricity_draw'
|
11
|
-
string 'electricity_draw_units'
|
12
|
-
end
|
13
|
-
|
14
|
-
import "a list of server types and their characteristics",
|
15
|
-
:url => 'https://spreadsheets.google.com/pub?key=0AkCJNpm9Ks6JdGExaW1ic2c0d2s1ZmpzeUdOa2kyRlE&hl=en&gid=0&output=csv' do
|
16
|
-
key 'name'
|
17
|
-
store 'data_center_company_name'
|
18
|
-
store 'cpu', :units_field_name => 'cpu_units'
|
19
|
-
store 'memory', :units_field_name => 'memory_units'
|
20
|
-
store 'electricity_draw', :units_field_name => 'electricity_draw_units'
|
21
|
-
end
|
22
|
-
|
23
|
-
# FIXME TODO verify that data center company name appears in data_center_companies
|
24
|
-
|
25
|
-
verify "Data center company name should never be missing" do
|
26
|
-
ServerType.all.each do |server|
|
27
|
-
unless server.data_center_company_name.present?
|
28
|
-
raise "Invalid data center company name for ServerType #{server.name}: #{server.data_center_company_name}"
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
verify "Electricity draw should be more than zero" do
|
34
|
-
ServerType.all.each do |server|
|
35
|
-
unless server.electricity_draw > 0
|
36
|
-
raise "Invalid electricity draw for ServerType #{server.name}: #{server.electricity_draw} (should be > 0)"
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
verify "Electricity draw units should be kilowatts" do
|
42
|
-
ServerType.all.each do |server|
|
43
|
-
unless server.electricity_draw_units == 'kilowatts'
|
44
|
-
raise "Invalid electricity draw units for ServerType #{server.name}: #{server.electricity_draw_units} (should be kilowatts)"
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
@@ -1,10 +0,0 @@
|
|
1
|
-
class ServerTypeAlias < ActiveRecord::Base
|
2
|
-
set_primary_key :name
|
3
|
-
|
4
|
-
belongs_to :server_type, :foreign_key => 'server_type_name'
|
5
|
-
belongs_to :platform, :foreign_key => 'platform_name', :class_name => 'ComputationPlatform'
|
6
|
-
|
7
|
-
data_miner do
|
8
|
-
tap "Brighter Planet's server type data", Earth.taps_server
|
9
|
-
end
|
10
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
ServerTypeAlias.class_eval do
|
2
|
-
data_miner do
|
3
|
-
schema Earth.database_options do
|
4
|
-
string 'name'
|
5
|
-
string 'server_type_name'
|
6
|
-
string 'platform_name'
|
7
|
-
end
|
8
|
-
|
9
|
-
import "a list of server type aliases and their characteristics",
|
10
|
-
:url => 'https://spreadsheets.google.com/pub?key=0AkCJNpm9Ks6JdDdkVlBzSUYweFN0OHBreEN6YTdTZ3c&hl=en&gid=0&output=csv' do
|
11
|
-
key 'name', :field_name => 'alias'
|
12
|
-
store 'server_type_name'
|
13
|
-
store 'platform_name'
|
14
|
-
end
|
15
|
-
|
16
|
-
# FIXME TODO verify that server type name appears in server_types
|
17
|
-
# FIXME TODO verify that platform name appears in computation_platforms
|
18
|
-
|
19
|
-
verify "Server type name and platform name should never be missing" do
|
20
|
-
ServerTypeAlias.all.each do |server_alias|
|
21
|
-
[:server_type_name, :platform_name].each do |x|
|
22
|
-
test_item = server_alias.send(x)
|
23
|
-
unless test_item.present?
|
24
|
-
raise "Invalid #{x} for ServerTypeAlias #{server_alias.name}: #{test_item}"
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|