From 2c709cd15bd63b76d5a838fcab3c0042961ae982 Mon Sep 17 00:00:00 2001 From: Christos KK Loverdos Date: Thu, 17 May 2012 16:18:54 +0300 Subject: [PATCH] Add ping functionality to two of the stores --- src/main/scala/gr/grnet/aquarium/store/IMEventStore.scala | 2 ++ .../gr/grnet/aquarium/store/ResourceEventStore.scala | 2 ++ .../scala/gr/grnet/aquarium/store/memory/MemStore.scala | 8 ++++++++ .../gr/grnet/aquarium/store/mongodb/MongoDBStore.scala | 13 +++++++++++++ 4 files changed, 25 insertions(+) diff --git a/src/main/scala/gr/grnet/aquarium/store/IMEventStore.scala b/src/main/scala/gr/grnet/aquarium/store/IMEventStore.scala index 811e34b..9999848 100644 --- a/src/main/scala/gr/grnet/aquarium/store/IMEventStore.scala +++ b/src/main/scala/gr/grnet/aquarium/store/IMEventStore.scala @@ -57,6 +57,8 @@ trait IMEventStore { def createIMEventFromOther(event: IMEventModel): IMEvent + def pingIMEventStore(): Unit + /** * Insert a new event into the store. */ diff --git a/src/main/scala/gr/grnet/aquarium/store/ResourceEventStore.scala b/src/main/scala/gr/grnet/aquarium/store/ResourceEventStore.scala index cbc9380..787a657 100644 --- a/src/main/scala/gr/grnet/aquarium/store/ResourceEventStore.scala +++ b/src/main/scala/gr/grnet/aquarium/store/ResourceEventStore.scala @@ -53,6 +53,8 @@ trait ResourceEventStore { throw new AquariumException("Unsupported operation") } + def pingResourceEventStore(): Unit + def insertResourceEvent(event: ResourceEventModel): ResourceEvent def findResourceEventById(id: String): Option[ResourceEvent] diff --git a/src/main/scala/gr/grnet/aquarium/store/memory/MemStore.scala b/src/main/scala/gr/grnet/aquarium/store/memory/MemStore.scala index 0f1ae6b..341121c 100644 --- a/src/main/scala/gr/grnet/aquarium/store/memory/MemStore.scala +++ b/src/main/scala/gr/grnet/aquarium/store/memory/MemStore.scala @@ -228,6 +228,10 @@ class MemStore extends UserStateStore _resourceEvents = Nil } + def pingResourceEventStore(): Unit = { + // We are always live and kicking... + } + def insertResourceEvent(event: ResourceEventModel) = { val localEvent = createResourceEventFromOther(event) _resourceEvents ::= localEvent @@ -308,6 +312,10 @@ class MemStore extends UserStateStore StdIMEvent.fromOther(event) } + def pingIMEventStore(): Unit = { + } + + def insertIMEvent(event: IMEventModel) = { val localEvent = createIMEventFromOther(event) imEventById += (event.id -> localEvent) diff --git a/src/main/scala/gr/grnet/aquarium/store/mongodb/MongoDBStore.scala b/src/main/scala/gr/grnet/aquarium/store/mongodb/MongoDBStore.scala index dd4e359..1171045 100644 --- a/src/main/scala/gr/grnet/aquarium/store/mongodb/MongoDBStore.scala +++ b/src/main/scala/gr/grnet/aquarium/store/mongodb/MongoDBStore.scala @@ -104,6 +104,10 @@ class MongoDBStore( MongoDBResourceEvent.fromOther(event, null) } + def pingResourceEventStore(): Unit = { + MongoDBStore.ping(mongo) + } + def insertResourceEvent(event: ResourceEventModel) = { val localEvent = MongoDBResourceEvent.fromOther(event, new ObjectId().toStringMongod) MongoDBStore.insertObject(localEvent, resourceEvents, MongoDBStore.jsonSupportToDBObject) @@ -330,6 +334,10 @@ class MongoDBStore( MongoDBStore.createIMEventFromOther(event) } + def pingIMEventStore(): Unit = { + MongoDBStore.ping(mongo) + } + def insertIMEvent(event: IMEventModel): IMEvent = { val localEvent = MongoDBIMEvent.fromOther(event, new ObjectId().toStringMongod) MongoDBStore.insertObject(localEvent, imEvents, MongoDBStore.jsonSupportToDBObject) @@ -429,6 +437,11 @@ object MongoDBStore { PolicyEntry.fromJson(JSON.serialize(dbObj)) } + def ping(mongo: Mongo): Unit = { + // This requires a network roundtrip + mongo.isLocked + } + def findBy[A >: Null <: AnyRef](name: String, value: String, collection: DBCollection, -- 1.7.10.4