Exemplo n.º 1
0
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'])
Exemplo n.º 2
0
 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
Exemplo n.º 3
0
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)
Exemplo n.º 4
0
 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'}
Exemplo n.º 5
0
 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
Exemplo n.º 6
0
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)
Exemplo n.º 7
0
 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'}
Exemplo n.º 8
0
 def delete(self):
     with connection.connect_db() as (db):
         db.execute_and_commit(['DELETE FROM subtask_table'])
         return {'code': 'success'}
     return {'code': 'error'}