Example #1
0
def modify_iptables_rules(data):
    try:
        data = data['data']
        #t = Iptables.query.filter(and_(Iptables.proto == data['proto'], Iptables.srcIp == data['srcip'], Iptables.destIp == data['destip'], Iptables.srcPortStart == data['srcportstart'],\
        #Iptables.srcPortEnd == data['srcportend'], Iptables.destPortStart == data['destportstart'], Iptables.destPortEnd == data['destportend'], Iptables.priority == data['priority'])).first()
        t = Iptables.query.filter_by(priority=data['priority']).first()
        if t is None:
            tab = Iptables(data['priority'], data['action'], data['proto'],
                           data['srcip'], data['destip'], data['srcportstart'],
                           data['srcportend'], data['destportstart'],
                           data['destportend'])
            db.session.add(tab)
            db.session.commit()
        else:
            #t.priority = data['priority']
            t.action = data['action']

            t.proto = data['proto']
            t.srcIp = data['srcip']
            t.destIp = data['destip']
            t.srcPortStart = data['srcportstart']
            t.srcPortEnd = data['srcportend']
            t.destPortStart = data['destportstart']
            t.destPortEnd = data['destportend']

            db.session.commit()

        return True
    except Exception as e:
        logger.warning(str(e))
    return False
Example #2
0
def dts_dst_ip_group_judge(group_name):
    try:
        if DtsFilter.query.filter_by(dstGroup=group_name).first() is not None:
            return True
    except Exception as e:
        logger.warning(str(e))
    return False
Example #3
0
 def check_result(self, xml):
     start_time = time.time()
     while time.time() - start_time < 180:
         cur_activity = self.driver.get_cur_activity()
         xml = self.driver.get_xml()
         if self.__handle_random_page(cur_activity, xml):
             logger.info()
             start_time = time.time()
             continue
         elif '转账已受理' in xml or '转账成功' in xml:
             self.send_status(self.taskid, 0)
             ret = '转账成功'
             logger.info(ret)
             self.__click(re.findall(self.__pattern_complish, xml)[0])
             return True, ret
         elif '账号户名不符' in xml:
             self.send_status(self.taskid, 0)
             ret = '账号户名不符'
             logger.info(ret)
             self.__click(re.findall(self.__pattern_back, xml)[0])
             return False, ret
         elif '通讯中断啦' in xml:
             self.send_status(self.taskid, 0)
             raise UserError(f'用户未点击k宝的ok键')
         else:
             logger.warning('未知 activity %s' % cur_activity)
     raise MyError('查询转账结果超时')
Example #4
0
def handle_task(data):
    try:
        dat = data['contents'][0]
        res = check_task(dat)
        if res == 'true':
            task_id = task_list_methods['add'](dat)
            if task_id > 0:
                data['id'] = task_id
                task_queue.put(data)
                return {
                    'description': 'recevied',
                    'rcode': 0,
                    'taskid': task_id
                }
            return {
                'rcode': 3,
                'description': 'repetitive task the task is running'
            }
        else:
            logger.warning('Request content format error:{} content:{}'.format(
                res, data))
            return {
                'rcode': 1,
                'description': 'Request data format error:{}'.format(res)
            }
    except Exception as e:
        logger.error(str(e))
    return {'rcode': 2, 'description': 'Server program error'}
Example #5
0
def modify_total_threshold(data):
	try:
		t = TotalThreshold.query.filter(and_(TotalThreshold.bt==data['bt'],TotalThreshold.sbt==data['sbt'])).first()
		if t is not None:
			if data['sbt'] == 'maxanswerlen':
				t.threshold = data['data']['maxlen']
				db.session.commit()
			elif data['sbt'] == 'odds':
				t.threshold = data['data']['odds']
				db.session.commit()
			else:
				t.threshold = data['data']['threshold']
				db.session.commit()
		else:
			if data['sbt'] == 'maxanswerlen':
				t = TotalThreshold(data['bt'], data['sbt'], data['data']['maxlen'])
				db.session.add(t)
				db.session.commit()
			elif data['sbt'] == 'odds':
				t = TotalThreshold(data['bt'], data['sbt'], data['data']['odds'])
				db.session.add(t)
				db.session.commit()
			else:
				t = TotalThreshold(data['bt'], data['sbt'], data['data']['threshold'])
				db.session.add(t)
				db.session.commit()
		return True
	except Exception as e:
		logger.warning(str(e))
	return False
Example #6
0
 def update_report_status(self):
     """
     更新数据上报状态
     :return:
     """
     res = requests_get(
         QUERY_IP_REPORT_STATUS_URL, **{
             "biz_id": self.cc_biz_id,
             "data_id": self.data_id
         })
     if not res['result']:
         return
     for ip, ip_info in res['data'].items():
         if 'agent_status' not in ip_info:
             continue
         try:
             agent = AgentStatus.objects.get(ds_id=self.id, ip=ip)
             if agent.status in (DS_STATUS.CREATE, DS_STATUS.NORMAL,
                                 DS_STATUS.EXCEPTION):
                 agent.status = (DS_STATUS.NORMAL if ip_info['agent_status']
                                 == 1 else DS_STATUS.EXCEPTION)
                 if 'last_report_time' in ip_info:
                     agent.update_time = ip_info['last_report_time']
                 agent.save()
         except ObjectDoesNotExist:
             logger.warning('ip not exist. ds_id: {ds_id}, ip: {ip}'.format(
                 ds_id=self.id, ip=ip))
     # 更新数据源状态
     self.update_ds_status()
Example #7
0
def template_change(request):
    """
    @编辑业务模板——编辑指定的业务模板
    """
    b_name = request.GET.get('business_name', '')
    t_name = request.GET.get('template_name', '')
    try:
        template = BusinessTemplate.objects.get(business_name=b_name,
                                                template_name=t_name)
        parm_data = get_param_data_by_name(types='template',
                                           b_name=b_name,
                                           t_name=t_name)
        rec = BusinessTemplate.to_dict(template)
        return render_mako_context(request,
                                   '/task_center/some_template_edit.html', {
                                       'template': rec,
                                       'parm_data': parm_data,
                                       'flag': 0,
                                       "active": True
                                   })
    except ObjectDoesNotExist:
        logger.warning(
            u"BusinessTemplate.DoesNotExist ,business_name=%s,template_name=%s"
            % (b_name, t_name))
        return HttpResponse(u"模板不存在,请重试!")
    except Exception, e:
        logger.error(
            u"get BusinessTemplate error,business_name=%s,template_name=%s,msg:%s"
            % (b_name, t_name, e))
        return HttpResponse(u"获取" + b_name + u"模板信息失败,请重试!")
Example #8
0
 def wrapper(*args, **kwargs):
     try:
         return task_definition(*args, **kwargs)
     # except timeout.TimeoutError:
     #     raise
     except Exception as e:
         desc = '[{0}] {1}'.format(task_definition.func_name,
                                   self.exception_desc)
         if self.is_log:
             logger.exception(u"%s: %s", desc, e)
         else:
             logger.warning(u"%s: %s", desc, e)
         message = u'系统异常,请联系管理员!{0}'.format(
             e.message) if not self.exception_desc else u"{0}异常".format(
                 self.exception_desc)
         if self.is_response:
             return HttpResponse(
                 json.dumps({
                     'result': False,
                     'message': message,
                     'data': self.exception_return
                 }))
         return {
             "result": False,
             'message': message,
             'data': self.exception_return
         }
Example #9
0
 def update_status(self):
     """
     更新接入状态
     :return:
     """
     # logger.info('update_status start')
     url = QUERY_IP_STATUS_URL
     res = requests_get(
         url, **{
             "biz_id": self.cc_biz_id,
             "data_id": self.data_id
         })
     # logger.info('update_status finish')
     if not res['result']:
         raise Exception('update_status false')
     for ip_info in res['data']:
         try:
             AgentStatus.objects.get(ds_id=self.id,
                                     ip=ip_info['ip']).update_status(
                                         ip_info['ip_op_result'])
         except ObjectDoesNotExist:
             logger.warning('ip not exist. ds_id: {ds_id}, ip: {ip}'.format(
                 ds_id=self.id, ip=ip_info['ip']))
     # 更新数据源的状态
     self.update_ds_status()
Example #10
0
 def check_result(self, xml):
     start_time = time.time()
     while time.time() - start_time < 60:
         cur_activity = self.driver.get_cur_activity()
         xml = self.driver.get_xml()
         if self.__handle_random_page(cur_activity, xml):
             start_time = time.time()
             continue
         elif cur_activity == 'com.ccb.framework.security.base.successpage.CcbSuccessPageAct':
             check_result_btn = re.findall(self.__pattern_check_result_btn,
                                           xml)
             if len(check_result_btn) == 1:
                 self.__click(check_result_btn[0])
             elif '转账提交成功' in xml or re.search(
                     r'转账成功(.+?)" resource-id="com.chinamworld.main:id/tv_dlg_content"',
                     xml):
                 ret = '转账成功'
                 logger.info(ret)
                 return True, ret
             elif re.search(
                     r'具体原因:(.+?)" resource-id="com.chinamworld.main:id/tv_dlg_content"',
                     xml):
                 ret = re.findall(
                     r'具体原因:(.+?)" resource-id="com.chinamworld.main:id/tv_dlg_content"',
                     xml)[0]
                 logger.info(ret)
                 raise UserError(ret)
         else:
             logger.warning('未知 activity %s' % cur_activity)
     raise MyError('查询转账结果超时')
def _load_from_token_count_txt(path, tokenizer=None, text_processor=None):
    vocab = Vocabulary(tokenizer=tokenizer, text_processor=text_processor)
    try:
        logger.info('Start load token_count txt')
        with open(path, 'r', encoding='utf-8') as f:
            for line in f:
                try:
                    coef = line.strip().split(':')

                    # 防止token=:的情况
                    _token = coef[0]
                    _index = coef[-1]

                    vocab.token_index[_token] = int(_index)
                    vocab.index_token[int(_index)] = _token
                except ValueError:
                    logger.warning('Invalid line:{}'.format(line))

        logger.info(
            'End   load token_count txt, read {nb_tokens} tokens'.format(
                nb_tokens=len(vocab)))
    except FileNotFoundError:
        logger.warning(
            'File not exit, please check {error_file}'.format(error_file=path))
    return vocab
Example #12
0
def bump(pk=None):
    from biostar.apps.posts.models import Post
    from biostar.apps.users.models import User

    from common import general_util

    if not pk:
        query = Post.objects.filter(type=Post.QUESTION, status=Post.OPEN)

        value = random.random()

        if value > 0.5:
            since = general_util.now() - timedelta(weeks=10)
            query = query.filter(reply_count=0, creation_date__gt=since)

        query = query.values_list("id")

        ids = [p[0] for p in query]

        pk = random.choice(ids)

    community = User.objects.get(pk=1)
    post = Post.objects.get(pk=pk)
    logger.info(post.title)

    if not post.is_toplevel:
        logger.warning("post is not at toplevel")

    post.lastedit_date = general_util.now()
    post.lastedit_user = community
    post.save()
Example #13
0
def add_task_list(data):
	try:
		data_str = json.dumps(data['data'])
		t = TaskList.query.filter(and_(TaskList.type==data['tasktype'],TaskList.data==data_str)).first()
		if t is not None:
			if t.status == 'executing':
				return 0
			t.rcode = 0
			t.status = 'executing'
			t.start = time.strftime('%Y-%m-%d %H:%M:%S')
			t.end = ''
			t.description = 'executing'
			t.result = json.dumps('')
			db.session.commit()
			return t.id
		else:
			t = TaskList(data['tasktype'], data_str)
			db.session.add(t)
			db.session.commit()
			t = TaskList.query.filter(and_(TaskList.type==data['tasktype'],TaskList.data==data_str)).first()
			if t is not None:
				return t.id
	except Exception as e:
		logger.warning(str(e))
		db.session.rollback()
	return 0
Example #14
0
def pushToClient(request):
    """
    主动推送信息到前端
    """
    logger.warning('123414')
    send_event('myevent', 'xxxxxxx', channel = 'foo')
    return HttpResponse('zzzzz')
Example #15
0
 def __enter_prepare_transfer(self, xml):
     start_time = time.time()
     main_page_clicked = False
     while time.time() - start_time < 50:
         # 更新页面
         cur_activity = self.driver.get_cur_activity()
         xml = self.driver.get_xml()
         if self.__handle_random_page(cur_activity, xml):
             start_time = time.time()
             continue
         elif cur_activity == 'com.ccb.start.MainActivity':
             '''
             # 匹配首页的首页按钮
             if not main_page_clicked:
                 ret = re.findall(self.__pattern_main_activity_main_page_btn, xml)
                 if len(ret) == 1:
                     logger.info('点击首页的首页按钮')
                     self.__click(ret[0])
                     main_page_clicked = True
             '''
             # 匹配的首页的转账按钮
             ret = re.findall(self.__pattern_main_activity_transfer_btn,
                              xml)
             if len(ret) == 1:
                 logger.info('点击转账按钮')
                 self.__click(ret[0])
         elif cur_activity == 'com.ccb.transfer.transfer_home.view.TransferHomeAct':
             logger.info('已进入待转账页面')
             return xml
         else:
             logger.warning('未知 activity %s' % cur_activity)
     raise MyError('从首页进入转账页面超时')
Example #16
0
    def run(self):
        try:
            while not self.terminated:
                time.sleep(1)

                if self.m_state != group.State.PLAYING:
                    continue

                if self.silence_samples_pending:
                    log.warning(
                        f'audio silence, added {self.silence_samples_pending} samples'
                    )
                    client_message = {
                        'command': 'silence',
                        'samples': self.silence_samples_pending
                    }
                    self.send_to_groups(client_message)
                    self.silence_samples_pending = 0

                elif self.silence_samples > self.silence_samples_sent:
                    with self.socket_data_lock:
                        self.silence_samples_pending = self.silence_samples
                        self.silence_samples_sent = self.silence_samples_pending

        except Exception as e:
            log.fatal(f'playsequencer thread crashed with {e}')
Example #17
0
def dts_src_ip_group_exist(group_name):
    try:
        if DtsSrcIpGroup.query.filter_by(group=group_name).first() is not None:
            return True
    except Exception as e:
        logger.warning(str(e))
    return False
Example #18
0
 def multicast_rx(self, message):
     if self.terminated:
         return
     device_id = "unknown"
     try:
         command = message['command']
         if command == 'get_server_socket':
             if message['version'] != util.LUDIT_VERSION:
                 raise Exception(
                     'server version is %s but client version is %s' %
                     (util.LUDIT_VERSION, message['version']))
             device_id = message['from']
             groupname, devicename = device_id.split(':')
             device = self.play_sequencer.get_group(groupname).get_device(
                 devicename)
             if device.connected:
                 log.warning(
                     f'ignoring second connection request from {device_id}, already have a device with that id'
                 )
                 self.multicast_tx('server_socket', device_id, 'endpoint',
                                   'None')
                 return
             endpoint = device.get_endpoint()
             log.debug('sending tcp socket endpoint %s to device %s' %
                       (str(endpoint), device_id))
             self.multicast_tx('server_socket', device_id, 'endpoint',
                               str(endpoint))
     except Exception as e:
         log.error('connection failed from unknown device %s (%s)' %
                   (device_id, str(e)))
         self.multicast_tx('server_socket', device_id, 'endpoint', 'None')
Example #19
0
def fast_execute_script(bk_biz_id,
                        script_type=None,
                        script_content=None,
                        account="root",
                        ip_list=[],
                        request=None,
                        user=None):
    """快速执行脚本

    :param bk_biz_id: 业务ID
    :param script_type: 脚本类型:1(shell脚本)、2(bat脚本)、3(perl脚本)、4(python脚本)、5(Powershell脚本)
    :param script_content: 脚本内容Base64,如果同时传了script_id和script_content,则script_id优先
    :param request:
    :param user:
    :return:
    """
    """"""
    client, kwargs = client_and_common_args(request, user)
    kwargs['script_type'] = script_type
    kwargs['bk_biz_id'] = bk_biz_id
    kwargs['ip_list'] = ip_list
    kwargs['account'] = account
    kwargs['script_timeout'] = 3
    if script_content:
        kwargs['script_content'] = base64.encodestring(script_content)
    result = client.job.fast_execute_script(kwargs)
    logger.debug('fast execute script, result is {}'.format(result))
    if result['result'] is False:
        logger.warning('fast execute script, msg is {}'.format(result))
    # 补充获取结果的方法
    return result['result'], result['data'], result['message']
Example #20
0
    def retry(self, get=True):
        retry_count = 5

        while retry_count:
            if get:
                resp = self.post()
            else:
                resp = self.get()

            try:
                status_code = resp.status_code
            except Exception:
                retry_count -= 1
                continue

            if status_code == 200:
                if self.proxy and resp.text == '{"code":200,"msg":"超过并发限制"}':
                    logger.info('超过并发限制')
                    magic()
                    self.retry(get)
                elif resp.headers.get('content-length') and int(
                        resp.headers.get('content-length')) > len(
                            resp.content):
                    logger.warning('文件不完整')
                    self.retry(get)
                else:
                    return resp
            elif 400 <= status_code < 500:
                return status_code
            elif 300 <= status_code <= 304:
                self.params['url'] = resp.headers['Location']
                return self.retry(get)
            else:
                retry_count -= 1
                logger.info(f'第 {5-retry_count} 次尝试')
Example #21
0
def acl_domain_group_judge(group_name):
    try:
        if View.query.filter_by(domainGroup=group_name).first() is not None:
            return True
    except Exception as e:
        logger.warning(str(e))
    return False
Example #22
0
def get_task_list(task_id):
	try:
		rules = TaskList.query.get(task_id)
		if rules is not None:
			return rules.get_dict()
	except Exception as e:
		logger.warning(str(e))
	return None
Example #23
0
def credit_dname_exist(data):
    try:
        p = CreditDname.query.filter_by(dname=data['data']['dname']).first()
        if p is not None:
            return True
    except Exception as e:
        logger.warning(str(e))
    return False
Example #24
0
def get_acl_src_ip_group_num(group_name):
	try:
		rules = SrcIpList.query.filter_by(group=group_name).all()
		if rules is not None:
			return len(rules)
	except Exception as e:
		logger.warning(str(e))
	return 0
Example #25
0
def search_business(request=None, user=None):
    """查询业务"""
    client, kwargs = client_and_common_args(request, user)
    result = client.cc.search_business(kwargs)
    logger.debug('search business, result is {}'.format(result))
    if result['result'] is False:
        logger.warning('search business false, msg is {}'.format(result))
    return result['result'], result['data'], result['message']
Example #26
0
 def load_dict(self, dic: dict):
     for key, value in dic.items():
         if not hasattr(self, key):
             logger.warning(
                 f'"JsonSerializable" load from dict skip unexpected property name: {key}'
             )
             continue
         setattr(self, key, value)
Example #27
0
def forward_server_delete_judge(srv):
	try:
		rules = ForwardRules.query.filter_by(servergroup=srv).first()
		if rules is not None:
			return True
	except Exception as e:
		logger.warning(str(e))
	return False
Example #28
0
def src_ip_list_exist(data):
	try:
		t = SrcIpList.query.filter(and_(SrcIpList.group==data['data']['ipgroup'],SrcIpList.ip==data['data']['ip'])).first()
		if t is not None:
			return True
	except Exception as e:
		logger.warning(str(e))
	return False
Example #29
0
def view_exist(name):
    try:
        rules = View.query.filter_by(viewName=name).first()
        if rules is not None:
            return True
    except Exception as e:
        logger.warning(str(e))
    return False
Example #30
0
def forward_server_exist(srv):
	try:
		t = ForwardServer.query.filter_by(servergroup=srv).first()
		if t is not None:
			return True
	except Exception as e:
		logger.warning(str(e))
	return False
Example #31
0
def src_ip_group_exist(name):
	try:
		rules = SrcIpList.query.filter_by(group=name).first()
		if rules is not None:
			return True
	except Exception as e:
		logger.warning(str(e))
	return False
Example #32
0
def skinDetail(request, cat, skin_number):
    """
    获取某皮肤的具体数据
    """
    cat_id  = cvtCatToId(cat)
    try:
        skin_model = SkinModel.objects.get(m_cat = cat_id, m_number = skin_number)
    except SkinModel.DoesNotExist, e:
        logger.warning('Can''t find skin')
        return MyHttpJsonResponse({'succ': False, 'msg': ''})
Example #33
0
    def readyAggreFunc(self):
        '''
        准备用来进行函数运算(sum)之类的函数
        '''
        all = self.condition.getAllExprs()
        logger.warning(all)
        [(if_func_left, lexpr), (if_func_right, rexpr)] = all

        if if_func_right:
            sql = str(self.st.getSwither().makeSelectSql(selects = [self.condition.rfactor]))
            aggreate_sql = self.aggreate_template.format(sql = sql, func = rexpr)
            self.st.conn.execute(aggreate_sql)
            setattr(self, 'rexpr', rexpr)
        if if_func_left:
            sql = str(self.st.getSwither().makeSelectSql(selects = [self.condition.lfactor]))
            aggreate_sql = self.aggreate_template.format(sql = sql, func = lexpr)
            self.st.conn.execute(aggreate_sql)
            setattr(self, 'lexpr', lexpr)