68176fc6c3f105e3b276c8d89a5b6135bb7c1d77
[aquarium] / src / main / resources / policy.scala
1 import gr.grnet.aquarium.charging.{OnceChargingBehavior, ContinuousChargingBehavior, OnOffChargingBehavior, DiscreteChargingBehavior}
2 import gr.grnet.aquarium.policy.{EffectiveUnitPrice, EffectivePriceTable, FullPriceTable, ResourceType, StdPolicy}
3 import gr.grnet.aquarium.Timespan
4
5 // Definition of our standard policy in plain Scala
6 // This will be dynamically interpreted during Aquarium startup
7
8 StdPolicy(
9     id = "policy-1",
10     parentID = None,
11
12     validityTimespan = Timespan(0),
13
14     resourceTypes = Set(
15       ResourceType("bandwidth", "MB/Hr", DiscreteChargingBehavior),
16       ResourceType("vmtime",    "Hr",    OnOffChargingBehavior),
17       ResourceType("diskspace", "MB/Hr", ContinuousChargingBehavior)
18     ),
19
20     chargingBehaviorClasses = Set(
21       DiscreteChargingBehavior.getClass.getName,
22       OnOffChargingBehavior.getClass.getName,
23       ContinuousChargingBehavior.getClass.getName,
24       OnceChargingBehavior.getClass.getName
25     ),
26
27     roleMapping = Map(
28       "default" -> FullPriceTable(Map(
29         "bandwidth" -> EffectivePriceTable(EffectiveUnitPrice(0.01, None) :: Nil),
30         "vmtime"    -> EffectivePriceTable(EffectiveUnitPrice(0.01, None) :: Nil),
31         "diskspace" -> EffectivePriceTable(EffectiveUnitPrice(0.01, None) :: Nil)
32       ))
33     )
34   )