예제 #1
0
 def run(self):
     self.contractorLayer    = core.getCoreInstance().getInstance('CONTRACTOR')
     self.scheduler          = core.getCoreInstance().getInstance('SCHEDULER')
     self._revision          = 0
     self.readInfo()
     self._setReady()
     while self._running:
         time.sleep(0.5)
         self.readInfo()
예제 #2
0
파일: interface.py 프로젝트: Andrean/lemon
 def run(self):
     self._taskManager   = core.getCoreInstance().getInstance('TASK_MANAGER')
     self._agentID       = core.getCoreInstance().getItem('agent')['__id']
     self._entityManager = core.getCoreInstance().getInstance('ENTITY_MANAGER')
     self._createConnection(self._server_addr, self._server_port)
     self._setReady()
     
     while(self._running):
         self._process()
         time.sleep(0.01)
예제 #3
0
파일: scheduler.py 프로젝트: Andrean/lemon
 def run(self):
     
     self._storage       = core.getCoreInstance().getInstance('STORAGE')
     self._taskManager   = core.getCoreInstance().getInstance('TASK_MANAGER')
     self._logger.info('Scheduler started')
     self._loadStorage()
     self._setReady()
     it  = 0
     while self._running:
         self._process()
         time.sleep(CHECK_INTERVAL)
         it += CHECK_INTERVAL
         if it > STORE_INTERVAL :
             it = 0
             self._store_schedule()
예제 #4
0
파일: interface.py 프로젝트: Andrean/lemon
 def __init__(self, taskManager):
     '''
     Constructor
     '''
     self._taskManager   = taskManager
     self._commands  = {}
     self._revision  = 0
     self._entityManager = core.getCoreInstance().getInstance('ENTITY_MANAGER')       
     
     '''
     config    = {
         'item-id':     {
                         '__type': type,
                         '__tags': [tags],
                         '__added': time,
                         '__revision': autoincrement number   
                         'content' : {item-content}
                         }        
                 }
     '''
     '''
     self._commands  = {'identifikator': {     '__agents': 'all', 
                                               '__add_timestamp': time.time(),\
                                               '__type':'add_scheduled_task', 
                                               'content': {
                                                            'func': 'testPrint',
                                                            'name': 'testPrint',
                                                            'interval': 5*60,
                                                            'start_time': None,
                                                            'kwargs': {'los': 'test', 't': True}
                                                           }}}
     '''
     self._current   = {}
     self._refresh   = time.time()
예제 #5
0
def sync(t, data):
    i       = t._parent.interfaceInstance
    recv    = i.get('cfg')
    cfg = recv['cfg']
    new_revision = recv['v']
    print("new_revision is "+str(new_revision))
    e   = core.getCoreInstance().getInstance('ENTITY_MANAGER')
    e.updateList(cfg, new_revision)
    i._logger.info("Synchronized configuration with server")
예제 #6
0
 def _update(self):
     self._cmd   = []
     self._st = core.getCoreInstance().getInstance('STORAGE').getInstance()
     self._st.set_default_collection('commands')
     for cmd in self._st.find({'_new': True}):
         cmd['_new']  = False
         self._st.save(cmd)
         cmd['_new'] = None
         cmd['_id'] = None
         self._cmd.append(cmd)
예제 #7
0
 def run(self):
     self._storage       = core.getCoreInstance().getInstance('STORAGE')
     if not os.path.exists(self.contractors_path):
         os.makedirs(self.contractors_path)
     self._load()
     self._setReady()
     self._logger.info("Layer started")
     while self._running:
         time.sleep(0.01) 
     self._logger.info("Layer stopped")
예제 #8
0
 def run(self):
     cr      = core.getCoreInstance()
     self._storageManager     = cr.getInstance('STORAGE')
     self._scheduler          = cr.getInstance('SCHEDULER')
     self._setReady()
     self._logger.info("Task manager started")
     while(self._running):
         if self._checkForTasks():
             self._process()
         else:
             time.sleep(0.1)
     self._logger.info('Task Manager was successfully shutdown')
예제 #9
0
파일: tasks.py 프로젝트: Andrean/lemon
def refreshServerStat(tm, *args):
    print('REFRESH TEST')
    st  = tm._storageManager.getInstance()
    st.set_default_collection('server')
    c   = core.getCoreInstance()
    for name, inst in c._instances.items():
        q   = {'component': name}
        stat    = {}
        for k, v in inst.items():
            stat[k] = str(v)
        doc = {'component': name, 'stat': stat}
        st.update(q, doc)
예제 #10
0
    def run(self):
        c = core.getCoreInstance()
        self.storageInstance = c.getInstance("STORAGE")
        self.interfaceInstance = c.getInstance("INTERFACE")
        self.contractorLayer = c.getInstance("CONTRACTOR")
        self.scheduler = c.getInstance("SCHEDULER")
        self.agentID = c.getItem("agent")["__id"]
        self._pool.start()

        self._setReady()
        self._logger.info("Task Manager started")
        while self._running:
            self._process()
        self._logger.info("Task Manager shutdown")
예제 #11
0
파일: server.py 프로젝트: Andrean/lemon
 def run(self):
     try:
         _core   = core.getCoreInstance()
         self._tmInstance    = _core.getInstance('TASK_MANAGER')
         self.cmdInterface   = interface.CommandInterface(self._tmInstance)
         agentHandler        = interface.xmlrpcHandler(self._tmInstance, self.cmdInterface)
         self._xmlrpcListener.register_instance(agentHandler)
         self._setReady()
         self._logger.info('xmlrpc listener starting')
         self._xmlrpcListener.serve_forever()
                     
     except XMLRPCExitException:
         print("xmlrpc server shutdown")
     self._logger.info('server instance with id {0} was stopped'.format(self._getId()))
예제 #12
0
 def _update(self):
     stManager   = core.getCoreInstance().getInstance('STORAGE')
     st          = stManager.getInstance()
     st.set_default_collection('configuration')
     self._config = []
     for item in st.find({}):
         if item['__type'] == 'revision':
             self.setRevision(item['__revision'])
             continue
         try:
             if item['__enabled'] is False:
                 continue
         except KeyError:
             continue
         self._config.append(item)
예제 #13
0
def sendSelfStat(t, kwargs):
    c       = core.getCoreInstance()
    agentID = t._parent.agentID
    i       = t._parent.interfaceInstance
    cLayer  = t._parent.contractorLayer
    scheduler   = t._parent.scheduler
    c_data  = cLayer.getStat()    
    info    = {'agent': {'__id': agentID, 'state': 'started'}}
    ip      = socket.gethostbyname(socket.gethostname())
    schedulerStat   = scheduler.getScheduledTask()
    info['agent']['scheduler']  = schedulerStat
    info['agent']['ip'] = ip
    info['agent']['version'] = (c.getStat())['agent']['version']
    info['agent']['instances']  = (c.getStat())['agent']['instances']
    info['data']    = c_data
    i.post(info)
예제 #14
0
 def __init__(self):
     self._tagList   = []
     self._st = core.getCoreInstance().getInstance('STORAGE').getInstance()
     self._st.set_default_collection('groups')
     for item in self._st.find({}):
         self._tagList.append(item)
예제 #15
0
 def __init__(self):
     self._st = core.getCoreInstance().getInstance('STORAGE').getInstance()
     self._st.set_default_collection('files')
예제 #16
0
 def __init__(self):
     self._cmd   = []
     self._st = core.getCoreInstance().getInstance('STORAGE').getInstance()
     self._st.set_default_collection('commands')
     for item in self._st.find({'_new': True}):
         self._cmd.append(item)        
예제 #17
0
def updateStat(t, kwargs):
    try:
        if kwargs['core']:
            core.getCoreInstance().updateStat()            
    except KeyError:
        pass