Method to delete user state from store
Take care of first time state changes
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.
WIP on the algos documentation camp
Give the option of pretty or non-pretty json printing
Store the last update timestamp per resource and instance id
This code has some errors with JSON serialization
Add a few helper methods to resource event
Super documenter. Work in progress.
An attempt is being made to work the algorithms in plain prose.Hopefully, this will help everyone get a better understanding of thecomplexities involved and of the quite interesting problem domain.
As I said, this is Work in Progress...
Don't store the whole agreement to the user state
Store a reference by name instead.
Case objects instead of objects for cost policy definitions
The log string has 2 args, not 3
Use the list of resources defined in the policy
Store the newly created user actor in the LRU cache
Do not use default global value parameter and take advantage of pattern case class matching
Augment DSLCostPolicy with utility methods
Refactor getInstanceId to not rely on global variables
Equality is always a possibility
Catch a message that is sent anyway
Consistent `Id` naming (II)
Forgot these cases when I refactored for the previosu commit.
Consistent `Id` naming
Style: do not use return
Fix a couple of compilation warnings.
We still get the `head` though (via next), so the semantics are similar.
WIP on user get balance request.
Puting everything in line with the rest of the system implementation.
Find previous wallet entries for this event
Names for fields in the Json representation of the msg
Spice up WalletEntries with resource and instance info
Eliminate pattern matching since I am not doing anything with the specific cases
Small refactoring to ensure user state
Fill in and use UserState snapshots from DB.
Add documentation for store-related collections, give better names and fix a couple of bugs
Take into account active snapshot for timestamp computations
Use DEBUG shortcuts
Handle UserEvent in UserActor
Small doc addition for UserEvent
Remove unused subclasses of UserDataSnapshot
Collection renaming a bug fix in UserState query
Make UserState roles immutable
Add a few queries to UserEvent
Forward UserState events to dispatcher
Calculate hours, not minutes
More precise error message
More tests => several errors fixed
Generify EventProcessorService to avoid too many casts
Use UserDataSnapshotException
Refactor user state change code
Accounting changes, too many to commit individually:
-Make the resource state store hold values in a uniform format for complex and simple resources-Make the resource state retrieval method simpler and also containall resource state storage conventions into it....
Remove wrong test
Convert a timeslot to its duration in hours
States for discrete cost policy events
Stricted definitions and explantations for cost policies
Remove the resource state API, start using the new accounting code
Purify the accounting code
-All required resource state passed as params-Charge chunks exposed as top level entity
Support for user configurable accounting policy locations
Make the number of MongoDB connections a configurable property
Various performance related changes
-Start lots of actors by default, to compensate for slow I/O-Start a fair amount of threads by default-More detailed logging-Don't create a new dispatcher per request
Create a new connection per store request
This is to take advantage of the Mongo driver connection pool
Implement the remaining bits of the user event processor service
Implement the user event store
Make the load balancing managers regular objects. Docs++
First attempt to make the resource processor service abstract
Helper method to immutably set the receive timestamp
Forward messages to the dispatcher after ACK
Change update style to use copy on immutable data
Correct documentation
Merge with my changes for user state handling.
I have also recreated ResourceNames and ResourceType (why were theydeleted?), as they are crucial for the polymorphic user state calculationand the resource event type and name specifications.
User state is updated immutably everywhere and every resource type...
Calculate user state from resource events (wip).
Messages and API for accessing resource state per actor
Validate presence of descriminator field in complex resource events
Resource names should only be specified in the DSL
Add DSL field to describe different instances for complex resources
More consistent naming for resource(type)s
Codify resource event types.
These must be constant across the whole platform.
Fix compilation error
Document xml support
Document json support
Consolidating timestamps.
I believe aqTimestamp was semantically the same as receivedMillis.This value will be properly provided and it should not be a var anyway.
Add one more timestamp to resource event that denotes the reception time.
Refactor to accomodate MasterConf rename
Rename the store to better reflect the domain objects
Rename master conf
Refactor MongoDB quering to reusable methods
Rename wallet store methods
More MongoDB query refactoring
Rename MongoDB collection to comply with the RabbitMQ key name
Rename event store to catch semantics better
Fix fromJson and delegate to JsonHelpers
Make vmId a symbolic name to avoid lurking strings
Add min,max time calculations for user state
Capture timestamp semantics with a better name.
Use an immutable collection for source event IDs
Fix small typo and do another round of akka version upgrade.
It is akka.conf in test/ this time.
Initial implementation of accounting method
Don't serialize the logger
Add custom timestamp, to fill in when msg is first stored
Fix problem with duplicate sha-1 ids being produced
More verbose debug logging, save custom timestamp
API change should have been committed earlier (II)
API change should have been committed earlier
Delegate json-related functionality to JsonHelpers (UserState)
Use vals and not raw strings for JSON names