Package omero :: Package install :: Module versions
[hide private]
[frames] | no frames]

Source Code for Module omero.install.versions

 1  #!/usr/bin/env python 
 2  # 
 3  # $Id$ 
 4  # 
 5  # Copyright 2009 Glencoe Software, Inc. All rights reserved. 
 6  # Use is subject to license terms supplied in LICENSE.txt 
 7  # 
 8  # Version comparison functionality 
 9   
10  import re 
11  import logging 
12   
13  # Regex copied from http://hudson.openmicroscopy.org.uk/job/OMERO/javadoc/constant-values.html#ome.api.IConfig.VERSION_REGEX 
14  REGEX = re.compile("^.*?[-]?(\\d+[.]\\d+[.]\\d+)[-]?.*?$") 
15  LOG = logging.getLogger("omero.version") 
16   
17 -def needs_upgrade(client_version, server_version, verbose = False):
18 """ 19 Tests whether the client version is behind the server version. 20 For example: 21 22 import omero 23 from omero_version import omero_version as client_version 24 25 client = omero.client() 26 session = client.createSession() 27 config = session.getConfigService() 28 server_version = config.getVersion() 29 30 upgrade = needs_upgrade(client_version, server_version) 31 if upgrade: 32 # Inform client 33 34 Alternatively, from the command-line: 35 ./versions.py --quiet 4.1.0 4.2.0-DEV || echo upgrade 36 37 """ 38 try: 39 client_cleaned = REGEX.match(client_version).group(1) 40 client_split = client_cleaned.split(".") 41 42 server_cleaned = REGEX.match(server_version).group(1) 43 server_split = server_cleaned.split(".") 44 45 rv = (client_split < server_split) 46 if verbose: 47 LOG.info("User=%-20s Local=%-20s Upgrade? %s", client_version, server_version, rv) 48 return rv 49 50 except: 51 LOG.warn("Bad versions: client=%s server=%s", client_version, server_version, exc_info = 1) 52 return True
53 54 if __name__ == "__main__": 55 56 import sys 57 args = list(sys.argv[1:]) 58 59 if "--quiet" in args: 60 args.remove("--quiet") 61 logging.basicConfig(level=logging.WARN) 62 else: 63 logging.basicConfig(level=logging.DEBUG) 64 65 if "--test" in args: 66 print "="*10, "Test", "="*72 67 needs_upgrade("4.1.0", "4.1.1", True) 68 needs_upgrade("4.1.0", "4.1.1-Dev", True) 69 needs_upgrade("4.1.0-Dev", "4.1.1", True) 70 needs_upgrade("4.1.1", "4.1.1", True) 71 needs_upgrade("Beta-4.1.1", "4.1.1", True) 72 needs_upgrade("4.1.1", "Beta-4.1.1", True) 73 needs_upgrade("4.1.1-Foo", "4.1.1", True) 74 needs_upgrade("4.1.1-Foo", "4.1.1-Dev", True) 75 needs_upgrade("4.1.1-Foo", "4.1.2-Dev", True) 76 needs_upgrade("4.1.1-Foo", "4.2.0-Dev", True) 77 else: 78 try: 79 rv = int(needs_upgrade(args[0], args[1], True)) 80 except: 81 rv = 2 82 print """ %s [--quiet] client_version server_version 83 or: %s [--quiet] --test 84 """ % (sys.argv[0], sys.argv[0]) 85 sys.exit(rv) 86