Fixed selectorValue
Fix a bug with mongodb cursor
Update policy.json in test
Minor fix in BillTest
Merge branch 'master' of https://code.grnet.gr/git/aquarium
Conflicts: src/main/scala/gr/grnet/aquarium/charging/ContinuousChargingBehavior.scala src/main/scala/gr/grnet/aquarium/charging/bill/BillEntry.scala src/test/scala/gr/grnet/aquarium/BillTest.scala
Now using schema-based messages
Fixed BillEntry: milliseconds are rounded off. BillTest can send ordered/out of order messages.
Finished scenarios and minor fixes.
Fixed RabbitMQProducer init delay. RabbitMQProducer is now a service.
Custom handling of diskspace details in virtual events. NOT GOOD.
Reverted chagned to BillEntry.
Minor fix in BillEntry (Virtual Resource event have no file path).
Now astakos also publishes resource events (for addcredits)
Fix json representation of numbers in the default policy
WIP integrating Avro-style policy messages
Change aliased to aliases in avro idl
Rename all messages
Rename conf to policy and make parentID optional (via null)
Added documentation to CronSpec and TimeslotComputations. Fixed a bug in ContinuousChargingBehavior. BillTest now sends more RC events to aquarium.
GenericPayloadHandler: one type less
Simplify the types of stored things
More Avro stuff
Move Avro generated classes to gen subpackage
Produce JSON policy configuration from Avro message
Add utility methods for message generation
@inline a few trivial methods
Make unit name for addcredits uppercase
Further additions to Avro messages
PolicyTest is failing.
Add some jackson-based json helpers
Jackson is pulled as a dependency from Avro and note that it is an oldversion (< 2).
Add Avro-related helpers
Adjust the rest service to use the new json helpers
Added charging behavior for VMs and fixed BillEntry
One more test case with avro + json
Fixed RabbitMQProducer. Added BillTest.scala that simulates IM and RC events.
Add a test case for Avro-related message schema
Temporarily prefixing avro message names with _
Adding more Avro stuff
Remove simulation package
Aquarium is now configurable enough to not need a separate simulationpackage.
Remove unused class
First-cut of Avro messages
Realtime calc for continuous charging behavior
Highly unoptimized and memory-unfriendly, proof of concept for themoment.
Specific API for realtime calculations and first-cut implementation via virtual events
Fixed BillEntry
Remove unused code
Bill and BillEntry
Refactored BillEntry and relevant classes.
Implement Continuous behavior with the new scheme
Fix a bunch of related stuff in the process.
Another JSON-friendliness round
This time it could not deserialize due to some private field. Oh,well...
Get rid of charging reason to make life easier with JSON
Unfortunately, the situation with JSON deserialization errors is gettingworse. I knew it, so I should have followed another path. Let me say itonce more:
Never, ever use string-based protocols/formats as your base....
Add rabbitmq.imevents.credit property
Implement Once behavior with the new scheme. Refactor in the process
Fixed RabbitMQProducer. Now it is fully reliable.
Towards a perfect RabbitMQProducer -> actor not receiving msgs
Change var to val
Adhere to existing naming conventions
NOTE: Test integration with the receiving system (Astakos).
WIP charging behavior
Minor fixes in UserActor, BillEntry and RabbitMQProducer
Finished Bill implementation. Added bill.sh to automatically send events and print the resulting bill
Merge selectors into master
NOTE: master was in DNC state (Does Not Compile).
Hook selectors into the price computation path
Use full type hints for json
RabbitMQProducer handles Nacks. UserActor accepts user balance additions from Astakos. Timeslot.align has been fixed. Details Pings have been implemented.
Reliable message passing for RabbitMQProducer
Added REST functionality for the Bill. RabbitMQProducer was refined. UserActor sends message only when state changes
Selector simplifications
Merge branch 'master' into merged_master_selectors
minor fix in JSON message (UserActor-->Astakos , user balance)
RabbitMQ producer sends user balance >= 0 to astakos
First cut of selectors.
Pandora's box. Too simple. Too flexible.
Added RabbitMQProducer.scala. The code has been tests and works. "rabbitmq.imevents.credit=astakos:astakos-events-credit" must be added in aquarium.properties
Fix bad handling of IMEvent from the UserActor.
Upon arrival of the first IMEvent and after some ResourceEvents hadalready arrived at the UserActor, we got an exception due to useragreements beeing empty (being empty is reasonable, since there were noIMEvent previously)....
Removed timeslot computations print statements
Fixed data race in caching polict store. Restored some code from timeslot computations
Wallets go REST
There is a bug related to the timeslot computations, so I had to disableevery piece that computes fine-grained timeslots and their corresponingstuff (agreement).
Add a UserStateModelSkeleton
Unimplemented operations on PolicyStore return safe results
Better handling of billing month info
Ensure the cache is loaded before inserting
Slash'em high
Fix NPE with initial user state
Initializing the policy store the very first time
If the DB is empty, then we insert the default policy, as given in thepolicy.json file.
TimerService is concrete now
Applying the new policy semantics everywhere
added implementation for MemStoreProvider (PolicyStore methods)
Test cases for EffectUnitPrice
policyStore is now a val ! Not a def
Implemented PolicyHistory.scala (a cache that wraps Database calls) and modified various bits and pieces
Manually revert to ddd366d
more test cases
Merge remote-tracking branch 'origin/master'
removed deprecated DSL*.scala files
Fix imports
Remove obsolete files
Fix a compilation error (did not implement a MemStore method)
DSLUtils is now deprecated. Implemented the functionality of EffectivePriceUnit.scala, added CronSpec.scala and moved a few methods from DSLUtils to TimeslotComputations.scala