示例#1
0
    def dbcall():
        with dispatcher.node.db.open_session() as sess:
            q = sess.query(NodeState).filter(NodeState.key == consts.NSK_DEFAULT_ADDRESS)

            ns = q.first()

            if ns:
                addr = sess.query(DmailAddress).filter(DmailAddress.id == int(ns.value)).first()

                if addr:
                    sess.expunge(addr)
                    return addr

            addr = sess.query(DmailAddress).order_by(DmailAddress.id).limit(1).first()

            if addr:
                sess.expire_on_commit = False

                ns = NodeState()
                ns.key = consts.NSK_DEFAULT_ADDRESS
                ns.value = str(addr.id)
                sess.add(ns)

                sess.commit()

                sess.expunge(addr)

            return addr
示例#2
0
    def dbcall():
        with dispatcher.node.db.open_session() as sess:
            q = sess.query(NodeState).filter(NodeState.key == consts.NSK_DEFAULT_ADDRESS)

            ns = q.first()

            if not ns:
                ns = NodeState()
                ns.key = consts.NSK_DEFAULT_ADDRESS
                sess.add(ns)

            if type(dbid) is int:
                sbid = str(dbid)

            ns.value = dbid

            sess.commit()