def initialise(self,frontend,scaffold,cookie,info): self.scaffold = scaffold self.frontend = frontend self.frontend_context = piw.tsd_snapshot() self.garbage_context = self.__create_context('eigend-garbage',None,False) piw.tsd_thing(self.fgthing) self.stdio = (sys.stdout,sys.stderr) if not self.opts.noredirect: sys.stdout = session.Logger() sys.stderr = sys.stdout self.backend_context = self.__create_context('eigend-backend',None,False) def bginit(): self.agent = Agent(self) piw.tsd_thing(self.bgthing) self.collector = GarbageCollector(self.scaffold,self.garbage_context) self.collector.start() self.bugfiler.start(cookie,info) self.run_background(bginit)
def start_http(self): self.stop_http() port = self[5].get_value() if port: print "starting up HTTP server on port", port self.snapshot = piw.tsd_snapshot() server = InterruptableHTTPServer(self, self.snapshot, '0.0.0.0', port, IlluminatorRequestHandler) server.start() self.httpServer = server
def run_bg_sync(self,func,*args,**kwds): s = piw.tsd_snapshot() try: piw.setenv(self.__env_bg.getenv()) piw.tsd_lock() try: return func(*args,**kwds) finally: piw.tsd_unlock() finally: s.install()
def server_opened(self): agent.Agent.server_opened(self) self.advertise('<language>') # startup stage server print "starting up stage server" self.snapshot = piw.tsd_snapshot() self.stageServer = stage_server.StageXMLRPCServer(self, self.snapshot, self.xmlrpc_server_port) self.stageServer.start() self.start_database()
def __run(self,ctx,func,*args,**kwds): current_context = piw.tsd_snapshot() try: ctx.install() piw.tsd_lock() try: return func(*args,**kwds) finally: piw.tsd_unlock() finally: current_context.install()
def __init__(self, backend, ordinal): self.__backend = backend self.__registry = workspace.get_registry() self.__foreground = piw.tsd_snapshot() agent.Agent.__init__(self, signature=upgrade_agentd, names='eigend', protocols='agentfactory setupmanager set', container=3, ordinal=ordinal, vocab=self.__registry.get_vocab()) self.ordinal = ordinal self.uid = '<eigend%d>' % ordinal self.__workspace = workspace.Workspace(piw.tsd_scope(), self.__backend, self.__registry) self[2] = self.__workspace constraint = 'or([%s])' % ','.join([ '[matches([%s],%s)]' % (m.replace('_', ','), m) for m in self.__registry.modules() ]) self.add_verb2( 1, 'create([un],None,role(None,[concrete,issubject(create,[role(by,[instance(~self)])])]))', callback=self.__uncreateverb) self.add_verb2(2, 'create([],None,role(None,[abstract,%s]))' % constraint, callback=self.__createverb) self.add_verb2(3, 'save([],None,role(None,[abstract]))', self.__saveverb) self.add_verb2(4, 'load([],None,role(None,[abstract]))', self.__loadverb) self.add_verb2( 5, 'set([],None,role(None,[abstract,matches([startup])]),role(to,[abstract]))', self.__set_startup) self.add_verb2( 6, 'create([],None,role(None,[abstract,%s]),role(in,[proto(rigouter)]))' % constraint, callback=self.__rigcreateverb) self.add_verb2( 7, 'create([un],None,role(None,[concrete,issubjectextended(create,by,[role(by,[proto(rigouter)])])]))', callback=self.__riguncreateverb) piw.tsd_server(self.uid, self)
def run_background(self,func,*args,**kwds): current_context = piw.tsd_snapshot() try: piw.setenv(self.backend_context.getenv()) piw.tsd_lock() try: return func(*args,**kwds) finally: piw.tsd_unlock() finally: current_context.install()
def server_opened(self): agent.Agent.server_opened(self) self.advertise('<language>') self.database.start('<main>') # startup stage server print "starting up stage server" self.snapshot = piw.tsd_snapshot() self.stageServer = stage_server.stageXMLRPCServer( self, self.snapshot, self.xmlrpc_server_port) self.stageServer.start() print "server proxy", "http://0.0.0.0:" + str(self.xmlrpc_server_port) self.dummyStageClient = xmlrpclib.ServerProxy( "http://0.0.0.0:" + str(self.xmlrpc_server_port))
def __init__(self,ordinal,path,icon=None): self.__foreground = piw.tsd_snapshot() agent.Agent.__init__(self,signature=upgrade_agentd,names='eigend', protocols='agentfactory setupmanager set', icon = icon, container = 3, ordinal = ordinal) self.ordinal = ordinal self.uid = '<eigend%d>' % ordinal self.dynamic = DynamicPluginList(self) self.node = random.randrange(0, 1<<48L) | 0x010000000000L self[2] = self.dynamic self.registry = registry.Registry() for p in path: self.registry.scan_path(p,AgentFactory) self.registry.dump(lambda m: m.dump()) constraint = 'or([%s])' % ','.join(['[matches([%s],%s)]' % (m.replace('_',','),m) for m in self.registry.modules()]) self.add_verb2(1,'create([un],None,role(None,[concrete,issubject(create,[role(by,[cnc(~self)])])]))',callback=self.__destroy) self.add_verb2(2,'create([],None,role(None,[abstract,%s]))' % constraint, callback=self.__create) self.add_verb2(3,'save([],None,role(None,[abstract]))', self.__saveverb) self.add_verb2(4,'load([],None,role(None,[abstract]))', self.__loadverb) self.add_verb2(5,'set([],None,role(None,[abstract,matches([startup])]),role(to,[abstract]))', self.__set_startup) dbfile = resource.user_resource_file('global',resource.current_setup) if os.path.exists(dbfile): os.remove(dbfile) self.database = state.open_database(dbfile,True) self.trunk = self.database.get_trunk() upgrade.set_version(self.trunk,version.version) self.flush() self.index = index.Index(self.factory,False) self.__load_queue = [] self.__load_result = None self.__plugin_count = 0 self.__load_errors = None
def initialise(self, frontend, scaffold, cookie, info): try: self.scaffold = scaffold self.frontend = frontend self.frontend_context = piw.tsd_snapshot() self.garbage_context = self.__create_context('eigend-garbage') piw.tsd_thing(self.fgthing) self.stdio = (sys.stdout, sys.stderr) if not self.opts.noredirect: sys.stdout = session.Logger() sys.stderr = sys.stdout self.backend_context = self.__create_context('eigend-backend') resource.clean_current_setup() def bginit(): self.agent = agentd.Agent(self, 1) piw.tsd_thing(self.bgthing) self.collector = GarbageCollector(self.scaffold, self.garbage_context) self.collector.start() if os.getenv('PI_NOCHECK') is None: self.latest_release.start(cookie, info) self.run_background(bginit) except: print >> sys.__stdout__, 'Initialisation failure' traceback.print_exc(limit=None, file=sys.__stdout__) raise
def startup(self, m): self.browser = Browser(self.__address) self.snapshot = piw.tsd_snapshot() self.__event.set()
def make_locked_callable(callable): """ Convert a callable into one which runs in a locked loop """ snapshot = piw.tsd_snapshot() return lambda *args: call_locked_callable(snapshot,callable,*args)
def __init__(self): self.__env = piw.tsd_snapshot() self.__buffer = []
def __init__(self, backend): threading.Thread.__init__(self) self.__event = threading.Event() self.__context = piw.tsd_snapshot() self.__backend = backend self.__cookie = ""