Skip to content

Commit f2c06c3

Browse files
committed
Control data location using new global variable gDataLocation in preprartion to address issue #109.
1 parent f466f3d commit f2c06c3

File tree

1 file changed

+21
-16
lines changed

1 file changed

+21
-16
lines changed

mosaicweb/views.py

+21-16
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ class InvalidPOSTRequest(Exception):
5555

5656
gAnalysisSessions=sessionManager.sessionManager()
5757
gStartTime=time.time()
58+
gDataLocation=mosaic.WebServerDataLocation
5859

5960
@app.route("/")
6061
def index():
@@ -97,29 +98,31 @@ def processingAlgorithm():
9798
@gzipped
9899
@registerLaunch("new_analysis_mweb")
99100
def newAnalysis():
100-
global gAnalysisSessions
101+
global gAnalysisSessions, gDataLocation
101102
# logger=mlog.mosaicLogging().getLogger(name=__name__)
102103

103104
try:
104105
defaultSettings=False
105106
params = dict(request.get_json())
106107

107108
dataPath = params.get('dataPath', None)
109+
dataFilter = params.get('dataFilter', False)
108110
settingsString = params.get('settingsString', None)
109111
sessionID=params.get('sessionID', None)
110112

111113
if dataPath and not settingsString: # brand new session
112114
# print "brand new session: ", dataPath, settingsString, sessionID
113-
logger.info("/new-analysis: "+format_path(mosaic.WebServerDataLocation+'/'+dataPath))
115+
logger.info("/new-analysis: "+format_path(gDataLocation+'/'+dataPath))
114116

115117
sessionID=gAnalysisSessions.newSession()
116-
ma=mosaicAnalysis.mosaicAnalysis( format_path(mosaic.WebServerDataLocation+'/'+dataPath), sessionID)
118+
ma=mosaicAnalysis.mosaicAnalysis( format_path(gDataLocation+'/'+dataPath), sessionID, dataFilter=dataFilter )
117119

118-
gAnalysisSessions.addDataPath(sessionID, format_path(mosaic.WebServerDataLocation+'/'+dataPath) )
120+
gAnalysisSessions.addDataPath(sessionID, format_path(gDataLocation+'/'+dataPath) )
119121
gAnalysisSessions.addMOSAICAnalysisObject(sessionID, ma)
120122
elif sessionID and settingsString: # update settings
121123
# print "update settings: ", dataPath, settingsString, sessionID
122124
ma=gAnalysisSessions.getSessionAttribute(sessionID, 'mosaicAnalysisObject')
125+
ma.dataFilter=dataFilter
123126
ma.updateSettings(settingsString)
124127

125128
gAnalysisSessions.addSettingsString(sessionID, ma.analysisSettingsDict)
@@ -147,13 +150,13 @@ def newAnalysis():
147150
@gzipped
148151
@registerLaunch("load_analysis_mweb")
149152
def loadAnalysis():
150-
global gAnalysisSessions
153+
global gAnalysisSessions, gDataLocation
151154

152155
try:
153156
params = dict(request.get_json())
154157
db=params.get('databaseFile', None)
155158

156-
databaseFile = format_path(mosaic.WebServerDataLocation+'/'+db )
159+
databaseFile = format_path(gDataLocation+'/'+db )
157160
if not databaseFile:
158161
raise InvalidPOSTRequest("Missing required parameter 'databaseFile'")
159162

@@ -307,15 +310,15 @@ def analysisStats():
307310

308311
@app.route('/analysis-log', methods=['POST'])
309312
def analysisLog():
310-
global gAnalysisSessions
313+
global gAnalysisSessions, gDataLocation
311314

312315
try:
313316
params = dict(request.get_json())
314317

315318
sessionID=params['sessionID']
316319
dbfile=gAnalysisSessions.getSessionAttribute(sessionID, 'databaseFile')
317320

318-
logstr=(rawQuery(dbfile, "select logstring from analysislog")[0][0]).replace(str(mosaic.WebServerDataLocation), "<Data Root>")
321+
logstr=(rawQuery(dbfile, "select logstring from analysislog")[0][0]).replace(str(gDataLocation), "<Data Root>")
319322

320323
return jsonify(respondingURL='analysis-log', logText=logstr), 200
321324
except (sessionManager.SessionNotFoundError, KeyError):
@@ -374,16 +377,16 @@ def pollAnalysisStatus():
374377

375378
@app.route('/list-data-folders', methods=['POST'])
376379
def listDataFolders():
377-
# logger=mlog.mosaicLogging().getLogger(name=__name__)
380+
global gDataLocation
378381

379382
params = dict(request.get_json())
380383

381384
level=params.get('level', 'Data Root')
382385
if level == 'Data Root':
383-
folder=mosaic.WebServerDataLocation
386+
folder=gDataLocation
384387
logger.info("/list-data-folders: "+folder)
385388
else:
386-
folder=format_path(mosaic.WebServerDataLocation+'/'+level+'/')
389+
folder=format_path(gDataLocation+'/'+level+'/')
387390
logger.info("/list-data-folders: "+folder)
388391

389392

@@ -393,7 +396,7 @@ def listDataFolders():
393396
itemAttr={}
394397
if os.path.isdir(item):
395398
itemAttr['name']=os.path.relpath(item, folder)
396-
itemAttr['relpath']=os.path.relpath(item, format_path(mosaic.WebServerDataLocation) )
399+
itemAttr['relpath']=os.path.relpath(item, format_path(gDataLocation) )
397400
itemAttr['desc']=_folderDesc(item)
398401
itemAttr['modified']=time.strftime('%m/%d/%Y, %I:%M %p', time.localtime(os.path.getmtime(item)))
399402

@@ -403,15 +406,17 @@ def listDataFolders():
403406

404407
@app.route('/list-database-files', methods=['POST'])
405408
def listDatabaseFiles():
409+
global gDataLocation
410+
406411
params = dict(request.get_json())
407412

408413
level=params.get('level', 'Data Root')
409414
logger.info("/list-database-files: "+str(level))
410415
if level == 'Data Root':
411-
folder=mosaic.WebServerDataLocation
416+
folder=gDataLocation
412417
logger.info("/list-database-files: "+folder)
413418
else:
414-
folder=format_path(mosaic.WebServerDataLocation+'/'+level+'/')
419+
folder=format_path(gDataLocation+'/'+level+'/')
415420
logger.info("/list-database-files: "+folder)
416421

417422
fileList=[]
@@ -420,15 +425,15 @@ def listDatabaseFiles():
420425
itemAttr={}
421426
if os.path.isdir(item):
422427
itemAttr['name']=os.path.relpath(item, folder)
423-
itemAttr['relpath']=os.path.relpath(item, format_path(mosaic.WebServerDataLocation) )
428+
itemAttr['relpath']=os.path.relpath(item, format_path(gDataLocation) )
424429
itemAttr['desc']=_folderDesc(item)
425430
itemAttr['modified']=time.strftime('%m/%d/%Y, %I:%M %p', time.localtime(os.path.getmtime(item)))
426431

427432
fileList.append(itemAttr)
428433
else:
429434
if _fileExtension(item)==".sqlite":
430435
itemAttr['name']=os.path.relpath(item, folder)
431-
itemAttr['relpath']=os.path.relpath(item, format_path(mosaic.WebServerDataLocation) )
436+
itemAttr['relpath']=os.path.relpath(item, format_path(gDataLocation) )
432437
itemAttr['desc']="SQLite database, {0}".format(_fileSize(item))
433438
itemAttr['modified']=time.strftime('%m/%d/%Y, %I:%M %p', time.localtime(os.path.getmtime(item)))
434439

0 commit comments

Comments
 (0)