const { readHostList, writeHostList, readSSHRecord, writeSSHRecord } = require('../utils') function getHostList({ res }) { const data = readHostList() res.success({ data }) } function saveHost({ res, request }) { let { body: { host: newHost, name, expired, expiredNotify, group, consoleUrl, remark } } = request if(!newHost || !name) return res.fail({ msg: 'missing params: name or host' }) let hostList = readHostList() if(hostList.some(({ host }) => host === newHost)) return res.fail({ msg: `主机${ newHost }已存在` }) hostList.push({ host: newHost, name, expired, expiredNotify, group, consoleUrl, remark }) writeHostList(hostList) res.success() } function updateHost({ res, request }) { let { body: { host: newHost, name: newName, oldHost, expired, expiredNotify, group, consoleUrl, remark } } = request if(!newHost || !newName || !oldHost) return res.fail({ msg: '参数错误' }) let hostList = readHostList() if(!hostList.some(({ host }) => host === oldHost)) return res.fail({ msg: `主机${ newHost }不存在` }) let targetIdx = hostList.findIndex(({ host }) => host === oldHost) hostList.splice(targetIdx, 1, { name: newName, host: newHost, expired, expiredNotify, group, consoleUrl, remark }) writeHostList(hostList) res.success() } function removeHost({ res, request }) { let { body: { host } } = request let hostList = readHostList() let hostIdx = hostList.findIndex(item => item.host === host) if(hostIdx === -1) return res.fail({ msg: `${ host }不存在` }) hostList.splice(hostIdx, 1) writeHostList(hostList) // 查询是否存在ssh记录 let sshRecord = readSSHRecord() let sshIdx = sshRecord.findIndex(item => item.host === host) let flag = sshIdx !== -1 if(flag) sshRecord.splice(sshIdx, 1) writeSSHRecord(sshRecord) res.success({ data: `${ host }已移除, ${ flag ? '并移除ssh记录' : '' }` }) } function updateHostSort({ res, request }) { let { body: { list } } = request if(!list) return res.fail({ msg: '参数错误' }) let hostList = readHostList() if(hostList.length !== list.length) return res.fail({ msg: '失败: host数量不匹配' }) let sortResult = [] for (let i = 0; i < list.length; i++) { const curHost = list[i] let temp = hostList.find(({ host }) => curHost.host === host) if(!temp) return res.fail({ msg: `查找失败: ${ curHost.name }` }) sortResult.push(temp) } writeHostList(sortResult) res.success({ msg: 'success' }) } module.exports = { getHostList, saveHost, updateHost, removeHost, updateHostSort }