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

Source Code for Module omero.plugins.server

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