@@ -15,11 +15,11 @@ import scala.concurrent.Future
1515
1616class FossilDBGrpcImpl (storeManager : StoreManager )
1717 extends FossilDBGrpc .FossilDB
18- with LazyLogging {
18+ with LazyLogging {
1919
2020 override def health (req : HealthRequest ) = withExceptionHandler(req) {
2121 HealthReply (true )
22- } {errorMsg => HealthReply (false , errorMsg)}
22+ } { errorMsg => HealthReply (false , errorMsg) }
2323
2424 override def get (req : GetRequest ) = withExceptionHandler(req) {
2525 val store = storeManager.getStore(req.collection)
@@ -31,71 +31,76 @@ class FossilDBGrpcImpl(storeManager: StoreManager)
3131 GetReply (false , Some (" No such element" ), ByteString .EMPTY , 0 )
3232 }
3333 }
34- } {errorMsg => GetReply (false , errorMsg, ByteString .EMPTY , 0 )}
34+ } { errorMsg => GetReply (false , errorMsg, ByteString .EMPTY , 0 ) }
3535
3636 override def put (req : PutRequest ) = withExceptionHandler(req) {
3737 val store = storeManager.getStore(req.collection)
3838 val version = req.version.getOrElse(store.get(req.key, None ).map(_.version + 1 ).getOrElse(0L ))
3939 require(version >= 0 , " Version numbers must be non-negative" )
4040 store.put(req.key, version, req.value.toByteArray)
4141 PutReply (true )
42- } {errorMsg => PutReply (false , errorMsg)}
42+ } { errorMsg => PutReply (false , errorMsg) }
4343
4444 override def delete (req : DeleteRequest ) = withExceptionHandler(req) {
4545 val store = storeManager.getStore(req.collection)
4646 store.delete(req.key, req.version)
4747 DeleteReply (true )
48- } {errorMsg => DeleteReply (false , errorMsg)}
48+ } { errorMsg => DeleteReply (false , errorMsg) }
4949
5050 override def getMultipleVersions (req : GetMultipleVersionsRequest ) = withExceptionHandler(req) {
5151 val store = storeManager.getStore(req.collection)
5252 val (values, versions) = store.getMultipleVersions(req.key, req.oldestVersion, req.newestVersion)
5353 GetMultipleVersionsReply (true , None , values.map(ByteString .copyFrom(_)), versions)
54- } {errorMsg => GetMultipleVersionsReply (false , errorMsg)}
54+ } { errorMsg => GetMultipleVersionsReply (false , errorMsg) }
5555
5656 override def getMultipleKeys (req : GetMultipleKeysRequest ) = withExceptionHandler(req) {
5757 val store = storeManager.getStore(req.collection)
5858 val (keys, values, versions) = store.getMultipleKeys(req.key, req.prefix, req.version, req.limit)
5959 GetMultipleKeysReply (true , None , keys, values.map(ByteString .copyFrom(_)), versions)
60- } {errorMsg => GetMultipleKeysReply (false , errorMsg)}
60+ } { errorMsg => GetMultipleKeysReply (false , errorMsg) }
6161
6262 override def deleteMultipleVersions (req : DeleteMultipleVersionsRequest ) = withExceptionHandler(req) {
6363 val store = storeManager.getStore(req.collection)
6464 store.deleteMultipleVersions(req.key, req.oldestVersion, req.newestVersion)
6565 DeleteMultipleVersionsReply (true )
66- } {errorMsg => DeleteMultipleVersionsReply (false , errorMsg)}
66+ } { errorMsg => DeleteMultipleVersionsReply (false , errorMsg) }
6767
6868 override def listKeys (req : ListKeysRequest ) = withExceptionHandler(req) {
6969 val store = storeManager.getStore(req.collection)
7070 val keys = store.listKeys(req.limit, req.startAfterKey)
7171 ListKeysReply (true , None , keys)
72- } {errorMsg => ListKeysReply (false , errorMsg)}
72+ } { errorMsg => ListKeysReply (false , errorMsg) }
7373
7474 override def listVersions (req : ListVersionsRequest ) = withExceptionHandler(req) {
7575 val store = storeManager.getStore(req.collection)
7676 val versions = store.listVersions(req.key, req.limit, req.offset)
7777 ListVersionsReply (true , None , versions)
78- } {errorMsg => ListVersionsReply (false , errorMsg)}
78+ } { errorMsg => ListVersionsReply (false , errorMsg) }
7979
8080 override def backup (req : BackupRequest ) = withExceptionHandler(req) {
8181 val backupInfoOpt = storeManager.backup
8282 backupInfoOpt match {
8383 case Some (backupInfo) => BackupReply (true , None , backupInfo.id, backupInfo.timestamp, backupInfo.size)
8484 case _ => throw new Exception (" Backup did not return valid BackupInfo" )
8585 }
86- } {errorMsg => BackupReply (false , errorMsg, 0 , 0 , 0 )}
86+ } { errorMsg => BackupReply (false , errorMsg, 0 , 0 , 0 ) }
8787
8888 override def restoreFromBackup (req : RestoreFromBackupRequest ) = withExceptionHandler(req) {
8989 storeManager.restoreFromBackup
9090 RestoreFromBackupReply (true )
91- } {errorMsg => RestoreFromBackupReply (false , errorMsg)}
91+ } { errorMsg => RestoreFromBackupReply (false , errorMsg) }
9292
9393 override def compactAllData (req : CompactAllDataRequest ) = withExceptionHandler(req) {
94- storeManager.compactAllData
94+ storeManager.compactAllData()
9595 CompactAllDataReply (true )
96- } {errorMsg => CompactAllDataReply (false , errorMsg)}
96+ } { errorMsg => CompactAllDataReply (false , errorMsg) }
9797
98- private def withExceptionHandler [T , R <: GeneratedMessage ](request : R )(tryBlock : => T )(onErrorBlock : Option [String ] => T ): Future [T ] = {
98+ override def exportDB (req : ExportDBRequest ) = withExceptionHandler(req) {
99+ storeManager.exportDB(req.newDataDir, req.optionsFile)
100+ ExportDBReply (true )
101+ } { errorMsg => ExportDBReply (false , errorMsg) }
102+
103+ private def withExceptionHandler [T , R <: GeneratedMessage ](request : R )(tryBlock : => T )(onErrorBlock : Option [String ] => T ): Future [T ] = {
99104 try {
100105 logger.debug(" received " + requestToString(request))
101106 Future .successful(tryBlock)
@@ -112,7 +117,7 @@ class FossilDBGrpcImpl(storeManager: StoreManager)
112117 }
113118
114119 private def requestToString [R <: GeneratedMessage ](request : R ) =
115- request.getClass.getSimpleName + " (" + request.toString.replaceAll(" \n " ," " ) + " )"
120+ request.getClass.getSimpleName + " (" + request.toString.replaceAll(" \n " , " " ) + " )"
116121
117122 private def getStackTraceAsString (t : Throwable ) = {
118123 val sw = new StringWriter
0 commit comments