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
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
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('查询转账结果超时')
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'}
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
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()
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"模板信息失败,请重试!")
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 }
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()
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
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()
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
def pushToClient(request): """ 主动推送信息到前端 """ logger.warning('123414') send_event('myevent', 'xxxxxxx', channel = 'foo') return HttpResponse('zzzzz')
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('从首页进入转账页面超时')
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}')
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
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')
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']
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} 次尝试')
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
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
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
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
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']
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)
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
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
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
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
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
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': ''})
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)