Trivial fixes, toString implementation
Method to align a list of timeslots to another timeslot's boundaries
Merge remote-tracking branch 'origin/master'
Conflicts: src/main/scala/gr/grnet/aquarium/logic/accounting/Accounting.scala
Checked-out from 18.. branch in order to change algorithm
Add bandwidth simulator
Enhance contextual logger and show sample output
Fix method name in date calculator
Start computing wallet entries
Remove @inline annotations because of warnings
Introduce cost policy vars
These are the variables needed by each cost policy in order to do thecredit charge calculations. Normally, they are used by the algorithmsthat do the actual calculations.
WIP on wallet entries.
Constructing a proper value map depending on the cost policy.
Fix name for policy sotre
Merge branch '1852_billing_period_calc'
Inline a couple of utility methods
Ignoring non-billable events
Fix and augment logger
Special data structure for implicit OFF events
Cleanup resource event
Add map-related utility methods
Adjust logging output
Oh, I like contextual loggers.
Really handy when debugging.
Fix a bug in date fortmatting
Termination condition for billing month calculation
Augment date calculator
Rework data snapshots. Add one more to user state
Start the real deal
Don't attempt to clean up when not using mongo for testing
Better implementation of the no gaps test
Rewrite policy file to trigger reparse in test
Method to check whether a (sorted) list of timeslots contains gaps
Just reload policies from the store, instead of attempting to reconstruct state
New method for retrieving a policy by its id
Support for setting a custom configurator for unit testing
Absolute before/after methods
Read configuration values from the cmd-line
Switch to using Long.MaxValue to denote open timeframes
Don't use -1 in the to field to denote open timeframesas it requires special treatment in various places andis semantically ambiguous.
Use in memory store by default for tests
Pruning stuff from user state
Factoring out common code
Various test enhancements
-Support for selecting the store implementation at test runtime-Get raw values for test configuration items-Test for policy load/store
Construct and return a policy entry
Conform to the specification, return results sorted
Add some debugging beautification
Make UID generators for simulations more flexible
Better implement one query on resource event store
Add minute calculations to date calculator
Add time calculation helper to resource event
Minor api addition to date calc (+scaladocs)
Use copy() for mutable date calcs
Better names for mutable date calc methods
Fix a bug with mutable state.
Although DateCalculator is mutable, I was using it as an immutable.
Shut up a few compiler warnings
Enriching the test case
Add support for custom date formats in DateCalculator
Augment and use resources map functionality
Introduce a handy map of resources
Use basic rc context for policy loading.
Also try to refactor a bit in order to handle a few bugs (wip).
Factor out basic resource context
Add more simulation methods and enrich the test case
Cannot load the policy file from the test env though...
Retrieve a beautiful resource event value representation
Add a simulations package
This will be handy when creating test cases for the new billing code.
MemStore is a provider of itself
For simplicity, obviously.
Merge branch 'master' into 1852_billing_period_calc
Rename the mem store
Override configurator's store provider
It is better to use this new method before asking for anything from theconfigurator.
E.g.
val mc = Configurator.MasterConfigurator.withStoreProviderClass(classOf[MemStoreProvider])
Conflicts: src/main/scala/gr/grnet/aquarium/user/UserDataSnapshot.scala src/main/scala/gr/grnet/aquarium/user/UserStateComputations.scala src/main/scala/gr/grnet/aquarium/user/actor/UserActor.scala
Implement mem-based resource event store
A few changes so that everything compiles
In memory store for tests, change property files search to /etc/aquarium
Implementation of the UserEventStore interface in the in memory store
Implement mem-based wallet store
Implementation of the policy store interface
Empty implementations for all store interefaces
Mostly atomic update of policies, Docs++
Fix code assuming that a list always has a tail
Calculating resource instance amounts
Update available policies when on configuration file update
Wrapper for stored DSLPolicy YAML dumps
License headers
Logic to load/store policies from Policy store
Conflicts: src/main/scala/gr/grnet/aquarium/user/UserDataSnapshot.scala
[Does not compile] Clearing up some misunderstanding with amounts
User agreement history in user store
API methods for policies
Implement custom Policy entry and policy storage ops
COntinue with billing code and start cleaning up user actor
Fix failing tests after merge
Conflicts: src/main/scala/gr/grnet/aquarium/logic/accounting/dsl/DSL.scala src/main/scala/gr/grnet/aquarium/logic/accounting/dsl/DSLAgreement.scala src/main/scala/gr/grnet/aquarium/logic/accounting/dsl/DSLCostPolicy.scala...
Fix all serialization to YAML issues
Work in progress... Still in flux
toMap() method for remaining DSL classes.
Also, immutable map generation for all classes
Method to parse YAML from a String
One fact in one place commit
Basic support for serializing policies to YAML
Prune unused functionality.