1- /*
2- * Copyright (C) 2011-2017 scalable minds UG (haftungsbeschränkt) & Co. KG. <http://scm.io>
3- */
41package com .scalableminds .fossildb
52
63import java .io .{PrintWriter , StringWriter }
74
85import com .google .protobuf .ByteString
96import com .scalableminds .fossildb .db .StoreManager
107import com .scalableminds .fossildb .proto .fossildbapi ._
11- import com . trueaccord . scalapb .GeneratedMessage
8+ import scalapb .GeneratedMessage
129import com .typesafe .scalalogging .LazyLogging
1310
1411import scala .concurrent .Future
@@ -17,102 +14,100 @@ class FossilDBGrpcImpl(storeManager: StoreManager)
1714 extends FossilDBGrpc .FossilDB
1815 with LazyLogging {
1916
20- override def health (req : HealthRequest ) = withExceptionHandler(req) {
21- HealthReply (true )
22- } { errorMsg => HealthReply (false , errorMsg) }
17+ override def health (req : HealthRequest ): Future [ HealthReply ] = withExceptionHandler(req) {
18+ HealthReply (success = true )
19+ } { errorMsg => HealthReply (success = false , errorMsg) }
2320
24- override def get (req : GetRequest ) = withExceptionHandler(req) {
21+ override def get (req : GetRequest ): Future [ GetReply ] = withExceptionHandler(req) {
2522 val store = storeManager.getStore(req.collection)
2623 val versionedKeyValuePairOpt = store.get(req.key, req.version)
2724 versionedKeyValuePairOpt match {
28- case Some (pair) => GetReply (true , None , ByteString .copyFrom(pair.value), pair.version)
29- case None => {
30- if (! (req.mayBeEmpty.getOrElse(false ))) throw new NoSuchElementException
31- GetReply (false , Some (" No such element" ), ByteString .EMPTY , 0 )
32- }
25+ case Some (pair) => GetReply (success = true , None , ByteString .copyFrom(pair.value), pair.version)
26+ case None =>
27+ if (! req.mayBeEmpty.getOrElse(false )) throw new NoSuchElementException
28+ GetReply (success = false , Some (" No such element" ), ByteString .EMPTY , 0 )
3329 }
34- } { errorMsg => GetReply (false , errorMsg, ByteString .EMPTY , 0 ) }
30+ } { errorMsg => GetReply (success = false , errorMsg, ByteString .EMPTY , 0 ) }
3531
36- override def put (req : PutRequest ) = withExceptionHandler(req) {
32+ override def put (req : PutRequest ): Future [ PutReply ] = withExceptionHandler(req) {
3733 val store = storeManager.getStore(req.collection)
3834 val version = req.version.getOrElse(store.get(req.key, None ).map(_.version + 1 ).getOrElse(0L ))
3935 require(version >= 0 , " Version numbers must be non-negative" )
4036 store.put(req.key, version, req.value.toByteArray)
41- PutReply (true )
42- } { errorMsg => PutReply (false , errorMsg) }
37+ PutReply (success = true )
38+ } { errorMsg => PutReply (success = false , errorMsg) }
4339
44- override def delete (req : DeleteRequest ) = withExceptionHandler(req) {
40+ override def delete (req : DeleteRequest ): Future [ DeleteReply ] = withExceptionHandler(req) {
4541 val store = storeManager.getStore(req.collection)
4642 store.delete(req.key, req.version)
47- DeleteReply (true )
48- } { errorMsg => DeleteReply (false , errorMsg) }
43+ DeleteReply (success = true )
44+ } { errorMsg => DeleteReply (success = false , errorMsg) }
4945
50- override def getMultipleVersions (req : GetMultipleVersionsRequest ) = withExceptionHandler(req) {
46+ override def getMultipleVersions (req : GetMultipleVersionsRequest ): Future [ GetMultipleVersionsReply ] = withExceptionHandler(req) {
5147 val store = storeManager.getStore(req.collection)
5248 val (values, versions) = store.getMultipleVersions(req.key, req.oldestVersion, req.newestVersion)
53- GetMultipleVersionsReply (true , None , values.map(ByteString .copyFrom(_) ), versions)
54- } { errorMsg => GetMultipleVersionsReply (false , errorMsg) }
49+ GetMultipleVersionsReply (success = true , None , values.map(ByteString .copyFrom), versions)
50+ } { errorMsg => GetMultipleVersionsReply (success = false , errorMsg) }
5551
56- override def getMultipleKeys (req : GetMultipleKeysRequest ) = withExceptionHandler(req) {
52+ override def getMultipleKeys (req : GetMultipleKeysRequest ): Future [ GetMultipleKeysReply ] = withExceptionHandler(req) {
5753 val store = storeManager.getStore(req.collection)
5854 val (keys, values, versions) = store.getMultipleKeys(req.key, req.prefix, req.version, req.limit)
59- GetMultipleKeysReply (true , None , keys, values.map(ByteString .copyFrom(_) ), versions)
60- } { errorMsg => GetMultipleKeysReply (false , errorMsg) }
55+ GetMultipleKeysReply (success = true , None , keys, values.map(ByteString .copyFrom), versions)
56+ } { errorMsg => GetMultipleKeysReply (success = false , errorMsg) }
6157
62- override def deleteMultipleVersions (req : DeleteMultipleVersionsRequest ) = withExceptionHandler(req) {
58+ override def deleteMultipleVersions (req : DeleteMultipleVersionsRequest ): Future [ DeleteMultipleVersionsReply ] = withExceptionHandler(req) {
6359 val store = storeManager.getStore(req.collection)
6460 store.deleteMultipleVersions(req.key, req.oldestVersion, req.newestVersion)
65- DeleteMultipleVersionsReply (true )
66- } { errorMsg => DeleteMultipleVersionsReply (false , errorMsg) }
61+ DeleteMultipleVersionsReply (success = true )
62+ } { errorMsg => DeleteMultipleVersionsReply (success = false , errorMsg) }
6763
68- override def listKeys (req : ListKeysRequest ) = withExceptionHandler(req) {
64+ override def listKeys (req : ListKeysRequest ): Future [ ListKeysReply ] = withExceptionHandler(req) {
6965 val store = storeManager.getStore(req.collection)
7066 val keys = store.listKeys(req.limit, req.startAfterKey)
71- ListKeysReply (true , None , keys)
72- } { errorMsg => ListKeysReply (false , errorMsg) }
67+ ListKeysReply (success = true , None , keys)
68+ } { errorMsg => ListKeysReply (success = false , errorMsg) }
7369
74- override def listVersions (req : ListVersionsRequest ) = withExceptionHandler(req) {
70+ override def listVersions (req : ListVersionsRequest ): Future [ ListVersionsReply ] = withExceptionHandler(req) {
7571 val store = storeManager.getStore(req.collection)
7672 val versions = store.listVersions(req.key, req.limit, req.offset)
77- ListVersionsReply (true , None , versions)
78- } { errorMsg => ListVersionsReply (false , errorMsg) }
73+ ListVersionsReply (success = true , None , versions)
74+ } { errorMsg => ListVersionsReply (success = false , errorMsg) }
7975
80- override def backup (req : BackupRequest ) = withExceptionHandler(req) {
76+ override def backup (req : BackupRequest ): Future [ BackupReply ] = withExceptionHandler(req) {
8177 val backupInfoOpt = storeManager.backup
8278 backupInfoOpt match {
83- case Some (backupInfo) => BackupReply (true , None , backupInfo.id, backupInfo.timestamp, backupInfo.size)
79+ case Some (backupInfo) => BackupReply (success = true , None , backupInfo.id, backupInfo.timestamp, backupInfo.size)
8480 case _ => throw new Exception (" Backup did not return valid BackupInfo" )
8581 }
86- } { errorMsg => BackupReply (false , errorMsg, 0 , 0 , 0 ) }
82+ } { errorMsg => BackupReply (success = false , errorMsg, 0 , 0 , 0 ) }
8783
88- override def restoreFromBackup (req : RestoreFromBackupRequest ) = withExceptionHandler(req) {
89- storeManager.restoreFromBackup
90- RestoreFromBackupReply (true )
91- } { errorMsg => RestoreFromBackupReply (false , errorMsg) }
84+ override def restoreFromBackup (req : RestoreFromBackupRequest ): Future [ RestoreFromBackupReply ] = withExceptionHandler(req) {
85+ storeManager.restoreFromBackup()
86+ RestoreFromBackupReply (success = true )
87+ } { errorMsg => RestoreFromBackupReply (success = false , errorMsg) }
9288
93- override def compactAllData (req : CompactAllDataRequest ) = withExceptionHandler(req) {
89+ override def compactAllData (req : CompactAllDataRequest ): Future [ CompactAllDataReply ] = withExceptionHandler(req) {
9490 storeManager.compactAllData()
95- CompactAllDataReply (true )
96- } { errorMsg => CompactAllDataReply (false , errorMsg) }
91+ CompactAllDataReply (success = true )
92+ } { errorMsg => CompactAllDataReply (success = false , errorMsg) }
9793
98- override def exportDB (req : ExportDBRequest ) = withExceptionHandler(req) {
94+ override def exportDB (req : ExportDBRequest ): Future [ ExportDBReply ] = withExceptionHandler(req) {
9995 storeManager.exportDB(req.newDataDir, req.optionsFile)
100- ExportDBReply (true )
101- } { errorMsg => ExportDBReply (false , errorMsg) }
96+ ExportDBReply (success = true )
97+ } { errorMsg => ExportDBReply (success = false , errorMsg) }
10298
10399 private def withExceptionHandler [T , R <: GeneratedMessage ](request : R )(tryBlock : => T )(onErrorBlock : Option [String ] => T ): Future [T ] = {
104100 try {
105101 logger.debug(" received " + requestToString(request))
106102 Future .successful(tryBlock)
107103 } catch {
108- case e : Exception => {
104+ case e : Exception =>
109105 log(e, request)
110106 Future .successful(onErrorBlock(Some (e.toString)))
111- }
112107 }
113108 }
114109
115- private def log [R <: GeneratedMessage ](e : Exception , request : R ) = {
110+ private def log [R <: GeneratedMessage ](e : Exception , request : R ): Unit = {
116111 logger.warn(getStackTraceAsString(e) + " \n request that caused this error: " + requestToString(request) + " \n " )
117112 }
118113
0 commit comments