diff --git a/MANIFEST.in b/MANIFEST.in index cdc765bc0996ba93c0ba80baa48246c2bda356dd..7a4b7ce19146736c9377d9198a29308589d96384 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1 +1,4 @@ include setuptools-0.6c11-py2.4.egg +include config/static_graphs +include config/osg_graphs.conf +include config/GratiaStaticGraphs.cron diff --git a/config/GratiaStaticGraphs.cron b/config/GratiaStaticGraphs.cron new file mode 100644 index 0000000000000000000000000000000000000000..7fded547c90ace7979bb2fa33726edb55d0a979d --- /dev/null +++ b/config/GratiaStaticGraphs.cron @@ -0,0 +1 @@ +01 0-23/8 * * * nobody static_graphs -config /etc/osg_graphs.conf > /dev/null diff --git a/config/osg_graphs.conf b/config/osg_graphs.conf new file mode 100644 index 0000000000000000000000000000000000000000..e245505c2ed902227395b86444565b9652968825 --- /dev/null +++ b/config/osg_graphs.conf @@ -0,0 +1,54 @@ + +[General] +Source=http://t2.unl.edu/gratia +Enabled=false +#Dest=/afs/fnal.gov/files/expwww/gratia/html/Files/osg_gratia_display +Dest=/tmp/osg_graphs +Suffix=.png +UTCOffset=-6 +StartDate=2010-11-01 +Replace=false + + +[non_hep_vos] +image=/pie_graphs/osg_vo_hours?vo=nanohub%7Cglow%7Csdss%7Cdteam%7Cligo%7Cosg%7Cengage%7Cosgedu%7Ctigre%7Cnysgrid%7Ccigi%7Ccompbiogrid%7Cdes%7Cfmri%7Cgpn%7Cgrase%7Cgugrid%7Ci2u2%7Cmariachi%7Cnwicg%7Csbgrid%7Cstar&starttime=:today-52*7*86400&endtime=:today + +[vo_bar_smry] +image=/bar_graphs/vo_hours_bar_smry?span=604800&starttime=:today-52*7*86400&endtime=:today + +[facility_bar_smry] +image=/bar_graphs/facility_hours_bar_smry?span=604800&starttime=:today-52*7*86400&endtime=:today + +[osg_wall_hours] +image=/bar_graphs/osg_wall_hours + +[osg_wall_cumulative] +image=/cumulative_graphs/osg_wall_cumulative + +[monthly_non_hep] +image=/bar_graphs/monthly_non_hep + +[vo_job_count] +image=/bar_graphs/vo_job_cnt?span=604800&starttime=time.time()-365*86400 + +[animated_thumbnail1] +width=254 +source= facility_bar_smry.png, vo_bar_smry.png, osg_wall_hours.png, osg_wall_cumulative.png, monthly_non_hep.png, vo_job_count.png + +output=osg.gif + +[animated_thumbnail2] +height=800 +source=facility_bar_smry.png, vo_bar_smry.png, osg_wall_hours.png, osg_wall_cumulative.png, monthly_non_hep.png, vo_job_count.png +output=osg2.gif + +[animated_thumbnail3] +height=200 +source=facility_bar_smry.png, vo_bar_smry.png, osg_wall_hours.png, osg_wall_cumulative.png, monthly_non_hep.png, vo_job_count.png +output=osg3.gif +grey=True + +[variables] +vo=http://t2.unl.edu/gratia/xml/ + + diff --git a/config/static_graphs b/config/static_graphs new file mode 100755 index 0000000000000000000000000000000000000000..321d2e0973985ec1aaf1faea696aa6c1873d0941 --- /dev/null +++ b/config/static_graphs @@ -0,0 +1,6 @@ +#!/usr/bin/python + +import gratia.tools.static_graphs + +gratia.tools.static_graphs.main() + diff --git a/setup/setup_static_graphs.cfg b/setup/setup_static_graphs.cfg new file mode 100644 index 0000000000000000000000000000000000000000..c78028ff7c0a6227228898ddd3d59437b437faa3 --- /dev/null +++ b/setup/setup_static_graphs.cfg @@ -0,0 +1,7 @@ +[bdist_rpm] +requires = graphtool >= 0.6.4 python-setuptools +release = 2 + +[install] +optimize=1 + diff --git a/setup/setup_static_graphs.py b/setup/setup_static_graphs.py index 8367ca527808d78c11d6e2be4e3e930d765b7006..cb5fa39d49c39ddbbec95c064ac9ac3033a3dc0c 100644 --- a/setup/setup_static_graphs.py +++ b/setup/setup_static_graphs.py @@ -1,42 +1,21 @@ -import ez_setup -ez_setup.use_setuptools() - -from setuptools import setup, find_packages +from distutils.core import setup setup(name="GratiaStaticGraphs", - version="0.2", + version="0.3", author="Brian Bockelman", - author_email="bbockelm@math.unl.edu", + author_email="bbockelm@cse.unl.edu", url="http://t2.unl.edu/documentation/gratia_graphs", description="Static Graph Generator.", package_dir={"": "src"}, - packages=find_packages("src"), - include_package_data=True, - - classifiers = [ - 'Development Status :: 2 - Pre-Alpha', - 'Intended Audience :: Developers', - 'Programming Language :: Python', - 'Natural Language :: English', - 'Operating System :: POSIX' - ], - - dependency_links = ['http://effbot.org/downloads/Imaging-1.1.6.tar.gz' \ - '#egg=PIL-1.1.6'], - install_requires=["PIL"], + packages=["gratia", "gratia.tools", "gratia.graphs"], - entry_points={ - 'console_scripts': [ - 'static_graphs = gratia.tools.static_graphs:main', - ], - 'setuptools.installation' : [ - 'static_graphs = gratia.tools.static_graphs:main', - ] - }, + data_files=[("/etc/cron.d", ["config/GratiaStaticGraphs.cron"]), + ("/usr/bin", ["config/static_graphs"]), + ("/etc", ["config/osg_graphs.conf"]), + ] - namespace_packages = ['gratia'] ) diff --git a/src/gratia/tools/static_graphs.py b/src/gratia/tools/static_graphs.py index a30879b8b00636ff66218c52ad99011fecae8479..2a81fbb8503ee0c6f4a744b59962fabed5f1e0be 100755 --- a/src/gratia/tools/static_graphs.py +++ b/src/gratia/tools/static_graphs.py @@ -114,7 +114,10 @@ def generate(cp, entry=None): utcOffset = cp.getint("General", "UTCOffset") suffix = cp.get("General", "Suffix") replace = cp.getboolean("General", "Replace") - generate_hist_graphs = cp.getboolean("General", "GenerateHistoricalGraphs") + try: + generate_hist_graphs = cp.getboolean("General", "GenerateHistoricalGraphs") + except: + generate_hist_graphs = False variables = parse_variables(cp) today_date = datetime.date.today() @@ -125,6 +128,8 @@ def generate(cp, entry=None): curDate = today while curDate >= firstDate: + if (today - curDate).days > 30: + continue timestamp = int(curDate.strftime('%s')) + 3600*utcOffset if curDate == today: dest = os.path.join(orig_dest, 'today') @@ -213,15 +218,26 @@ def main(): for config_file in config_files: if not os.path.exists(config_file): print >> sys.stderr, "Config file %s not found." % config_file - sys.exit(-1) + sys.exit(1) + + if not config_files: + config_files = ["/etc/osg_graphs.conf"] cp = ConfigParser.ConfigParser() - try: - cp.readfp(resource_stream("gratia.config", "static_generator.cfg")) - except IOError: - pass cp.read(config_files) - + + try: + if not cp.getboolean("General", "Enabled"): + print "Config file %s does not have Enabled=true in [General]." % \ + ", ".join(config_files) + print "Exiting 0 as requested." + sys.exit(0) + except SystemExit: + raise + except: + print "Unable to determine if config file %s has been enabled." % ", ".join(config_files) + sys.exit(1) + if 'entry' in kwArgs: generate(cp, entry=kwArgs['entry']) else: