|
|
"""checkSiteIs3.py simply checks that the Madrigal administrator has set the siteTab.txt file to indicate this site
|
|
|
is at least Madrigal 3.
|
|
|
|
|
|
Also verifies that soft links exist between $MADROOT/experiments[0-9]* and
|
|
|
$MADROOT/source/madpy/djangoMad/madweb/static
|
|
|
|
|
|
Exits with error if not set to at least 3.0
|
|
|
|
|
|
$Id: checkSiteIs3.py 7045 2019-10-07 19:56:46Z brideout $
|
|
|
"""
|
|
|
|
|
|
# standard python imports
|
|
|
import os, os.path, sys
|
|
|
import distutils.version
|
|
|
import subprocess
|
|
|
|
|
|
# Madrigal imports
|
|
|
import madrigal.metadata
|
|
|
|
|
|
madDB = madrigal.metadata.MadrigalDB()
|
|
|
siteId = madDB.getSiteID()
|
|
|
|
|
|
madSiteObj = madrigal.metadata.MadrigalSite(madDB)
|
|
|
|
|
|
version = madSiteObj.getSiteVersion(siteId)
|
|
|
|
|
|
if distutils.version.LooseVersion(version) < distutils.version.LooseVersion('3.0'):
|
|
|
print(('INSTALLATION FAILED: siteTab.txt needs to be updated so that this site (%i) is set to at least 3.0' % (siteId)))
|
|
|
sys.exit(-1)
|
|
|
|
|
|
print('checking if any soft links to experiments directory(s) needed...')
|
|
|
expDirs = madDB.getExperimentDirs()
|
|
|
madroot = madDB.getMadroot()
|
|
|
needed = False
|
|
|
for expDir in expDirs:
|
|
|
basename = os.path.basename(expDir)
|
|
|
targetDir = os.path.join(madroot, 'source/madpy/djangoMad/madweb/static', basename)
|
|
|
if not os.access(targetDir, os.R_OK):
|
|
|
# create it
|
|
|
cmd = 'ln -s %s %s' % (os.path.join(madroot, basename), targetDir)
|
|
|
subprocess.check_call(cmd.split())
|
|
|
print(('created soft link from %s to %s' % (os.path.join(madroot, basename), targetDir)))
|
|
|
needed = True
|
|
|
|
|
|
if not needed:
|
|
|
print('No soft links needed')
|
|
|
|