def saveWorkFlow(): # 添加流程 flow = flask.request.form.get('content') if not flow: return flask.jsonify({ 'code': ErrorCode.NoContentInReq, 'id': -1 }) flowId = flask.request.form.get('id') code = ErrorCode.NoError if flowId: code = WorkFlowDao.updateWorkflow(flowId, flow, getUserId()) else: wf = WorkFlow(flow, getUserId()) code = WorkFlowDao.saveWorkflow(wf) flowId = wf.id uiData = flask.request.form.get('uidata') if uiData: code = UiDataDao.setData(flowId, uiData, getUserId()) return flask.jsonify({ 'code': code, 'id': flowId })
def prepareDir(): flowId = flask.request.form.get('flowId') rootDir = flask.request.form.get('dir') classify = flask.request.form.get('classify', config.DEFAULT_RES_CLASSIFY) userid = getUserId() try: username = LoginInfoDao.queryUsernameByuserid(userid) except: config.Log.info(traceback.format_exc()) code = ErrorCode.NoError if not flowId: code = ErrorCode.NoFlowIdInReq elif not rootDir: code = ErrorCode.NoDirInReq elif not userid: code = ErrorCode.NotFindUser else: flow = WorkFlowDao.queryWorkflow(flowId, getUserId()) if not flow: code = ErrorCode.NotFindFlowById else: code = fs.prepareDirOnWebos(userid, username, rootDir, flow.content) return flask.jsonify({'code':code})
def queryStateclan(): userid = getUserId() taskid = flask.request.form.get('taskid') if not taskid: code = ErrorCode.NoTaskIdInReq return flask.jsonify({'code': code}) stateclanList = StateClanDao.queryByTaskId(taskid, userid) if not stateclanList: code = ErrorCode.NotFindStateClanByTask return flask.jsonify({'code': code}) message = {} modules = llts.getModuleList() names = {} for it in stateclanList: names[it.name] = it.name names = _replaceWithModuleName(names, modules) for info in stateclanList: strr = _getAnalysisInfo(info, names) if info.starttime: if info.endtime: message[names[info.name]] = {'clan': strr, 'runtime': info.endtime - info.starttime} else: message[names[info.name]] = {'clan': strr, 'runtime': time.time() - info.starttime} else: message[names[info.name]] = {'clan': strr, 'runtime': 0.0} return flask.jsonify(message)
def queryTaskStatus(): userid = getUserId() flowid = flask.request.form.get('flowid') if not flowid: code = ErrorCode.NoFlowIdInReq return flask.jsonify({'code': code}) taskIdList = TaskDao.queryTaskIdByFlowId(flowid, userid) if taskIdList == []: code = ErrorCode.NotFindTaskByFlowId return flask.jsonify({'code': code}) taskstateList = [] message = {} for taskid in taskIdList: taskstate = TaskStateDao.lastTaskState(taskid, userid) if taskstate: taskstateList.append(taskstate) else: message[taskid] = 'NotRuning' for info in taskstateList: if info.endTime: message[info.taskId] = 'NotRuning' else: message[info.taskId] = 'Runing' return flask.jsonify(message)
def deleteTask(): taskId = flask.request.form.get('id') if not taskId: return flask.jsonify({'code': ErrorCode.NoTaskIdInReq}) try: _requestTaskServerRetCode(taskId, TaskRequestType.StopTask) except: config.Log.info('can not kill module') TaskStateDao.deleteTaskState(taskId, getUserId()) code = TaskDao.deleteTask(taskId, getUserId()) try: lltsIdList = StateClanDao.delByTaskId(taskId, getUserId()) except: config.Log.info('can not kill module while delete task') return flask.jsonify({'code': code})
def setFlowUiData(): flowId = flask.request.form.get('flowId') content = flask.request.form.get('content') code = ErrorCode.NoError if not flowId: code = ErrorCode.NoFlowIdInReq elif not content: code = ErrorCode.NoContentInReq else: code = UiDataDao.setData(flowId, content, getUserId()) return flask.jsonify({'code': code})
def addTask(): content = flask.request.form.get('content') if not content: return flask.jsonify({ 'code': ErrorCode.NoContentInReq, 'id': -1 }) taskId = flask.request.form.get('id') code = ErrorCode.NoError if taskId: code = TaskDao.updateTask(taskId, content, getUserId()) else: task = Task(content, getUserId()) code = TaskDao.saveTask(task) taskId = task.id return flask.jsonify({ 'code': code, 'id': taskId })
def getTaskState(id): taskstate = TaskStateDao.lastTaskState(id, getUserId()) if taskstate: clan = json.loads(taskstate.clan) if taskstate.endTime: runtime = taskstate.endTime - taskstate.startTime else: runtime = time.time() - taskstate.startTime clan['runTime'] = runtime return flask.jsonify(clan) else: return flask.jsonify({})
def queryTaskStateByArgs(): userid = getUserId() sortName = flask.request.form.get('sortName') sortOrder = flask.request.form.get('sortOrder') pageSize = flask.request.form.get('pageSize') pageNumber = flask.request.form.get('pageNumber') config.Log.info('sortname = %s, sortorder = %s, pageSize = %s, pagenumber = %s, userid = %s' % (sortName, sortOrder, pageSize, pageNumber, userid)) taskstatelist = TaskStateDao.queryByArgs(sortName, sortOrder, pageSize, pageNumber, userid) states = {} states['rows'] = [taskstate.dumpDetail() for taskstate in taskstatelist] states['total'] = TaskStateDao.queryCount(userid) return flask.jsonify(states)
def delWorkFlow(): userId = getUserId() # 删除流程 flowId = flask.request.form.get('id') if not flowId: return flask.jsonify({'code': ErrorCode.NoFlowIdInReq}) flow = WorkFlowDao.queryWorkflow(flowId, userId) if flow.userId != userId: return flask.jsonify({'code': ErrorCode.CannotDeleteMutualFlow}) UiDataDao.deleteUiDataByFlowId(flowId, userId) taskIdList = TaskDao.queryTaskIdByFlowId(flowId, userId) for id in taskIdList: TaskStateDao.deleteTaskState(id, userId) TaskDao.deleteByFlowId(flowId, userId) code = WorkFlowDao.deleteWorkflow(flowId, userId) return flask.jsonify({'code': code})
def listDirByDirid(): userid = getUserId() if not userid: return flask.jsonify({'code': ErrorCode.NotFindUser}) dirid = int(flask.request.form['dirid']) def _listdir(dirid): dirs = webos.listDir(userid, dirid) for d in dirs: if d['type'] == 'dir': d['children'] = _listdir(d['id']) return dirs try: message = flask.jsonify(_listdir(dirid)) return message except: config.Log.info('list Dir Error')
def startTask(): taskId = flask.request.form.get('id') if not taskId: return flask.jsonify({'code': ErrorCode.NoTaskIdInReq}) userId = getUserId() # userId = '200010035103900' task = TaskDao.queryTask(taskId, userId) if not task: return flask.jsonify({'code': ErrorCode.NotFindTaskById}) flow = WorkFlowDao.queryWorkflow(task.flowId, userId) if not flow: return flask.jsonify({'code': ErrorCode.NotFindFlowById}) return _requestTaskServerRetCode(taskId, TaskRequestType.StartTask, { 'task': task.dumpDetail(), 'flow': flow.dumpDetail() })
def flowSocializationById(): # 流程所有者将流程公有化(所有用户可见但只有所有者可修改、删除) flowId = flask.request.form.get('id') if not flowId: return flask.jsonify({ 'code': ErrorCode.NoFlowIdInReq }) flow = WorkFlowDao.queryWorkflow(flowId, getUserId()) if flow: flow.type = 'mutual' WorkFlowDao.saveWorkflow(flow) return flask.jsonify({ 'code': ErrorCode.NoError, 'flowId': flowId }) else: return flask.jsonify({ 'code': ErrorCode.NotFindFlowById, 'flowId': flowId })
def getWorkFlowList(): # config.Log.info('userid = %s' % getUserId()) wfs = [wf.dumpInfo() for wf in WorkFlowDao.workflowList(getUserId())] return flask.jsonify(wfs)
def getWorkFlow(id): wf = WorkFlowDao.queryWorkflow(id, getUserId()) return flask.jsonify(wf.dumpDetail() if wf else {})
def getFlowUiData(id): return UiDataDao.getData(id, getUserId())
def getListByDirId(id): userid = getUserId() if not userid: return flask.jsonify({'code': ErrorCode.NotFindUser}) return flask.jsonify(webos.listDirByDirId(userid, id))
def getIOputMsg(id): userid = getUserId() if not userid: return flask.jsonify({'code': ErrorCode.NotFindUser}) return flask.jsonify(webos.listInputOutputDir(userid, id, userid))
def dirLists(id): userid = getUserId() if not userid: return flask.jsonify({'code': ErrorCode.NotFindUser}) return flask.jsonify(webos.listTaskDir(userid, id, userid))
def taskList(): flowId = flask.request.args.get('flowId') if not flowId: return flask.jsonify({'code': ErrorCode.NoFlowIdInReq}) tasks = [task.dumpInfo() for task in TaskDao.taskList(getUserId(), flowId)] return flask.jsonify(tasks)
def getWorkFlowListByKey(key): wfs = [wf.dumpInfo() for wf in WorkFlowDao.queryByKey(key, getUserId())] return flask.jsonify(wfs)
def taskDetail(id): task = TaskDao.queryTask(id, getUserId()) taskObj = task.dumpDetail() if task else {} return flask.jsonify(taskObj)