def load_agents(): with connection.connect_db() as db: db.execute_and_commit(['delete from local_table']) db.execute_and_commit(['delete from servtag_table']) db.execute_and_commit(['delete from subtask_table']) try: modules = [] # Get agent path from local database paths = agent.get_local(agent.local_key) if paths: paths = loads(paths) modules = filter(lambda x: len(x) > 0, paths) # Get agent path from local config file if agent.modules: modules += filter(lambda x: len(x) > 0 and x not in modules, agent.modules) # Execute each agent module for path in modules: try: execfile(path) except: pass except: print 'Load Agent Error' finally: with connection.connect_db() as db: db.execute_and_commit(['delete from local_table']) db.execute_and_commit(['delete from servtag_table']) db.execute_and_commit(['delete from subtask_table'])
def set_subtask_status(subtask_id, status): with connection.connect_db() as (db): db.execute_and_commit( ['UPDATE subtask_table SET status=? WHERE id=?'], [[(status, subtask_id)]]) return True return False
def unregister_service(service_name, version): try: with connection.connect_db() as (db): db.execute_and_commit( ['DELETE FROM servtag_table WHERE name=? AND version=?'], [[(service_name, version)]]) except Exception as e: print_exception(__name__, e)
def delete(self): args = self.reqparse_post.parse_args() if args: with connection.connect_db() as (db): subtask_id = args['id'] db.execute_and_commit(['DELETE FROM subtask_table WHERE id=?'], [[(subtask_id, )]]) return {'code': 'success', 'id': subtask_id} return {'code': 'error'}
def set_local(local_key, local_value): with connection.connect_db() as (db): result = db.query("SELECT key FROM local_table WHERE key='%s'" % local_key) if result: db.execute_and_commit( ['UPDATE local_table SET value=? WHERE key=?'], [[(local_value, local_key)]]) else: db.execute_and_commit(['INSERT INTO local_table VALUES(?, ?)'], [[(local_key, local_value)]]) return True return False
def register_service(service_name, version): try: with connection.connect_db() as (db): # print '%s %s '% (service_name, version) res = db.query( "SELECT name FROM servtag_table WHERE name='%s' AND version='%s'" % (service_name, version)) if not res: db.execute_and_commit( ['INSERT INTO servtag_table VALUES (?, ?)'], [[(service_name, version)]]) except Exception as e: print_exception(__name__, e)
def post(self): args = self.reqparse_post.parse_args() if args: subtask = { 'id': args['id'], 'name': args['name'], 'args': args['args'], 'serv_id': args['serv_id'], 'task_id': args['task_id'], 'serv_name': args['serv_name'], 'serv_version': args['serv_version'], 'status': args['status'] } with connection.connect_db() as db: exist = db.query("SELECT * FROM subtask_table WHERE id='%s'" % args['id']) if not exist: try: global server_entry print("accept request. . .\n") print '++++++++++++++++++++++++++++++++++++++++++++++++++++++' print("server name: ", subtask['serv_name']) print '++++++++++++++++++++++++++++++++++++++++++++++++++++++' print("start thread. . .\n") entry_key = subtask['serv_name'] + subtask[ 'serv_version'] if server_entry.has_key(entry_key): entry = server_entry[entry_key] db.execute_and_commit([ "INSERT INTO subtask_table VALUES (?, ?, ?, ?, ?, ?, ?, ?)" ], [[( subtask['id'], subtask['name'], subtask['args'], subtask['serv_id'], subtask['task_id'], subtask['serv_name'], subtask['serv_version'], subtask['status'], )]]) SimpleThread( entry, subtask['id'], loads(subtask['args'].replace( "'", '"').replace('u', '')) if subtask['args'] else '').start() return {'code': 'success', 'id': subtask['id']} except: pass return {'code': 'error'}
def delete(self): with connection.connect_db() as (db): db.execute_and_commit(['DELETE FROM subtask_table']) return {'code': 'success'} return {'code': 'error'}