X-Git-Url: http://git.onelab.eu/?p=sfa.git;a=blobdiff_plain;f=setup.py;h=15ccf5871f6f37cabef28f72dd398323be505080;hp=fbab6aff62c1a22a98fea9848e6eddf491550d7f;hb=e3cef34c5f65d6c1eaa8cbd78703cc059cad0769;hpb=5310688934eb634ac0a6c3c2f5a9e616dcd1899e diff --git a/setup.py b/setup.py index fbab6aff..15ccf587 100755 --- a/setup.py +++ b/setup.py @@ -1,55 +1,79 @@ -#!/usr/bin/python +#!/usr/bin/env python + +from __future__ import print_function """ Installation script for the sfa module """ +# as fas as pushing onto pypi, I have been using this page +# http://peterdowns.com/posts/first-time-with-pypi.html +# for setting up the whole business + import sys, os, os.path from glob import glob import shutil from distutils.core import setup -scripts = glob("sfa/clientbin/*.py") + \ - [ +# check for the correct version of python +major,minor = sys.version_info [0:2] +if (major,minor) != (2,7): + print ("Sorry, the SFA package is currently available only with python-2.7") + exit(1) + + +# while cleaning up we might not have this.. +try: + from sfa.util.version import version_tag +except: + version_tag='cleaningup' + +scripts = glob("clientbin/*.py") + \ + [ 'config/sfa-config-tty', - 'config/gen-sfa-cm-config.py', - 'sfa/importer/sfa-import-plc.py', - 'sfa/importer/sfa-nuke-plc.py', - 'sfa/server/sfa-ca.py', - 'sfa/server/sfa-start.py', - 'sfa/server/sfa-clean-peer-records.py', - 'sfa/server/sfa_component_setup.py', + 'config/sfa-config', +# 'config/gen-sfa-cm-config.py', + 'sfa/server/sfa-start.py', +# 'sfa/server/sfa_component_setup.py', 'sfatables/sfatables', 'keyconvert/keyconvert.py', 'flashpolicy/sfa_flashpolicy.py', ] packages = [ - 'sfa', + 'sfa', 'sfa/trust', 'sfa/storage', - 'sfa/util', - 'sfa/client', + 'sfa/util', 'sfa/server', 'sfa/methods', 'sfa/generic', 'sfa/managers', 'sfa/importer', - 'sfa/plc', 'sfa/rspecs', 'sfa/rspecs/elements', 'sfa/rspecs/elements/versions', 'sfa/rspecs/versions', + 'sfa/client', + 'sfa/planetlab', + 'sfa/nitos', + 'sfa/dummy', + 'sfa/openstack', + 'sfa/federica', + 'sfa/iotlab', + 'sfa/cortexlab', 'sfatables', 'sfatables/commands', 'sfatables/processors', ] -initscripts = [ 'sfa', 'sfa-cm' ] +initscripts = [ 'sfa' ] +if not os.path.isfile('/etc/redhat-release'): initscripts.append('functions.sfa') data_files = [ ('/etc/sfa/', [ 'config/aggregates.xml', 'config/registries.xml', 'config/default_config.xml', + 'config/api_versions.xml', 'config/sfi_config', 'config/topology', 'sfa/managers/pl/pl.rng', @@ -63,8 +87,8 @@ data_files = [ ('/etc/sfa/', [ 'config/aggregates.xml', ('/etc/sfatables/matches/', glob('sfatables/matches/*.xml')), ('/etc/sfatables/targets/', glob('sfatables/targets/*.xml')), ('/etc/init.d/', [ "init.d/%s"%x for x in initscripts ]), - ('/usr/share/sfa/', [ 'sfa/storage/sfa.sql' ] ), - ('/usr/share/sfa/migrations', [ 'sfa/storage/migrations/*' ] ), + ('/usr/share/sfa/migrations', glob('sfa/storage/migrations/*.*') ), + ('/usr/share/sfa/migrations/versions', glob('sfa/storage/migrations/versions/*') ), ('/usr/share/sfa/examples/', glob('sfa/examples/*' ) + [ 'cron.d/sfa.cron' ] ), ] @@ -85,24 +109,47 @@ if sys.argv[1] in ['uninstall', 'remove', 'delete', 'clean']: remove_bins = [ '/usr/bin/' + os.path.basename(bin) for bin in scripts ] remove_files = remove_bins + [ "/etc/init.d/%s"%x for x in initscripts ] - # remove files + # remove files + def feedback (file, msg): print ("removing", file, "...",msg) for filepath in remove_files: - print "removing", filepath, "...", - try: + try: os.remove(filepath) - print "success" - except: print "failed" - # remove directories - for directory in remove_dirs: - print "removing", directory, "...", - try: + feedback(filepath,"success") + except: + feedback(filepath,"failed") + # remove directories + for directory in remove_dirs: + try: shutil.rmtree(directory) - print "success" - except: print "failed" + feedback (directory,"success") + except: + feedback (directory, "failed") else: # avoid repeating what's in the specfile already - setup(name='sfa', - packages = packages, - data_files = data_files, - scripts = scripts) + try: + with open("LICENSE.txt") as l: + license = l.read() + except: + license = "Could not open file LICENSE.txt" + try: + with open("index.html") as r: + long_description = r.read() + except: + long_description = "Unable to read index.html" + + setup( + name = 'sfa', + packages = packages, + data_files = data_files, + version = version_tag, + keywords = ['federation','testbeds','SFA','SfaWrap'], + url = "http://svn.planet-lab.org/wiki/SFATutorial", + author = "Thierry Parmentelat, Tony Mack, Scott Baker", + author_email = "thierry.parmentelat@inria.fr, tmack@princeton.cs.edu, smbaker@gmail.com", + download_url = "http://build.onelab.eu/sfa/{v}/sfa-{v}.tar.gz".format(v=version_tag), + description = "SFA Wrapper with drivers for PlanetLab and IotLab and others", + license = license, + long_description = long_description, + scripts = scripts, +)