From 1271808822860b2559dfbce0c8466c97793e3beb Mon Sep 17 00:00:00 2001
From: Sinisa Veseli <sveseli@aps.anl.gov>
Date: Tue, 2 Feb 2016 03:32:42 +0000
Subject: [PATCH] added handling and reporting for processing errors

---
 .../impl/experimentSessionControllerImpl.py     | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/src/python/dm/daq_web_service/service/impl/experimentSessionControllerImpl.py b/src/python/dm/daq_web_service/service/impl/experimentSessionControllerImpl.py
index 0d4e0507..eca65213 100755
--- a/src/python/dm/daq_web_service/service/impl/experimentSessionControllerImpl.py
+++ b/src/python/dm/daq_web_service/service/impl/experimentSessionControllerImpl.py
@@ -42,20 +42,21 @@ class ExperimentSessionControllerImpl(DmObjectManager):
         FileSystemObserver.getInstance().startObservingPath(dataDirectory, experiment)
         return daqInfo
 
-    def stopDaq(self, experimentName, dataDirectory):
+    def stopDaq(self, experimentName, dataDirectory, includeFileDetails=False):
         experiment = self.dsExperimentApi.getExperimentByName(experimentName)
         daqInfo = DaqTracker.getInstance().stopDaq(experiment, dataDirectory)
         FileSystemObserver.getInstance().stopObservingPath(dataDirectory, experiment)
-        return daqInfo.scrub()
+        daqInfo.updateStatus()
+        return daqInfo.scrub(includeFileDetails)
 
-    def getDaqInfo(self, id):
+    def getDaqInfo(self, id, includeFileDetails=False):
         daqInfo = DaqTracker.getInstance().getDaqInfo(id)
         if not daqInfo:
             raise ObjectNotFound('Daq id %s not found.' % id)
         daqInfo.updateStatus()
-        return daqInfo.scrub()
+        return daqInfo.scrub(includeFileDetails)
 
-    def upload(self, experimentName, dataDirectory, daqInfo):
+    def upload(self, experimentName, dataDirectory, daqInfo, includeFileDetails=False):
         experiment = self.dsExperimentApi.getExperimentByName(experimentName)
         experiment['daqInfo'] = daqInfo
         storageDirectory = experiment.get('storageDirectory')
@@ -107,13 +108,13 @@ class ExperimentSessionControllerImpl(DmObjectManager):
         uploadInfo['fileDict'] = fileDict
         #self.logger.debug('Upload info %s' % uploadInfo)
         UploadTracker.getInstance().put(uploadId, uploadInfo)
-        return uploadInfo.scrub()
+        return uploadInfo.scrub(includeFileDetails)
 
-    def getUploadInfo(self, id):
+    def getUploadInfo(self, id, includeFileDetails=False):
         uploadInfo = UploadTracker.getInstance().get(id)
         if not uploadInfo:
             raise ObjectNotFound('Upload id %s not found.' % id)
         uploadInfo.updateStatus()
-        return uploadInfo.scrub()
+        return uploadInfo.scrub(includeFileDetails)
 
 
-- 
GitLab