Add ping functionality to two of the stores
[aquarium] / src / main / scala / gr / grnet / aquarium / store / mongodb / MongoDBStore.scala
index dd4e359..1171045 100644 (file)
@@ -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,