earth 0.4.8 → 0.4.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|