|
|
#!PYTHONEXE
|
|
|
|
|
|
#$Id: updateFileInExp.py 7046 2019-10-07 19:57:14Z brideout $
|
|
|
|
|
|
usage = """
|
|
|
updateFileInExp.py is a script used to update an existing Madrigal file in an
|
|
|
existing experiment. Information such as the duration of the
|
|
|
experiment is updated by analyzing the file. This script is use to replace
|
|
|
an existing Madrigal file. Use addFileToExp.py to add a new file, and
|
|
|
changeFileStatus.py to change any file attribute.
|
|
|
|
|
|
Required arguments:
|
|
|
|
|
|
--madFilename - full path to the new version of the Madrigal file. Basename will
|
|
|
be maintained.
|
|
|
|
|
|
--expDir - full path to experiment directory. Example:
|
|
|
"/opt/madrigal/experiments/1998/mlh/20jan98"
|
|
|
|
|
|
--skipNotify - if this flag set (no arguments), registered users will NOT be notified
|
|
|
of this change. The default is to email all registered users.
|
|
|
"""
|
|
|
|
|
|
import sys
|
|
|
import os, os.path
|
|
|
import getopt
|
|
|
import traceback
|
|
|
|
|
|
import madrigal.admin
|
|
|
|
|
|
|
|
|
|
|
|
# parse command line
|
|
|
arglist = ''
|
|
|
longarglist = ['madFilename=',
|
|
|
'expDir=',
|
|
|
'skipNotify']
|
|
|
|
|
|
optlist, args = getopt.getopt(sys.argv[1:], arglist, longarglist)
|
|
|
|
|
|
|
|
|
# set default values
|
|
|
madFilename = None
|
|
|
expDir = None
|
|
|
notify = True
|
|
|
|
|
|
for opt in optlist:
|
|
|
if opt[0] == '--madFilename':
|
|
|
madFilename = opt[1]
|
|
|
elif opt[0] == '--expDir':
|
|
|
expDir = opt[1]
|
|
|
elif opt[0] == '--skipNotify':
|
|
|
notify = False
|
|
|
else:
|
|
|
raise ValueError('Illegal option %s\n%s' % (opt[0], usage))
|
|
|
|
|
|
# check that all required arguments passed in
|
|
|
if madFilename == None:
|
|
|
print('--madFilename argument required - must be full path to madrigal file')
|
|
|
print(usage)
|
|
|
sys.exit(0)
|
|
|
|
|
|
if expDir == None:
|
|
|
print('--expDir argument required - must be full path to experiment directory')
|
|
|
sys.exit(0)
|
|
|
|
|
|
|
|
|
adminObj = madrigal.admin.MadrigalDBAdmin()
|
|
|
|
|
|
adminObj.overwriteMadrigalFile(expDir,
|
|
|
madFilename,
|
|
|
notify=notify)
|
|
|
|
|
|
print('File %s successfully updated in experiment at %s' % (madFilename, expDir))
|
|
|
|