Package omero :: Package plugins :: Module server
[hide private]
[frames] | no frames]

Source Code for Module omero.plugins.server

  1  #!/usr/bin/env python 
  2  """ 
  3     Startup plugin for our various server components, called typically 
  4     by icegridnode after parsing etc/grid/templates.xml. 
  5   
  6     Plugin read by omero.cli.Cli during initialization. The method(s) 
  7     defined here will be added to the Cli class for later use. 
  8   
  9     Copyright 2008 Glencoe Software, Inc. All rights reserved. 
 10     Use is subject to license terms supplied in LICENSE.txt 
 11   
 12  """ 
 13   
 14  import subprocess, optparse, os, sys, signal, time 
 15  from omero.cli import BaseControl, CLI 
 16  import omero.java 
 17   
 18  HELP = """Start commands for server components""" 
 19   
20 -class ServerControl(BaseControl):
21
22 - def _configure(self, parser):
23 sub = parser.sub() 24 blitz = parser.add(sub, self.blitz, help = "Start OMERO.blitz") 25 indexer = parser.add(sub, self.indexer, help = "Start OMERO.indexer")
26 #web = parser.add(sub, self.web, help = "Start OMERO.web") 27 #web.add_argument("arg", nargs="*") 28
29 - def _prop(self, data, key):
30 return data.properties.getProperty("omero."+key)
31
32 - def _checkIceConfig(self, args):
33 try: 34 args["--Ice.Config"] 35 except KeyError: 36 self.ctx.die(201, "No --Ice.Config provided") 37 pre = [] 38 post = [] 39 for arg in args.args: 40 if arg.startswith("-D"): 41 pre.append(arg) 42 else: 43 post.append(arg) 44 return pre,post
45
46 - def _xargsAndDebug(self, component, xargs_default):
47 component = str(component) 48 data = self.ctx.initData({}) 49 xargs = self._prop(data, component+".xargs") 50 if len(xargs) == 0: 51 xargs = xargs_default 52 debug = self._prop(data, component+".debug") 53 if debug == "true": 54 debug = True 55 else: 56 debug = False 57 return xargs, debug
58
59 - def help(self, args = None):
60 self.ctx.out("Start the blitz server -- Reads properties via omero prefs")
61
62 - def blitz(self, args):
63 pre, post = self._checkIceConfig(args) 64 xargs, debug = self._xargsAndDebug("blitz", ["-Xmx400M"]) 65 blitz_jar = os.path.join("lib","server","blitz.jar") 66 command = pre+["-jar",blitz_jar]+post 67 omero.java.run(command, debug=debug, xargs=xargs, use_exec = True)
68
69 - def indexer(self, args):
70 pre, post = self._checkIceConfig(args) 71 xargs, debug = self._xargsAndDebug("indexer", ["-Xmx256M"]) 72 blitz_jar = os.path.join("lib","server","blitz.jar") 73 omero.java.run(pre+["-jar",blitz_jar,"ome.fulltext"]+post, debug=debug, xargs=xargs, use_exec = True)
74 75 #def web(self, args): 76 # sys.stderr.write("Starting django... \n") 77 # omero_web = self.ctx.dir / "lib" / "python" / "omeroweb" 78 # os.chdir(str(omero_web)) 79 # import omeroweb.settings as settings 80 # deploy = getattr(settings, 'APPLICATION_SERVER', 'default') 81 # if deploy == 'fastcgi': 82 # cmd = "python manage.py runfcgi workdir=./" 83 # cmd += " method=prefork socket=%(base)s/var/django_fcgi.sock" 84 # cmd += " pidfile=%(base)s/var/django.pid daemonize=false" 85 # cmd += " maxchildren=5 minspare=1 maxspare=5 maxrequests=400" 86 # django = (cmd % {'base': self.ctx.dir}).split()+list(args.arg) 87 # else: 88 # django = [sys.executable, "manage.py","runserver","--noreload"]+list(args.arg) 89 # sys.stderr.write(str(django) + '\n') 90 # os.execvpe(sys.executable, django, os.environ) 91 92 try: 93 register("server", ServerControl, HELP) 94 except NameError: 95 if __name__ == "__main__": 96 cli = CLI() 97 cli.register("server", ServerControl, HELP) 98 cli.invoke(sys.argv[1:]) 99