def query_task(): res = mapper.list_task(page_size, request.args.get('next', 1), request.args.get('target', ''), request.args.get('state', ''), request.args.get('result_state', ''), request.args.get('handle_node', '')) return result.ok(__eval_page(res))
def cancel_tasks(): task = json.loads(request.data) items = mapper.list_all_task(task.get('target', ''), task.get('state', ''), task.get('result_state', ''), task.get('handle_node', '')) for item in items: mapper.cancel_task(item.task_name, item.handle_node, item.state) return result.ok()
def add_dict(): _dict = json.loads(request.data) try: mapper.add_dict(_dict['dict_key'], _dict['dict_value'], _dict.get('remark', _dict['dict_key'])) except Exception as e: return result.fail(msg='错误: ' + str(e)) return result.ok()
def query_ip(): res = mapper.list_asset(page_size, request.args.get('next', 1), request.args.get('ip', ''), request.args.get('region', ''), request.args.get('port', ''), request.args.get('tags', ''), request.args.get('cdn', '')) return result.ok(__eval_page(res))
def login(): user = json.loads(request.data) res = mapper.login(user_name=user.get('user_name'), pass_word=user.get('pass_word')) if not res: return result.fail(msg='用户名或密码错误') else: session['user'] = res.to_json() return result.ok()
def count_asset(): return result.ok({ 'asset': mapper.count_asset(), 'running': mapper.count_task_by_state(enum.TaskState.RUNNING), 'error': mapper.count_task_result_state(True), 'handle': mapper.count_task_handle_state(enum.HandleState.UNTREATED) })
def view_plugin(): plugin = json.loads(request.data) plugin = mapper.get_plugin(plugin['id']) if plugin is None: return result.fail(msg='脚本不存在') if plugin.publisher != enum.Env.HOST: plugin.script = requests.get(plugin.publisher + '/' + enum.Env.SCRIPT_SRC + plugin.script).text else: with open(enum.Env.SCRIPT_SRC + plugin.script, 'rt') as f: plugin.script = f.read() return result.ok(plugin.to_json())
def add_task(): task = json.loads(request.data) mode = task.get('mode', 0) if mode == 1: hosts = mapper.list_all_asset(task.get('ip', ''), task.get('region', ''), task.get('port', ''), task.get('tags', '')) else: hosts = task.get('ips') scripts = task.get('scripts') mapper.add_new_tasks(scripts, mode, hosts) return result.ok()
def add_plugin(): plugin = json.loads(request.data) file_name = plugin['title'] + '_' + str(uuid.uuid4()) file_name = file_name.replace('.', '_') file_name += '.py' with open(enum.Env.SCRIPT_SRC + file_name, 'wt') as f: f.write(plugin['script']) if plugin.get('id') is not None: mapper.modify_plugin(plugin['id'], plugin['title'], plugin['remark'], file_name, str(plugin.get('label', []))) else: mapper.add_plugin(plugin['title'], plugin['remark'], file_name, str(plugin['label'])) return result.ok()
def add_ip(): asset = json.loads(request.data) ips = asset['ip'].split(',') for ip in ips: _ips = ip.strip().split('-') _size = len(_ips) try: IP(_ips[0]) except Exception as _: _ips = [ip] if _size > 1 and '/' in ip: return result.fail(msg='can\'t eval "/" and "-" at the same time') pool.submit(_add_ip_in_thread, _ips, asset) return result.ok()
def query_user(): res = mapper.list_user(page_size, request.args.get('next', 1), request.args.get('user_name', ''), request.args.get('type', ''), request.args.get('state', '')) return result.ok(__eval_page(res))
def get_env(): return result.ok({ 'redis': enum.Env.RDS_URL, 'mq': '', 'node_version': mapper.node_version() })
def list_breath(): return result.ok(mapper.breath_info())
def query_dict(): res = mapper.list_dict(page_size, request.args.get('next', 1), request.args.get('dict_key', ''), request.args.get('remark', '')) return result.ok(__eval_page(res))
def get_user(): user = session.get('user') return result.ok(user) if user is not None else result.fail()
def query_plugin(): res = mapper.list_plugin(page_size, request.args.get('next', 1), request.args.get('title', '')) return result.ok(__eval_page(res))
def modify_pwd(): user = json.loads(request.data) _user = session.get('user') res = mapper.modify_pwd(user_name=_user.get('user_name'), new_pwd=user.get('new_pwd')) return result.ok() if res else result.fail(msg='用户不存在')
def treated_task(): task = json.loads(request.data) mapper.treated_task(task.get('id')) return result.ok()
def del_task_by_query(): task = json.loads(request.data) mapper.del_task_by_query(task.get('target', ''), task.get('state', ''), task.get('result_state', ''), task.get('handle_node', '')) return result.ok()
def del_task(): task = json.loads(request.data) mapper.del_task_by_id(task.get('id', '')) return result.ok()
def del_dict(): _dict = json.loads(request.data) mapper.del_dict(_dict['dict_key']) return result.ok()
def add_user(): user = json.loads(request.data) res = mapper.add_user(user_name=user.get('user_name'), pass_word=user.get('pass_word'), type=user.get('type')) return result.ok() if res else result.fail(msg='用户已存在')
def del_user(): user = json.loads(request.data) mapper.del_user(user_name=user.get('user_name')) return result.ok()
def cancel_task(): task = json.loads(request.data) mapper.cancel_task(task.get('task_name'), task.get('handle_node'), task.get('state')) return result.ok()
def modify_type(): user = json.loads(request.data) res = mapper.modify_type(user_name=user.get('user_name'), type=user.get('type')) return result.ok() if res else result.fail(msg='用户不存在')
def all_plugin(): res = mapper.list_all_plugin(request.args.get('title', '')) return result.ok([_res.to_json() for _res in res])
def logout(): session['user'] = None return result.ok()
def retry_scan(): asset = json.loads(request.data) pool.submit(__update_ports, asset.get('ip'), flask_app) return result.ok()
def retry_task(): task = json.loads(request.data) mapper.retry_task(task.get('id')) return result.ok()
def del_plugin(): _dict = json.loads(request.data) mapper.del_plugin(_dict['id']) return result.ok()