コード例 #1
0
ファイル: base.py プロジェクト: xyzj/lump
    def check_scode(self, args, pb2rq=None, pb2msg=None):
        '''安全码验证'''
        # args = self.request.arguments
        if 'scode' not in args.keys():
            msg = self.init_msgws(msgws.CommAns())
            msg.head.if_st = 0
            msg.head.if_msg = 'Missing argument scode'
            return (False, None, msg)

        scode = args.get('scode')[0]

        leage = self.computing_security_code(scode)

        if leage:
            # 初始化应答消息
            if pb2msg is None:
                pb2msg = msgws.CommAns()
            msg = self.init_msgws(pb2msg)
            msg.head.if_st = 1

            if pb2rq is not None:
                rqmsg = pb2rq
                if 'pb2' not in args.keys():
                    msg = self.init_msgws(msgws.CommAns())
                    msg.head.if_st = 0
                    msg.head.if_msg = 'Missing argument pb2'
                    return (False, None, msg)
                pb2 = args.get('pb2')[0]

                try:
                    rqmsg = mx.decode_pb2(pb2,
                                          pb2obj=rqmsg,
                                          fmt=self._pb_format)
                    if rqmsg is None:
                        raise Exception
                    # if self._pb_format == 2:
                    #     rqmsg.ParseFromString(pb2)
                    # else:
                    #     rqmsg.ParseFromString(base64.b64decode(pb2.replace(' ', '+')))
                    msg.head.idx = rqmsg.head.idx
                    msg.head.paging_idx = rqmsg.head.paging_idx if rqmsg.head.paging_idx > 0 else 1
                    msg.head.paging_buffer_tag = rqmsg.head.paging_buffer_tag
                    msg.head.paging_num = rqmsg.head.paging_num if rqmsg.head.paging_num > 0 and rqmsg.head.paging_num <= self._page_num else self._page_num
                except Exception as ex:
                    msg.head.if_st = 46
                    return (None, None, msg)
            else:
                rqmsg = None
        else:
            rqmsg = None
            msg = self.init_msgws(msgws.CommAns())
            msg.head.if_st = 48
            msg.head.if_msg = 'scode is not leage.'

        return (leage, rqmsg, msg)
コード例 #2
0
ファイル: iftest.py プロジェクト: xyzj/lump
def test_slutimerget():
    global user_id
    print('=== slu timer get ===')
    url = baseurl + 'slutimerctl'
    rqmsg = msgif.rqSluTimerCtl()
    rqmsg.head.ver = 160328
    rqmsg.data_mark = 0
    # rqmsg.dt_start = mx.time2stamp('2016-12-10 00:00:00')
    # rqmsg.dt_end = mx.time2stamp('2017-06-20 00:00:00')
    rqmsg.tml_id.extend([1500003])
    # rqmsg.data_mark=1
    scode = mx.getMD5('{0}7ya54Gv5Y'.format(
        mx.stamp2time(time.time(), format_type='%Y%m%d%H')))
    # print(rqmsg)
    data = {
        "uuid": user_id,
        'pb2': base64.b64encode(rqmsg.SerializeToString())
    }
    # data = {'scode': scode, 'pb2': 'KICY26 LKzCAqNasaDlSs='}
    r = pm.request('POST', url, fields=data, timeout=300.0, retries=False)
    msg = msgif.CommAns()
    # msg.ParseFromString(r.data)
    msg.ParseFromString(base64.b64decode(r.data))
    print(msg)
    print(msg.head)
    print('post finish')
    time.sleep(0)
コード例 #3
0
ファイル: iftest.py プロジェクト: xyzj/lump
def test_sluitemadd():
    global user_id
    print('=== sluitemadd ===')
    url = baseurl + 'sluitemadd'
    rqmsg = init_head(msgif.rqSluitemAdd())
    rqmsg.slu_id = 1500001
    a = msgif.rqSluitemAdd.SluItemArgs()
    a.sluitem_barcode = 4
    rqmsg.sluitem_args.extend([a])
    b = msgif.rqSluitemAdd.SluItemArgs()
    b.sluitem_barcode = 3
    b.sluitem_alarm = 1
    b.sluitem_st = 1
    b.sluitem_rated_power.extend([1, 4, 19])
    rqmsg.sluitem_args.extend([b])
    data = {
        'uuid':
        user_id,
        # 'pb2': base64.b64encode(rqmsg.SerializeToString())
        'pb2':
        'CjIQyOQJKiQxOUEyNDY4QS1DMjRELTQwQkQtQjg5RC01NTc1QzVEMDY0MzWgBoDonL28HBDSCRpREHsY+gEqAwECAzABOgQBAQEBQAFIAVIEAQIDBFgEYgQAAAAAagluYW1lIHRlc3R4ZIIBCWxhbXAgdGVzdIkBAAAAAAAAWUCRAQAAAAAAAGlA'
    }
    r = pm.request('POST', url, fields=data, timeout=10.0, retries=False)
    msg = msgif.CommAns()
    msg.ParseFromString(base64.b64decode(r.data))
    print(msg)
    time.sleep(0)
コード例 #4
0
ファイル: iftest.py プロジェクト: xyzj/lump
def test_rtuctl():
    global user_id
    print('=== rtuctl ===')
    url = baseurl + 'rtuctl'
    rqmsg = msgif.rqRtuCtl()
    # rtudo = msgif.rqRtuCtl.RtuDo()
    # rtudo.opt = 1
    # rtudo.tml_id.extend([1000002, 1000003])
    # rtudo.loop_do.extend([1, 1, 0, 0, 2, 2])
    # rqmsg.rtu_do.extend([rtudo])
    # rtudo = msgif.rqRtuCtl.RtuDo()
    # rtudo.opt = 1
    # rtudo.tml_id.extend([1000002, 1000003])
    # rtudo.loop_do.extend([2, 2, 1, 1, 2, 2])
    # rqmsg.rtu_do.extend([rtudo])
    rtudo = msgif.rqRtuCtl.RtuDo()
    rtudo.opt = 2
    rtudo.tml_id.extend([1000001])
    rtudo.loop_do.extend([1, 0, 1, 1, 2, 2])
    rqmsg.rtu_do.extend([rtudo])
    data = {
        'uuid': user_id,
        'pb2': base64.b64encode(rqmsg.SerializeToString())
    }
    r = pm.request('POST', url, fields=data, timeout=10.0, retries=False)
    msg = msgif.CommAns()
    msg.ParseFromString(base64.b64decode(r.data))
    print(msg)
    time.sleep(0)
コード例 #5
0
    def post(self):
        legal, rqmsg, msg = yield self.check_arguments(msgws.rqSubmitAlarm(),
                                                       msgws.CommAns(),
                                                       use_scode=1)
        if legal:
            try:
                for av in rqmsg.alarm_view:
                    try:
                        sfilter = 'jkdb.rep.alarm.{0}.{1}.{2}.{3}'.format(
                            av.dt_create, av.is_alarm, av.err_id, av.tml_id)
                        libiisi.send_to_zmq_pub(sfilter,
                                                av.SerializeToString())
                    except Exception as ex:
                        pass
                        # print(str(ex))
            except Exception as ex:
                logging.error(
                    base.format_log(self.request.remote_ip, str(ex),
                                    self.request.path, 0))
        else:
            logging.error(
                base.format_log(self.request.remote_ip, 'Security code error',
                                self.request.path, 0))

        # self.write('Done.')
        self.finish()
        del legal, rqmsg, msg
コード例 #6
0
    def post(self):
        args = self.request.arguments
        if 'scode' not in args.keys():
            msg = self.init_msgws(msgws.CommAns())
            msg.head.if_st = 0
            msg.head.if_msg = 'Missing argument scode'
        else:
            scode = args.get('scode')[0]

            leage = self.computing_security_code(scode)

            if legal:
                try:
                    try:
                        keyhead = self.get_argument('keyhead')
                        rqmsg = json.loads(self.get_argument('pb2'))
                    except:
                        keyhead = 'tcs.unknow'
                    sfilter = '{0}.{1}'.format(keyhead, rqmsg['head']['cmd'])
                    libiisi.send_to_zmq_pub(sfilter, rqmsg)
                except Exception as ex:
                    logging.error(
                        base.format_log(self.request.remote_ip, str(ex),
                                        self.request.path, 0))
            else:
                logging.error(
                    base.format_log(self.request.remote_ip,
                                    'Security code error', self.request.path,
                                    0))

        # self.write('Done.')
        self.finish()
        del legal, rqmsg, msg
コード例 #7
0
ファイル: iftest.py プロジェクト: xyzj/lump
def test_ipcsubmit():
    global user_id
    print('=== ipc submit ===')
    lstcmd = (
        'ipc.verf.get',
        'ipc.lscmd.get',
        'ipc.date.get',
        'ipc.time.get',
        'ipc.qudat.get',
    )  # 'ipc.datetime.set')
    url = baseurl + 'ipcctl'
    for cmd in lstcmd:
        rqmsg = msgif.rqIpcCtl()
        rqmsg.dev_id.extend(['901001000001'])
        rqmsg.ctl_cmd = cmd
        if cmd == 'ipc.datetime.set':
            rqmsg.dev_datetime = int(time.time())
        scode = mx.getMD5('{0}fendangao'.format(
            mx.stamp2time(time.time(), format_type='%Y%m%d%H')))
        data = {
            'scode': scode,
            'pb2': base64.b64encode(rqmsg.SerializeToString())
        }
        r = pm.request('POST', url, fields=data, timeout=10.0, retries=False)
        msg = msgif.CommAns()
        msg.ParseFromString(base64.b64decode(r.data))
        time.sleep(15)
    print('ipc submit finish')
    time.sleep(0)
コード例 #8
0
    def post(self):
        legal, rqmsg, msg = yield self.check_arguments(msgws.UpdateSmsAlarm(),
                                                       msgws.CommAns(),
                                                       use_scode=1)

        if legal:
            # 删除原始记录
            # for a in rqmsg.record_id:
            #     strsql = '''delete from {0}_data.record_msg_new where record_id={1}'''.format(
            #         self._db_name, a)
            strsql = '''delete from {0}.record_msg_new where record_id in ({1})'''.format(
                self._db_name_data,
                ','.join([str(a) for a in rqmsg.record_id]))
            cur = yield self.mydata_collector(strsql, need_fetch=0)
            if cur is None:
                msg.head.if_st = 45
            # 写入发送记录
            strsql = '''INSERT INTO {0}.record_msg_log(`send_date`, `send_number`,`send_msg`) VALUES ({1},{2},"{3}")'''.format(
                self._db_name_data, mx.switchStamp(time.time()),
                rqmsg.user_tel, rqmsg.fault_msg)
            cur = yield self.mydata_collector(strsql, need_fetch=0)
            if cur is None:
                msg.head.if_st = 45

        self.write(mx.code_pb2(msg, self._go_back_format))
        self.finish()
        del msg, rqmsg
コード例 #9
0
    def post(self):
        args = self.request.arguments
        if 'givemejson' in args.keys():
            self._go_back_format = True

        pb2 = self.get_argument('pb2')
        rqmsg = msgws.rqUserDel()
        msg = msgws.CommAns()
        msg.head.ver = 160328
        msg.head.if_dt = int(time.time())
        try:
            rqmsg.ParseFromString(base64.b64decode(pb2))
            msg.head.idx = rqmsg.head.idx
            msg.head.if_st = 1
        except:
            msg.head.if_st = 46

        # 删除用户
        try:
            contents = ''
            #判断是否admin账户,是则返回异常,不是则可以删除
            if rqmsg.user != 'admin':
                # 检查用户名密码是否合法并且删除该用户
                strsql = 'delete from {0}.user_list where user_name="{1}" and user_password="******"'.format(
                    self._db_name, rqmsg.user.replace('"', ''),
                    rqmsg.pwd.replace('"', ''))
                cur = yield self.mydata_collector(strsql,
                                                  need_fetch=0,
                                                  need_paging=0)
                affected_rows = cur[0][0]
                if affected_rows > 0:
                    contents = 'delete user {0} from {1} success'.format(
                        rqmsg.user, self.request.remote_ip)
                    msg.head.if_st = 1
                    msg.head.if_msg = 'successfully delete'
                else:
                    contents = 'delete user {0} from {1} failed'.format(
                        rqmsg.user, self.request.remote_ip)
                    msg.head.if_st = 0
                    msg.head.if_msg = 'no such user or password wrong'
            else:
                contents = 'admin account can not delete'
                msg.head.if_st = 0
                msg.head.if_msg = "admin account can not delete"
            del cur, strsql
        except Exception as ex:
            msg.head.if_st = 0
            msg.head.if_msg = str(ex.message)

        self.write(mx.code_pb2(msg, self._go_back_format))
        self.finish()
        yield self.write_event(156,
                               contents,
                               2,
                               user_name=rqmsg.user,
                               app_unique=rqmsg.head.unique)
        del msg, rqmsg
コード例 #10
0
ファイル: iftest.py プロジェクト: xyzj/lump
def test_userlogout():
    global user_id
    print('=== logout ===')
    url = baseurl + 'userlogout'

    data = {'uuid': user_id}
    r = pm.request('POST', url, fields=data, timeout=10.0, retries=False)
    msg = msgif.CommAns()
    msg.ParseFromString(base64.b64decode(r.data))

    print(msg)
コード例 #11
0
    def post(self):
        args = self.request.arguments
        if 'givemejson' in args.keys():
            self._go_back_format = True

        pb2 = self.get_argument('pb2')
        rqmsg = msgws.rqUserEdit()
        msg = msgws.CommAns()
        msg.head.ver = 160328
        msg.head.if_dt = int(time.time())
        try:
            rqmsg.ParseFromString(base64.b64decode(pb2))
            msg.head.idx = rqmsg.head.idx
            msg.head.if_st = 1
        except:
            msg.head.if_st = 46

        try:
            # 检查用户名密码是否存在并更新
            strsql = 'update {0}.user_list set \
            user_password="******",user_real_name="{4}",user_phonenumber="{5}",user_remark="{6}" \
            where user_name="{1}" and user_password="******"'.format(
                self._db_name, rqmsg.user.replace('"', ''),
                rqmsg.pwd_old.replace('"', ''), rqmsg.pwd.replace('"', ''),
                rqmsg.fullname, rqmsg.mobile, rqmsg.remark)
            cur = yield self.mydata_collector(strsql,
                                              need_fetch=0,
                                              need_paging=0)
            affected_rows = cur[0][0]
            contents = ''
            if affected_rows > 0:
                contents = 'edit user {0} from {1} success'.format(
                    rqmsg.user, self.request.remote_ip)
                msg.head.if_st = 1
                msg.head.if_msg = 'successfully to edit user {0}'.format(
                    rqmsg.user)
            else:
                contents = 'edit user {0} from {1} failed, wrong username or password or nothing change'.format(
                    rqmsg.user, self.request.remote_ip)
                msg.head.if_st = 0
                msg.head.if_msg = 'Wrong username or password or nothing change'
        except Exception as ex:
            msg.head.if_st = 0
            msg.head.if_msg = str(ex.message)

        self.write(mx.code_pb2(msg, self._go_back_format))
        self.finish()
        yield self.write_event(155,
                               contents,
                               2,
                               user_name=rqmsg.user,
                               app_unique=rqmsg.head.unique)
        del msg, rqmsg
コード例 #12
0
    def post(self):
        legal, rqmsg, msg = yield self.check_arguments(msgws.CommAns(),
                                                       msgws.CommAns(),
                                                       use_scode=1)

        if legal:
            strsql = '''select count(1) from {0}.record_msg_log'''.format(
                self._db_name_data)
            record_total, buffer_tag, paging_idx, paging_total, cur = yield self.mydata_collector(
                strsql, need_fetch=1)
            if cur is not None:
                if cur[0][0] > 1000:
                    strsql = '''delete from {0}.record_msg_log where send_date<{1}'''.format(
                        self._db_name_data,
                        mx.switchStamp(int(time.time() - 31622400)))
                    cur = yield self.mydata_collector(strsql, need_fetch=0)
                    if cur is None:
                        msg.head.if_st = 45

        self.write(mx.code_pb2(msg, self._go_back_format))
        self.finish()
        del msg, rqmsg
コード例 #13
0
ファイル: iftest.py プロジェクト: xyzj/lump
def test_cleansms():
    global user_id
    print('=== clean sms ===')
    url = baseurl + 'cleansmsalarm'
    rqmsg = init_head(msgif.rqEluCtl())
    # rqmsg.tml_id.extend([1600001, 1600002])
    # rqmsg.loop_id.extend([1,2,5,8])
    scode = mx.getMD5('{0}7ya54Gv5Y'.format(
        mx.stamp2time(time.time(), format_type='%Y%m%d%H')))
    data = {'scode': scode, 'pb2': base64.b64encode(rqmsg.SerializeToString())}
    r = pm.request('POST', url, fields=data, timeout=10.0, retries=False)
    msg = msgif.CommAns()
    msg.ParseFromString(base64.b64decode(r.data))
    print(msg)
    time.sleep(0)
コード例 #14
0
ファイル: iftest.py プロジェクト: xyzj/lump
def test_mrudataget():
    global user_id
    print('=== mrudataget ===')
    url = baseurl + 'mrudataget'
    rqmsg = init_head(msgif.rqMruDataGet())
    rqmsg.tml_id.extend([1300001, 1300002])

    data = {
        'uuid': user_id,
        'pb2': base64.b64encode(rqmsg.SerializeToString())
    }
    r = pm.request('POST', url, fields=data, timeout=10.0, retries=False)
    msg = msgif.CommAns()
    msg.ParseFromString(base64.b64decode(r.data))
    print(msg)
    time.sleep(0)
コード例 #15
0
ファイル: iftest.py プロジェクト: xyzj/lump
def test_eluctl():
    global user_id
    print('=== elu ctl ===')
    url = baseurl + 'eluctl'
    rqmsg = init_head(msgif.rqEluCtl())
    rqmsg.tml_id.extend([1600001, 1600002])
    rqmsg.loop_id.extend([1, 2, 5, 8])
    data = {
        'uuid': user_id,
        'pb2': base64.b64encode(rqmsg.SerializeToString())
    }
    r = pm.request('POST', url, fields=data, timeout=10.0, retries=False)
    msg = msgif.CommAns()
    msg.ParseFromString(base64.b64decode(r.data))
    print(msg)
    time.sleep(0)
コード例 #16
0
ファイル: iftest.py プロジェクト: xyzj/lump
def test_ipcuplink():
    global user_id
    print('=== ipc uplink ===')
    url = baseurl + 'ipcuplink'
    scode = mx.getMD5('{0}fendangao'.format(
        mx.stamp2time(time.time(), format_type='%Y%m%d%H')))
    rqmsg = msgif.rqIpcUplink()
    rqmsg.dev_id = '902001000001'
    rqmsg.raw_string = '1,1'
    data = {'scode': scode, 'pb2': base64.b64encode(rqmsg.SerializeToString())}
    r = pm.request('POST', url, fields=data, timeout=10.0, retries=False)
    msg = msgif.CommAns()
    msg.ParseFromString(base64.b64decode(r.data))
    print(msg)
    print('ipc uplink finish')
    time.sleep(0)
コード例 #17
0
ファイル: iftest.py プロジェクト: xyzj/lump
def test_userdel():
    global user_id
    print('=== userdel===')
    url = baseurl + 'userdel'
    rqmsg = init_head(msgif.rqUserDel())
    rqmsg.user_name = 'wuning'

    data = {
        'uuid': user_id,
        'pb2': base64.b64encode(rqmsg.SerializeToString())
    }
    r = pm.request('POST', url, fields=data, timeout=10.0, retries=False)
    msg = msgif.CommAns()
    msg.ParseFromString(base64.b64decode(r.data))
    print(msg)
    time.sleep(0)
コード例 #18
0
ファイル: iftest.py プロジェクト: xyzj/lump
def test_rtudataget():
    global user_id
    print('=== rtudataget ===')
    url = baseurl + 'rtudataget'
    rqmsg = init_head(msgif.rqRtuDataGet())
    # for i in range(1000619):
    #     rqmsg.tml_id.append(i)
    rqmsg.tml_id.extend([1000619])
    data = {
        'uuid': user_id,
        'pb2': base64.b64encode(rqmsg.SerializeToString())
    }
    r = pm.request('POST', url, fields=data, timeout=10.0, retries=False)
    msg = msgif.CommAns()
    msg.ParseFromString(base64.b64decode(r.data))
    print(msg)
    time.sleep(0)
コード例 #19
0
ファイル: iftest.py プロジェクト: xyzj/lump
def test_sludataget():
    global user_id
    print('=== sludataget ===')
    url = baseurl + 'sludataget'
    rqmsg = init_head(msgif.rqSluDataGet())
    rqmsg.tml_id.extend([1500001])
    rqmsg.data_mark = 7
    rqmsg.sluitem_idx = 1
    rqmsg.sluitem_num = 5
    data = {
        'uuid': user_id,
        'pb2': base64.b64encode(rqmsg.SerializeToString())
    }
    r = pm.request('POST', url, fields=data, timeout=10.0, retries=False)
    msg = msgif.CommAns()
    msg.ParseFromString(base64.b64decode(r.data))
    print(msg)
    time.sleep(0)
コード例 #20
0
ファイル: iftest.py プロジェクト: xyzj/lump
def test_submitsms():
    global user_id
    print('=== sms submit ===')
    url = baseurl + 'submitsms'
    scode = mx.getMD5('{0}aUd2213F1'.format(
        mx.stamp2time(time.time(), format_type='%Y%m%d%H')))
    rqmsg = msgif.rqSubmitSms()
    rqmsg.tels.extend([18916788720])
    rqmsg.msg = u'tessdf第三方法ta'
    print(scode, base64.b64encode(rqmsg.SerializeToString()))
    data = {'scode': scode, 'pb2': base64.b64encode(rqmsg.SerializeToString())}
    # data = {'scode': scode, 'pb2': 'ChgIAhDI5AkaCXN1Ym1pdHNtc6AGwKfRwwUSCu62yro68vXwjkMaBTU1NTUK'}
    r = pm.request('POST', url, fields=data, timeout=10.0, retries=False)
    print(r.data)
    msg = msgif.CommAns()
    msg.ParseFromString(base64.b64decode(r.data))
    print(msg)
    print('ipc submit finish')
    time.sleep(0)
コード例 #21
0
    def post(self):
        legal, rqmsg, msg = yield self.check_arguments(msgws.rqSubmitSms(),
                                                       msgws.CommAns(),
                                                       use_scode=1)
        if legal:
            strsql = ''
            t = mx.switchStamp(int(time.time()))
            for tel in rqmsg.tels:
                if isinstance(tel, types.LongType):
                    strsql += 'insert into {0}.record_msg_new (date_create,rtu_name,user_phone_number,is_alarm) values ({1},"{2}",{3},2);'.format(
                        self._db_name_data, t,
                        u'{0}'.format(str(rqmsg.msg).strip()), tel)
            yield self.mydata_collector(strsql, need_fetch=0)
        # else:
        #     msg.head.if_st = 0
        #     msg.head.if_msg = 'Security code error'

        self.write(mx.code_pb2(msg, self._go_back_format))
        self.finish()
        del msg, rqmsg
コード例 #22
0
ファイル: iftest.py プロジェクト: xyzj/lump
def test_useradd():
    global user_id
    print('=== useradd===')
    url = baseurl + 'useradd'
    rqmsg = init_head(msgif.rqUserAdd())
    rqmsg.user = '******'
    rqmsg.pwd = 'hk'
    rqmsg.area_id = 7
    rqmsg.auth = 5
    print(base64.b64encode(rqmsg.SerializeToString()))
    print(rqmsg)
    data = {
        'uuid': user_id,
        'pb2': base64.b64encode(rqmsg.SerializeToString())
    }
    r = pm.request('POST', url, fields=data, timeout=10.0, retries=False)
    msg = msgif.CommAns()
    msg.ParseFromString(base64.b64decode(r.data))
    print(msg)
    time.sleep(0)
コード例 #23
0
    def post(self):
        pb2 = self.get_argument('pb2')
        rqmsg = msgws.rqUserEdit()
        msg = msgws.CommAns()
        msg.head.ver = 160328
        msg.head.if_dt = int(time.time())
        try:
            rqmsg.ParseFromString(base64.b64decode(pb2))
            msg.head.idx = rqmsg.head.idx
            msg.head.if_st = 1
        except:
            msg.head.if_st = 46

        try:
            strsql=''
            pd=''
            # 是否提交了用户旧密码
            if rqmsg.pwd_old:
                pd=' and user_pwd={0}'.format(rqmsg.pwd_old)

            strsql = 'update {0}.user_info set user_name="{1}",user_alias="{2}", user_pwd="{3}",user_remark="{4}" \
            where binary user_name="{5}" {6}'.format(self._db_uas,rqmsg.user,rqmsg.fullname, rqmsg.pwd,
                                                             rqmsg.remark,rqmsg.user,pd)
            cur = yield self.mydata_collector(strsql, need_fetch=0, need_paging=0)
            affected_rows = cur[0][0]
            if affected_rows > 0:
                yield self.add_eventlog(2, rqmsg.user_id,
                                        'successfully to edit user {0}'.format(rqmsg.user))
                msg.head.if_st = 1
                msg.head.if_msg = 'successfully to edit user {0}'.format(rqmsg.user)
            else:
                yield self.add_eventlog(2,rqmsg.user_id, 'Wrong username or password')
                msg.head.if_st = 40
                msg.head.if_msg = 'Wrong username or password'
        except Exception as ex:
            msg.head.if_st = 0
            msg.head.if_msg = str(ex.message)

        self.write(mx.convertProtobuf(msg))
        self.finish()
コード例 #24
0
    def post(self):
        pb2 = self.get_argument('pb2')
        rqmsg = msgws.rqUserDel()
        msg = msgws.CommAns()
        msg.head.ver = 160328
        msg.head.if_dt = int(time.time())
        try:
            rqmsg.ParseFromString(base64.b64decode(pb2))
            msg.head.idx = rqmsg.head.idx
            msg.head.if_st = 1
        except:
            msg.head.if_st = 46

        # 删除用户
        try:
            #判断是否admin账户,是则返回异常,不是则可以删除
            if rqmsg.user != 'admin':
                # 检查用户名密码是否合法并且删除该用户
                strsql = 'delete from {1}.user_info where user_name="{0}" '.format(rqmsg.user,self._db_uas)
                cur = yield self.mydata_collector(strsql, need_fetch=0, need_paging=0)
                affected_rows = cur[0][0]
                if affected_rows > 0:
                    yield self.add_eventlog(3, rqmsg.user_id,
                                            'successfully delete user {0}'.format(rqmsg.user))
                    msg.head.if_st = 1
                    msg.head.if_msg = 'successfully delete'
                else:
                    yield self.add_eventlog(3, rqmsg.user_id, 'Wrong no such user')
                    msg.head.if_st = 46
                    msg.head.if_msg = 'no such user'
            else:
                yield self.add_eventlog(3, rqmsg.user_id, 'Shall not remove the admin user')
                msg.head.if_st = 0
                msg.head.if_msg = "Shall not remove the admin user"
            del cur, strsql
        except Exception as ex:
            msg.head.if_st = 0
            msg.head.if_msg = str(ex.message)
        self.write(mx.convertProtobuf(msg))
        self.finish()
コード例 #25
0
ファイル: iftest.py プロジェクト: xyzj/lump
def test_sluctlnb():
    global user_id
    print('=== sluctl ===')
    url = baseurl + 'sluctlnb'
    rqmsg = init_head(msgif.rqSluCtlNB())
    rqmsg.barcode.extend([1])
    rqmsg.cmd_idx = 1
    rqmsg.operation_type = 3
    rqmsg.operation_order = 0
    rqmsg.addr_type = 4
    rqmsg.cmd_type = 4
    rqmsg.addrs.extend([1])
    rqmsg.cmd_mix.extend([1, 0, 0, 0])
    data = {
        'uuid': user_id,
        'pb2': base64.b64encode(rqmsg.SerializeToString())
    }
    r = pm.request('POST', url, fields=data, timeout=10.0, retries=False)
    msg = msgif.CommAns()
    msg.ParseFromString(base64.b64decode(r.data))
    print(msg)
    time.sleep(0)
コード例 #26
0
ファイル: iftest.py プロジェクト: xyzj/lump
def test_sluctl():
    global user_id
    print('=== sluctl ===')
    url = baseurl + 'sluctl'
    rqmsg = init_head(msgif.rqSluCtl())
    rqmsg.tml_id.extend([1500001])
    rqmsg.addr_type = 4
    rqmsg.cmd_type = 4
    rqmsg.addrs.extend([1, 2, 3])
    rqmsg.cmd_mix.extend([1, 0, 0, 0])
    data = {
        'uuid':
        user_id,
        # 'pb2': base64.b64encode(rqmsg.SerializeToString())
        'pb2':
        'ChwQyOQJKg84NjIyNTgwMzE0NDg5NjOgBv+pjdIFEgP7xlsgA1AFWgQBAQEBYgoKBAECAwQQBRhk'
    }
    r = pm.request('POST', url, fields=data, timeout=10.0, retries=False)
    msg = msgif.CommAns()
    msg.ParseFromString(base64.b64decode(r.data))
    print(msg)
    time.sleep(0)
コード例 #27
0
ファイル: iftest.py プロジェクト: xyzj/lump
def test_submittcs():
    global user_id
    print('=== sms submit ===')
    url = baseurl + 'submittcs'
    scode = mx.getMD5('{0}3a533ba0'.format(
        mx.stamp2time(time.time(), format_type='%Y%m%d%H')))
    rqmsg = msgif.rqSubmitSms()
    rqmsg.tels.extend([18916788720])
    rqmsg.msg = u'tessdf第三方法ta'
    print(scode, base64.b64encode(rqmsg.SerializeToString()))
    data = {'scode': scode, 'pb2': base64.b64encode(rqmsg.SerializeToString())}
    data = {
        'scode':
        scode,
        'pb2':
        'ChsIAhABGAEgASgBMAE6DXdsc3QucnR1LmEwMDASDwoFgYCA+AcQlU4aARQoAaIG5QGqAeEBCkDYXnvttdfoP9hee+211+g/11prrbXW6D/YXnvttdfoP9VUU0011eg/2WSTTTbZ6D/WVltttdXoP9VSSy211Og/EkC44YYbbrjRP7jhhhtuuNE/N9xwww03vD8ffPDBBx+8PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGkCcccYZZ5zJP5RRRhlllMk/v/3222+/rT+fffbZZ5+tPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAII/YAij/AToIAAAAAAEBAQFCCAAAAAAAAAAA'
    }
    r = pm.request('POST', url, fields=data, timeout=10.0, retries=False)
    print(r.data)
    msg = msgif.CommAns()
    msg.ParseFromString(base64.b64decode(r.data))
    print(msg)
    print('ipc submit finish')
    time.sleep(0)
コード例 #28
0
    def post(self):
        legal, rqmsg, msg = yield self.check_arguments(msgtcs.MsgWithCtrl(),
                                                       msgws.CommAns(),
                                                       use_scode=1)
        if legal:
            try:
                try:
                    keyhead = self.get_argument('keyhead')
                except:
                    keyhead = 'tcs.unknow'
                sfilter = '{0}.{1}'.format(keyhead, rqmsg.head.cmd)
                libiisi.send_to_zmq_pub(sfilter, rqmsg.SerializeToString())
            except Exception as ex:
                logging.error(
                    base.format_log(self.request.remote_ip, str(ex),
                                    self.request.path, 0))
        else:
            logging.error(
                base.format_log(self.request.remote_ip, 'Security code error',
                                self.request.path, 0))

        # self.write('Done.')
        self.finish()
        del legal, rqmsg, msg
コード例 #29
0
ファイル: iftest.py プロジェクト: xyzj/lump
def test_useredit():
    global user_id
    print('=== useredit ===')
    url = baseurl + 'useredit'
    rqmsg = init_head(msgif.rqUserEdit())
    rqmsg.user = '******'
    rqmsg.fullname = 'ad full'
    rqmsg.pwd = '123'
    rqmsg.area_id = 10
    rqmsg.auth = 15
    rqmsg.remark = '123'
    rqmsg.tel = '12345678901'
    rqmsg.code = 'xianggong'
    rqmsg.pwd_old = '123456'

    data = {
        'uuid': user_id,
        'pb2': base64.b64encode(rqmsg.SerializeToString())
    }  # "Cg4IARDI5AmgBomQtpv8KxIFdGVzdDEaBWNlc2hpIggxMjM0NTY3OHIINjI1NDc2MDA="}
    r = pm.request('POST', url, fields=data, timeout=10.0, retries=False)
    msg = msgif.CommAns()
    msg.ParseFromString(base64.b64decode(r.data))
    print(msg)
    time.sleep(0)
コード例 #30
0
ファイル: base.py プロジェクト: xyzj/lump
    def check_uuid(self, args, pb2rq=None, pb2msg=None):
        # args = self.request.arguments
        if 'uuid' not in args.keys():
            msg = self.init_msgws(msgws.CommAns())
            msg.head.if_st = 46
            msg.head.if_msg = 'Missing argument uuid'
            return (None, None, msg, '')

        user_uuid = args.get('uuid')[0]

        # 初始化应答消息
        if pb2msg is None:
            pb2msg = msgws.CommAns()
        msg = self.init_msgws(pb2msg)
        msg.head.if_st = 1

        if pb2rq is not None:
            rqmsg = pb2rq
            if 'pb2' not in args.keys():
                msg = self.init_msgws(msgws.CommAns())
                msg.head.if_st = 46
                msg.head.if_msg = 'Missing argument pb2'
                return (None, None, msg, '')
            pb2 = args.get('pb2')[0]
            try:
                rqmsg = mx.decode_pb2(pb2, pb2obj=rqmsg, fmt=self._pb_format)
                if rqmsg is None:
                    raise Exception
                # if self._pb_format == 2:
                #     rqmsg.ParseFromString(pb2)
                # else:
                #     rqmsg.ParseFromString(base64.b64decode(pb2.replace(' ', '+')))
                msg.head.idx = rqmsg.head.idx
                msg.head.paging_idx = rqmsg.head.paging_idx if rqmsg.head.paging_idx > 0 else 1
                msg.head.paging_buffer_tag = rqmsg.head.paging_buffer_tag
                msg.head.paging_num = rqmsg.head.paging_num if rqmsg.head.paging_num > 0 and rqmsg.head.paging_num <= self._page_num else self._page_num
            except:
                msg.head.if_st = 46
                return (None, None, msg, '')
        else:
            rqmsg = None

        user_data = None

        # 检查uuid长度
        if len(user_uuid) != 32:
            msg.head.if_st = 46

            # 检查uuid是否合法
        if user_uuid in libiisi.cache_user.keys():
            user_data = libiisi.cache_user.get(user_uuid)
            # self._db_name = user_data['user_db']
            if user_uuid in libiisi.cache_buildin_users:
                user_data['active_time'] = time.time()
                libiisi.cache_user[user_uuid] = user_data
                if user_data['is_buildin'] == 1:
                    a = self.url_pattern
                    if a[a.rfind('/') + 1:] not in user_data[
                            'enable_if'] and 'enable_all' not in user_data[
                                'enable_if']:
                        msg.head.if_st = 11
                        msg.head.if_msg = 'You do not have access to this interface'
                        user_data = None
            else:
                if user_data['remote_ip'] != self.request.remote_ip:
                    if not (rqmsg is not None and user_data['source_dev'] == 3
                            and user_data['unique'] == rqmsg.head.unique):
                        del libiisi.cache_user[user_uuid]
                        contents = 'User source ip is illegal'
                        msg.head.if_st = 12
                        msg.head.if_msg = contents
                        self.write_event(123,
                                         contents,
                                         1,
                                         user_name=user_data['user_name'],
                                         app_unique=rqmsg.head.unique)
                        user_data = None
                elif time.time() - user_data['active_time'] > 60 * 30:
                    del libiisi.cache_user[user_uuid]
                    contents = 'User login timed out'
                    msg.head.if_st = 10
                    msg.head.if_msg = contents
                    self.write_event(122,
                                     contents,
                                     1,
                                     user_name=user_data['user_name'],
                                     app_unique=rqmsg.head.unique)
                    user_data = None
                else:
                    user_data['active_time'] = time.time()
                    libiisi.cache_user[user_uuid] = user_data
        else:
            msg.head.if_st = 10
            msg.head.if_msg = 'User is not logged or has timed out'

        return (user_data, rqmsg, msg, user_uuid)