Пример #1
0
def cmd_update_node(cparams):
    try:
        ut.log('In cmd_update_node:', cparams)
        if 'nid' not in cparams:
            raise Exception('nid is required to update')
        if 'type' not in cparams or cparams['type'] is None:
            cparams['type'] = 'th'
        if 'zone' not in cparams or cparams['zone'] is None:
            cparams['zone'] = 'std'
        if checkKwds(cparams):
            kwds_str = cparams['kwds']
            kwds = kwds_str.split(',')
            del cparams['kwds']
            cparams['kwds'] = kwds
        if checkMarkers(cparams):
            m_str = cparams['markers']
            m = m_str.split(',')
            del cparams['markers']
            cparams['markers'] = m
        # Expects nid to update
        mresp = mongo.update(cparams)
        #ut.log(mresp[1])
        if mresp[0] is True:
            return {'err': True, 'msg': '[MONGO CLIENT EXCEPTION]' + mresp[1]}
        else:
            # No need to inser to Neo
            return {'val': 'SUCCESS'}
    except Exception as e:
        return {'err': True, 'msg': str(e)}
Пример #2
0
def cmd_find_by(cparams):
    ut.log('In cmd_find_by:', cparams)
    """
    limit = 100
    if cparams is not None and 'limit' in cparams:
        limit = cparams['limit']
    resp = neo.select_all(int(limit))
    p_resp = parse_neo_resp_list(resp)
    """

    if checkKwds(cparams):
        kwds_str = cparams['kwds']
        kwds = kwds_str.split(',')
        del cparams['kwds']
        cparams['kwds'] = {'$in': kwds}

    if checkMarkers(cparams):
        kwds_str = cparams['markers']
        kwds = kwds_str.split(',')
        del cparams['markers']
        cparams['markers'] = {'$in': kwds}
    ut.log(cparams)
    resp = mongo.read(cparams)
    if resp[0] is True:
        return {'err': True, 'msg': resp[1]}
    else:
        flist = []
        for ritem in resp[1]:
            ritem['nid'] = str(ritem['_id'])
            del ritem['_id']
            flist.append(ritem)
        return {'list': flist}
Пример #3
0
def run():
    context = ('thea/core/ssl_cert/server.crt',
               'thea/core/ssl_cert/server.key')
    ut.log('Started THEA server')
    str = """
        o    o
         \__/,'`.,'`._,
        /,-. \  /    <_,
        > - )/ /     <_,
        \__,/ /      ,'
        _/_(_/______/__
       ( (_ ,,--'---^,\\
   ___/ \   / ___,'
  /,---' \\ \_   `.
  `      /    `.   \\
         | thea  \_  \\
         |/\/\/\| `. \\
          \ |  /\   `.`.
           \( /\ \    `.`.
            | \ `.`._,  `-\_,
            | /|  `-' 
            |/\(
            |(_\\_
            | / \ (
           /_/   \_\\
"""
    ut.log(str)
    app.run(port=3737, ssl_context=context, threaded=True, debug=False)
Пример #4
0
def cmd_create_node(cparams):
    try:
        ut.log('In cmd_create_node:', cparams)
        # cparams['nid'] = gen_uuid()
        if 'type' not in cparams or cparams['type'] is None:
            cparams['type'] = 'th'
        if 'zone' not in cparams or cparams['zone'] is None:
            cparams['zone'] = 'std'
        if checkKwds(cparams):
            kwds_str = cparams['kwds']
            kwds = kwds_str.split(',')
            del cparams['kwds']
            cparams['kwds'] = kwds
        if checkMarkers(cparams):
            m_str = cparams['markers']
            m = m_str.split(',')
            del cparams['markers']
            cparams['markers'] = m

        # MONGO INSERT
        mresp = mongo.insert(cparams)
        if mresp[0] is True:
            return {'err': True, 'msg': '[MONGO CLIENT EXCEPTION]' + mresp[1]}
        else:
            neorec = {'nid': str(mresp[1].inserted_id)}

            # NEO INSERT
            resp = neo.insert_node(neorec)
            #if resp[0] != 0:
            #    raise Exception(str(resp))
            return {'val': str(mresp[1].inserted_id)}
    except Exception as e:
        return {'err': True, 'msg': str(e)}
Пример #5
0
def delete_all():
    try:
        db.mnet.remove({})
        #ut.log('\nDeletion successful\n')
        return False, None
    except Exception as e:
        ut.log(str(e))
        return True, str(e)
Пример #6
0
def delete_one(cparams):
    try:
        resp = db.mnet.delete_one({"_id": ObjectId(cparams['nid'])})
        #ut.log('\nDeletion successful\n')
        return False, resp
    except Exception as e:
        ut.log(str(e))
        return True, str(e)
Пример #7
0
def insert(cparams):
    try:
        resp = db.mnet.insert_one(cparams)
        #ut.log('\n[MONGO_CLIENT] Inserted data successfully\n')
        return False, resp
    except Exception as e:
        ut.log(str(e))
        return True, str(e)
Пример #8
0
 def find(self, **params):
     ut.log('In g.find()')
     resp = cm.cmd_find_by(params)
     nlist = []
     for rec in resp['list']:
         nd = Node(e=True)
         nd.dat = rec
         nlist.append(nd)
     return nlist
Пример #9
0
def cmd_delete_all(cparams):
    try:
        ut.log('In cmd_delete_all:', cparams)
        neo.delete_all()
        mresp = mongo.delete_all()
        return {'val': "SUCCESS"}

    except Exception as e:
        return {'err': True, 'msg': str(e)}
Пример #10
0
def update(cparams):
    try:
        nid = cparams['nid']
        del cparams['nid']
        db.mnet.update_one({"_id": ObjectId(nid)}, {"$set": cparams})
        #ut.log("\nRecords updated successfully\n")
        return False, None
    except Exception as e:
        ut.log(str(e))
        return True, str(e)
Пример #11
0
def cmd_delete_node(cparams):
    ut.log('In cmd_delete_one:', cparams)
    neo.delete_by_nid(cparams['nid'])
    #if nresp[0] != 0:
    #    raise Exception(str(nresp))
    mresp = mongo.delete_one(cparams)
    if mresp[0] is True:
        return {'err': True, 'msg': mresp[1]}
    else:
        return {'val': str(mresp[1].deleted_count)}
Пример #12
0
def commandBus():
    try:
        resp = dict(state=0, err=False)
        body = request.get_json()
        code = "resp ['data']=" + body['cmd']
        ut.log("Executing->", code)
        exec(code)
    except Exception as ex:
        ut.log('Error in commandBus: ', ex)
        resp = {"err": True, "msg": str(ex)}
    return jsonify(resp)
Пример #13
0
def cmd_create_conn(cparams):
    try:
        ctype = 'std'
        st = 50
        if 'type' in cparams and cparams['type'] is not None:
            ctype = cparams['type']
        if 'st' in cparams:
            st = cparams['st']
        resp = neo.insert_rel_by_nid(cparams['src'], cparams['dest'], st, ctype, 1)
        ut.log(resp)
        return {'val': resp}
    except Exception as e:
        return {'err': True, 'msg': str(e)}
Пример #14
0
def read_multi_by_nid(cparams):
    try:
        obj_id_list = []
        for nid in cparams:
            obj_id_list.append(ObjectId(nid))

        rlist = []
        recs = db.mnet.find({"_id": {"$in": obj_id_list}})
        for rec in recs:
            rlist.append(rec)
        return False, rlist
    except Exception as e:
        ut.log(str(e))
        return True, str(e)
Пример #15
0
def read(cparams):
    try:
        if cparams is not None and 'nid' in cparams:
            id = cparams['nid']
            del cparams['nid']
            cparams['_id'] = ObjectId(id)

        rlist = []
        recs = db.mnet.find(cparams)
        for rec in recs:
            rlist.append(rec)
        return False, rlist
    except Exception as e:
        ut.log(str(e))
        return True, str(e)
Пример #16
0
def cmd_find_all(cparams=None):
    ut.log('In cmd_fetch_all:', cparams)
    """
    limit = 100
    if cparams is not None and 'limit' in cparams:
        limit = cparams['limit']
    resp = neo.select_all(int(limit))
    p_resp = parse_neo_resp_list(resp)
    """
    resp = mongo.read(cparams)
    if resp[0] is True:
        return {'err': True, 'msg': resp[1]}
    else:
        flist = []
        for r in resp[1]:
            r['nid'] = str(r['_id'])
            del r['_id']
            flist.append(r)
        return {'list': flist}
Пример #17
0
from pymongo import MongoClient
from bson.objectid import ObjectId
import thea.core.utils as ut

import os
server_host = '192.168.1.119' if os.environ[
    'thea_server'] is None else os.environ['thea_server']
MONGO_HOST = '{}:27017'.format(server_host)
# creating connections for communicating with Mongo DB
ut.log('Connecting to MongoDB at {}'.format(MONGO_HOST))
client = MongoClient(MONGO_HOST)
ut.log('Connected to MongoDB')

db = client.MnetPioneer


# Function to insert data into mongo db
def insert(cparams):
    try:
        resp = db.mnet.insert_one(cparams)
        #ut.log('\n[MONGO_CLIENT] Inserted data successfully\n')
        return False, resp
    except Exception as e:
        ut.log(str(e))
        return True, str(e)


# Function to update record to mongo db
def update(cparams):
    try:
        nid = cparams['nid']
Пример #18
0
 def delete_all(self):
     ut.log('delete_all')
     return cm.cmd_delete_all(None)
Пример #19
0
 def __init__(self, **params):
     ut.log('Graph object initialized')
     super().__init__(**params)
Пример #20
0
 def log(self):
     ut.log(self.__repr__())
     return self
Пример #21
0
from neo4j.v1 import GraphDatabase
import thea.core.utils as ut
"""
refer: https://neo4j.com/docs/api/python-driver/current/
"""
# password = os.getenv("NEO4J_PASSWORD")

import os
server_host = '192.168.1.119' if os.environ[
    'thea_server'] is None else os.environ['thea_server']
NEO_URL = 'bolt://{}'.format(server_host)
ut.log('Connecting to Neo4j at {}'.format(NEO_URL))
driver = GraphDatabase.driver(NEO_URL)
ut.log('Connected to Neo4j')


class GraphDb:
    def __init__(self):
        self.sess = driver.session()

    def fire_cypher_single(self, cyp, params):
        r = self.sess.run(cyp, params)
        rec = r.single()
        if rec is None:
            raise Exception("Unexpected result None.")
        dic = {}
        for kv in rec[0].items():
            dic[kv[0]] = kv[1]
        return dic

    def fire_cypher_multi(self, cyp, params):