Christos KK Loverdos [Thu, 2 Feb 2012 14:39:54 +0000 (16:39 +0200)]
Add a simulations package
This will be handy when creating test cases for the new billing code.
Christos KK Loverdos [Thu, 2 Feb 2012 14:39:20 +0000 (16:39 +0200)]
MemStore is a provider of itself
For simplicity, obviously.
Christos KK Loverdos [Wed, 1 Feb 2012 15:21:03 +0000 (17:21 +0200)]
Merge branch 'master' into 1852_billing_period_calc
Christos KK Loverdos [Wed, 1 Feb 2012 15:20:35 +0000 (17:20 +0200)]
Rename the mem store
Christos KK Loverdos [Tue, 31 Jan 2012 15:50:24 +0000 (17:50 +0200)]
Override configurator's store provider
It is better to use this new method before asking for anything from the
configurator.
E.g.
val mc = Configurator.MasterConfigurator.withStoreProviderClass(classOf[MemStoreProvider])
Christos KK Loverdos [Tue, 31 Jan 2012 14:39:03 +0000 (16:39 +0200)]
Merge branch 'master' into 1852_billing_period_calc
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
Christos KK Loverdos [Tue, 31 Jan 2012 14:26:02 +0000 (16:26 +0200)]
Implement mem-based resource event store
Christos KK Loverdos [Tue, 31 Jan 2012 14:25:37 +0000 (16:25 +0200)]
A few changes so that everything compiles
Georgios Gousios [Tue, 31 Jan 2012 14:19:05 +0000 (16:19 +0200)]
In memory store for tests, change property files search to /etc/aquarium
Georgios Gousios [Tue, 31 Jan 2012 14:05:44 +0000 (16:05 +0200)]
Implementation of the UserEventStore interface in the in memory store
Christos KK Loverdos [Tue, 31 Jan 2012 13:56:34 +0000 (15:56 +0200)]
Implement mem-based wallet store
Georgios Gousios [Tue, 31 Jan 2012 13:38:12 +0000 (15:38 +0200)]
Implementation of the policy store interface
Georgios Gousios [Tue, 31 Jan 2012 13:13:49 +0000 (15:13 +0200)]
Empty implementations for all store interefaces
Georgios Gousios [Tue, 31 Jan 2012 12:55:54 +0000 (14:55 +0200)]
Mostly atomic update of policies, Docs++
Georgios Gousios [Tue, 31 Jan 2012 12:55:20 +0000 (14:55 +0200)]
Fix code assuming that a list always has a tail
Christos KK Loverdos [Tue, 31 Jan 2012 12:55:13 +0000 (14:55 +0200)]
Calculating resource instance amounts
Christos KK Loverdos [Tue, 31 Jan 2012 11:59:04 +0000 (13:59 +0200)]
Merge branch 'master' into 1852_billing_period_calc
Georgios Gousios [Tue, 31 Jan 2012 11:13:36 +0000 (13:13 +0200)]
Update available policies when on configuration file update
Georgios Gousios [Tue, 31 Jan 2012 11:10:38 +0000 (13:10 +0200)]
Wrapper for stored DSLPolicy YAML dumps
Georgios Gousios [Tue, 31 Jan 2012 11:09:21 +0000 (13:09 +0200)]
License headers
Georgios Gousios [Mon, 30 Jan 2012 15:42:57 +0000 (17:42 +0200)]
Logic to load/store policies from Policy store
Christos KK Loverdos [Mon, 30 Jan 2012 15:24:57 +0000 (17:24 +0200)]
Merge branch 'master' into 1852_billing_period_calc
Conflicts:
src/main/scala/gr/grnet/aquarium/user/UserDataSnapshot.scala
Christos KK Loverdos [Mon, 30 Jan 2012 15:17:53 +0000 (17:17 +0200)]
[Does not compile] Clearing up some misunderstanding with amounts
Georgios Gousios [Mon, 30 Jan 2012 14:56:32 +0000 (16:56 +0200)]
User agreement history in user store
Christos KK Loverdos [Mon, 30 Jan 2012 13:36:33 +0000 (15:36 +0200)]
Merge branch 'master' into 1852_billing_period_calc
Georgios Gousios [Mon, 30 Jan 2012 13:33:31 +0000 (15:33 +0200)]
API methods for policies
Georgios Gousios [Mon, 30 Jan 2012 13:27:07 +0000 (15:27 +0200)]
Implement custom Policy entry and policy storage ops
Christos KK Loverdos [Mon, 30 Jan 2012 13:25:21 +0000 (15:25 +0200)]
Merge branch 'master' into 1852_billing_period_calc
Christos KK Loverdos [Mon, 30 Jan 2012 13:21:52 +0000 (15:21 +0200)]
COntinue with billing code and start cleaning up user actor
Georgios Gousios [Mon, 30 Jan 2012 12:21:00 +0000 (14:21 +0200)]
Fix failing tests after merge
Georgios Gousios [Mon, 30 Jan 2012 10:42:51 +0000 (12:42 +0200)]
Merge branch '1852_billing_period_calc'
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
src/main/scala/gr/grnet/aquarium/logic/accounting/dsl/DSLCreditPlan.scala
src/main/scala/gr/grnet/aquarium/logic/accounting/dsl/DSLPriceList.scala
src/main/scala/gr/grnet/aquarium/logic/accounting/dsl/DSLResource.scala
src/main/scala/gr/grnet/aquarium/store/mongodb/MongoDBStore.scala
Georgios Gousios [Mon, 30 Jan 2012 10:15:11 +0000 (12:15 +0200)]
Fix all serialization to YAML issues
Christos KK Loverdos [Fri, 27 Jan 2012 16:35:04 +0000 (18:35 +0200)]
Work in progress... Still in flux
Georgios Gousios [Fri, 27 Jan 2012 15:28:53 +0000 (17:28 +0200)]
toMap() method for remaining DSL classes.
Also, immutable map generation for all classes
Georgios Gousios [Fri, 27 Jan 2012 15:27:35 +0000 (17:27 +0200)]
Method to parse YAML from a String
Georgios Gousios [Fri, 27 Jan 2012 13:00:51 +0000 (15:00 +0200)]
One fact in one place commit
Christos KK Loverdos [Fri, 27 Jan 2012 12:38:52 +0000 (14:38 +0200)]
Upgrade Akka to 1.3 and refactor SBT build file
Georgios Gousios [Fri, 27 Jan 2012 10:55:25 +0000 (12:55 +0200)]
Basic support for serializing policies to YAML
Christos KK Loverdos [Thu, 26 Jan 2012 14:56:15 +0000 (16:56 +0200)]
Prune unused functionality.
Christos KK Loverdos [Thu, 26 Jan 2012 14:52:03 +0000 (16:52 +0200)]
Some new billing stuff.
Also using doubles everywhere instead of floats
Christos KK Loverdos [Tue, 24 Jan 2012 09:46:26 +0000 (11:46 +0200)]
Add some dependencies stuff
Christos KK Loverdos [Fri, 20 Jan 2012 13:08:20 +0000 (15:08 +0200)]
Do some pom.xml micromanagement
Georgios Gousios [Thu, 19 Jan 2012 16:26:38 +0000 (18:26 +0200)]
Support policy retrieval for a date
Georgios Gousios [Thu, 19 Jan 2012 16:26:10 +0000 (18:26 +0200)]
Policy store operations
Georgios Gousios [Thu, 19 Jan 2012 16:24:38 +0000 (18:24 +0200)]
Json support
Christos KK Loverdos [Tue, 17 Jan 2012 14:37:36 +0000 (16:37 +0200)]
Stylistic change
Christos KK Loverdos [Tue, 17 Jan 2012 14:34:56 +0000 (16:34 +0200)]
Cleanup some code before the coming changes
Christos KK Loverdos [Tue, 17 Jan 2012 14:24:22 +0000 (16:24 +0200)]
Avoid a compilation warning (-deprecation)
Christos KK Loverdos [Tue, 17 Jan 2012 13:45:22 +0000 (15:45 +0200)]
Doc cleanup in user actor
Christos KK Loverdos [Tue, 17 Jan 2012 13:44:43 +0000 (15:44 +0200)]
Gather billing computations in one file
Christos KK Loverdos [Tue, 17 Jan 2012 13:24:45 +0000 (15:24 +0200)]
Use receivedMillis for queries
Since Aquarium is the billing master, a billing period is defined in billing time.
So we use receivedMillis (aquarium time) and not occurredMillis (the event occurrence time).
This way we can easily make bills for past events and do not care when they will actually arrive.
Christos KK Loverdos [Tue, 17 Jan 2012 13:18:54 +0000 (15:18 +0200)]
Use wallet-specific json field names
Christos KK Loverdos [Tue, 17 Jan 2012 13:13:55 +0000 (15:13 +0200)]
Do some effectful composition instead of try/catch
Christos KK Loverdos [Mon, 16 Jan 2012 16:12:58 +0000 (18:12 +0200)]
WIP #1852 Periodic billing calculation
Christos KK Loverdos [Mon, 16 Jan 2012 15:45:33 +0000 (17:45 +0200)]
Change equals to ==
Christos KK Loverdos [Mon, 16 Jan 2012 14:10:06 +0000 (16:10 +0200)]
[maven-release-plugin] prepare for next development iteration
Christos KK Loverdos [Mon, 16 Jan 2012 14:10:05 +0000 (16:10 +0200)]
[maven-release-plugin] prepare release aquarium-0.1
Christos KK Loverdos [Mon, 16 Jan 2012 13:59:55 +0000 (15:59 +0200)]
Hack to make a release.
We need spray 0.9.2 release for this
Christos KK Loverdos [Mon, 16 Jan 2012 13:04:17 +0000 (15:04 +0200)]
Merge stuff from benchmark branch
Georgios Gousios [Mon, 16 Jan 2012 10:19:05 +0000 (12:19 +0200)]
Submitted version
Christos KK Loverdos [Mon, 16 Jan 2012 09:12:49 +0000 (11:12 +0200)]
Editing...
Georgios Gousios [Mon, 16 Jan 2012 09:36:44 +0000 (11:36 +0200)]
Review changes round 1
Christos KK Loverdos [Mon, 16 Jan 2012 01:30:55 +0000 (03:30 +0200)]
Charging formulas, state change, sporadic micro-editing
Georgios Gousios [Sun, 15 Jan 2012 21:34:13 +0000 (23:34 +0200)]
Conclusions
Georgios Gousios [Sun, 15 Jan 2012 21:27:20 +0000 (23:27 +0200)]
Related work
Georgios Gousios [Sun, 15 Jan 2012 19:21:52 +0000 (21:21 +0200)]
Introduction
Georgios Gousios [Sun, 15 Jan 2012 16:41:12 +0000 (18:41 +0200)]
Performance
Georgios Gousios [Sun, 15 Jan 2012 15:01:51 +0000 (17:01 +0200)]
A bit about performance
Georgios Gousios [Sat, 14 Jan 2012 15:53:59 +0000 (17:53 +0200)]
Architecture diagram
Georgios Gousios [Sat, 14 Jan 2012 15:05:16 +0000 (17:05 +0200)]
Finish architecture
Georgios Gousios [Fri, 13 Jan 2012 12:29:14 +0000 (14:29 +0200)]
Script to generate rate limited (msg/sec) load
Christos KK Loverdos [Sat, 14 Jan 2012 14:08:03 +0000 (16:08 +0200)]
Continuation of T/dT, U/dU reasoning
Christos KK Loverdos [Fri, 13 Jan 2012 16:45:51 +0000 (18:45 +0200)]
Describing charging dimensions
Christos KK Loverdos [Fri, 13 Jan 2012 14:55:51 +0000 (16:55 +0200)]
Rename Billing to Computational aspects and move after Architecture
Christos KK Loverdos [Fri, 13 Jan 2012 14:53:35 +0000 (16:53 +0200)]
Finishing (for now) the description of events
Christos KK Loverdos [Fri, 13 Jan 2012 14:15:16 +0000 (16:15 +0200)]
Add events modeling.
AquariumEvent and ResourceEvent.
Christos KK Loverdos [Fri, 13 Jan 2012 13:26:56 +0000 (15:26 +0200)]
Start describing events
Christos KK Loverdos [Fri, 13 Jan 2012 12:50:03 +0000 (14:50 +0200)]
Slight reorg (Implementation -> Domain Modeling).
1. Added terminology
2. Moved stuff from the DSL description to the basic terminology
3. Started using term `charging` instead of `billing`
Georgios Gousios [Fri, 13 Jan 2012 07:13:48 +0000 (09:13 +0200)]
More on architecture
Georgios Gousios [Thu, 12 Jan 2012 18:36:01 +0000 (20:36 +0200)]
Initial architecture blurb
Christos KK Loverdos [Thu, 12 Jan 2012 15:32:38 +0000 (17:32 +0200)]
Start describing billing-related stuff.
Georgios Gousios [Thu, 12 Jan 2012 13:57:45 +0000 (15:57 +0200)]
Split arhitecture in another file to avoid conflicts
Georgios Gousios [Thu, 12 Jan 2012 11:38:08 +0000 (13:38 +0200)]
Alternative way to calculate state, with entry points commented out
Georgios Gousios [Thu, 12 Jan 2012 11:37:38 +0000 (13:37 +0200)]
Query to retrieve all events that comprise the history of an event
Georgios Gousios [Thu, 12 Jan 2012 10:42:20 +0000 (12:42 +0200)]
Names for event store fields
Georgios Gousios [Thu, 12 Jan 2012 10:41:36 +0000 (12:41 +0200)]
Configurable number of users to init (up to 1000)
Georgios Gousios [Thu, 12 Jan 2012 10:41:11 +0000 (12:41 +0200)]
Don't remove all mongo records after test run :-)
Georgios Gousios [Thu, 12 Jan 2012 10:40:45 +0000 (12:40 +0200)]
Log verbosity--
Georgios Gousios [Thu, 12 Jan 2012 10:40:26 +0000 (12:40 +0200)]
Parametrise number of actors to spawn, more threads for reading from store
Georgios Gousios [Wed, 11 Jan 2012 20:06:25 +0000 (22:06 +0200)]
Events are now replayed correctly
Georgios Gousios [Wed, 11 Jan 2012 20:05:23 +0000 (22:05 +0200)]
The correct name of the field is occuredMillis
Georgios Gousios [Wed, 11 Jan 2012 17:05:14 +0000 (19:05 +0200)]
Compilation fixes
Georgios Gousios [Wed, 11 Jan 2012 17:01:35 +0000 (19:01 +0200)]
Support for replaying event logs to construct the user runtime state
Georgios Gousios [Wed, 11 Jan 2012 12:47:41 +0000 (14:47 +0200)]
Properly shutdown user actors on Aquarium shutdown
Georgios Gousios [Wed, 11 Jan 2012 12:46:59 +0000 (14:46 +0200)]
Save user state on shutdown
Georgios Gousios [Wed, 11 Jan 2012 12:46:32 +0000 (14:46 +0200)]
Method to delete user state from store
Georgios Gousios [Wed, 11 Jan 2012 09:44:12 +0000 (11:44 +0200)]
Take care of first time state changes
Christos KK Loverdos [Tue, 10 Jan 2012 23:44:47 +0000 (01:44 +0200)]
WIP on the algos documentation camp
Christos KK Loverdos [Tue, 10 Jan 2012 23:44:23 +0000 (01:44 +0200)]
Simplify resources snapshot to make our lives easier with the lift-json library.
After a few failed attempts with lift-json, I sacrifice the Map for a List.
Christos KK Loverdos [Tue, 10 Jan 2012 23:40:27 +0000 (01:40 +0200)]
Give the option of pretty or non-pretty json printing