329 lines
8.4 KiB
TypeScript
329 lines
8.4 KiB
TypeScript
import {
|
|
RESULT_CODE_ERROR,
|
|
RESULT_CODE_SUCCESS,
|
|
RESULT_MSG_ERROR,
|
|
RESULT_MSG_SUCCESS,
|
|
} from '@/constants/result-constants';
|
|
import { language, request } from '@/plugins/http-fetch';
|
|
import { parseObjLineToHump } from '@/utils/parse-utils';
|
|
|
|
/**
|
|
* 查询日志设置
|
|
* @param tag 配置ID
|
|
* @returns object
|
|
*/
|
|
export async function getLogSet() {
|
|
let arr = [];
|
|
|
|
// 日志保存时间
|
|
const logDurationResult = await request({
|
|
url: `/api/rest/databaseManagement/v1/omc_db/config`,
|
|
method: 'GET',
|
|
params: {
|
|
SQL: `SELECT * FROM config WHERE config_tag = 'logDuration'`,
|
|
},
|
|
});
|
|
arr.push(logDurationResult);
|
|
// 日志最大容量
|
|
const logCapacityResult = await request({
|
|
url: `/api/rest/databaseManagement/v1/omc_db/config`,
|
|
method: 'GET',
|
|
params: {
|
|
SQL: `SELECT * FROM config WHERE config_tag = 'logCapacity'`,
|
|
},
|
|
});
|
|
arr.push(logCapacityResult);
|
|
|
|
// 发起请求
|
|
const result = await Promise.allSettled(arr).then(resArr => {
|
|
let resultData: any = {};
|
|
for (const item of resArr) {
|
|
if (item.status === 'rejected') {
|
|
continue;
|
|
}
|
|
const itemV = item.value;
|
|
// 解析数据
|
|
if (
|
|
itemV.code === RESULT_CODE_SUCCESS &&
|
|
Array.isArray(itemV.data.data)
|
|
) {
|
|
let itemData = itemV.data.data[0];
|
|
const v = parseObjLineToHump(itemData['config'][0]);
|
|
resultData[v.configTag] = parseInt(v.value);
|
|
}
|
|
}
|
|
if (Object.keys(resultData).length === 0) {
|
|
return { code: RESULT_CODE_ERROR, msg: RESULT_MSG_ERROR[language], data: {} };
|
|
}
|
|
|
|
return {
|
|
code: RESULT_CODE_SUCCESS,
|
|
msg: RESULT_MSG_SUCCESS,
|
|
data: resultData,
|
|
};
|
|
});
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* 修改日志设置
|
|
* @param data 配置对象
|
|
* @returns object
|
|
*/
|
|
export async function updateLogSet(data: Record<string, any>) {
|
|
let arr = [];
|
|
for (const key in data) {
|
|
const value = `${data[key]}`;
|
|
const result = request({
|
|
url: `/api/rest/databaseManagement/v1/omc_db/config?WHERE=config_tag='${key}'`,
|
|
method: 'PUT',
|
|
data: { data: { value } },
|
|
});
|
|
arr.push(result);
|
|
}
|
|
|
|
const result = await Promise.allSettled(arr).then(resArr => {
|
|
let resultNum = 0;
|
|
for (const item of resArr) {
|
|
if (item.status === 'rejected') {
|
|
continue;
|
|
}
|
|
const itemV = item.value;
|
|
// 解析数据
|
|
let itemData = itemV.data.data;
|
|
if (itemV.code === RESULT_CODE_SUCCESS && itemData) {
|
|
let rows = itemData.affectedRows;
|
|
if (rows) {
|
|
resultNum += rows;
|
|
}
|
|
}
|
|
}
|
|
// 无变更时
|
|
if (resultNum === 0) {
|
|
return { code: RESULT_CODE_ERROR, msg: RESULT_MSG_ERROR[language], data: 0 };
|
|
}
|
|
return {
|
|
code: RESULT_CODE_SUCCESS,
|
|
msg: RESULT_MSG_SUCCESS,
|
|
data: resultNum,
|
|
};
|
|
});
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* 查询FTP日志设置
|
|
* @param tag 配置ID
|
|
* @returns object
|
|
*/
|
|
export async function getFtpLogSet() {
|
|
// 发起请求
|
|
const result = await request({
|
|
url: `/api/rest/databaseManagement/v1/omc_db/config`,
|
|
method: 'GET',
|
|
params: {
|
|
SQL: `SELECT * FROM config WHERE config_tag = 'ftpLogSet'`,
|
|
},
|
|
});
|
|
// 解析数据
|
|
if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) {
|
|
let data = result.data.data[0];
|
|
const v = parseObjLineToHump(data['config'][0]);
|
|
let vJSON: any = {};
|
|
try {
|
|
vJSON = JSON.parse(v.valueJson);
|
|
vJSON['ftpLog'] = parseInt(vJSON['ftpLog']) || 12;
|
|
} catch (error) {
|
|
console.error(error);
|
|
}
|
|
return Object.assign(result, {
|
|
data: vJSON,
|
|
});
|
|
}
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* 修改FTP日志配置
|
|
* @param data 配置对象
|
|
* @returns object
|
|
*/
|
|
export async function updateFtpLogSet(data: Record<string, any>) {
|
|
const result = await request({
|
|
url: `/api/rest/databaseManagement/v1/omc_db/config?WHERE=config_tag='ftpLogSet'`,
|
|
method: 'PUT',
|
|
data: { data: { value_json: JSON.stringify(data) } },
|
|
});
|
|
// 解析数据
|
|
if (result.code === RESULT_CODE_SUCCESS && result.data.data) {
|
|
let rows = result.data.data.affectedRows;
|
|
if (rows) {
|
|
delete result.data;
|
|
return result;
|
|
} else {
|
|
return { code: RESULT_CODE_ERROR, msg: RESULT_MSG_ERROR[language] };
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* 查询日志远程输出设置
|
|
* @param tag 配置ID
|
|
* @returns object
|
|
*/
|
|
export async function getRemoteOut() {
|
|
// 发起请求
|
|
const result = await request({
|
|
url: `/api/rest/databaseManagement/v1/omc_db/config`,
|
|
method: 'GET',
|
|
params: {
|
|
SQL: `SELECT * FROM config WHERE config_tag = 'remoteLogSet'`,
|
|
},
|
|
});
|
|
// 解析数据
|
|
if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) {
|
|
let data = result.data.data[0];
|
|
const v = parseObjLineToHump(data['config'][0]);
|
|
let vJSON = {};
|
|
try {
|
|
vJSON = JSON.parse(v.valueJson);
|
|
} catch (error) {
|
|
console.error(error);
|
|
}
|
|
return Object.assign(result, {
|
|
data: vJSON,
|
|
});
|
|
}
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* 修改日志远程输出配置
|
|
* @param data 配置对象
|
|
* @returns object
|
|
*/
|
|
export async function updateRemoteOut(data: Record<string, any>) {
|
|
const result = await request({
|
|
url: `/api/rest/databaseManagement/v1/omc_db/config?WHERE=config_tag='remoteLogSet'`,
|
|
method: 'PUT',
|
|
data: { data: { value_json: JSON.stringify(data) } },
|
|
});
|
|
// 解析数据
|
|
if (result.code === RESULT_CODE_SUCCESS && result.data.data) {
|
|
let rows = result.data.data.affectedRows;
|
|
if (rows) {
|
|
delete result.data;
|
|
return result;
|
|
} else {
|
|
return { code: RESULT_CODE_ERROR, msg: RESULT_MSG_ERROR[language] };
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* 日志查询导出
|
|
* @param query 查询参数
|
|
* @returns bolb
|
|
*/
|
|
export async function exportLog(query: Record<string, any>) {
|
|
// 查询
|
|
let querySQL = '';
|
|
if (query.logType === 'security_log') {
|
|
querySQL = `SELECT account_name,account_type,op_ip,op_type,op_content,op_result,op_time
|
|
FROM security_log
|
|
WHERE op_time >= '${query.beginTime}' AND op_time <= '${query.endTime}'
|
|
order by op_time`;
|
|
}
|
|
if (query.logType === 'alarm_log') {
|
|
querySQL = `SELECT ne_type,ne_id,alarm_id,alarm_seq,alarm_code,alarm_status,event_time,log_time
|
|
FROM security_log
|
|
WHERE log_time >= '${query.beginTime}' AND log_time <= '${query.endTime}'
|
|
order event_time,log_time`;
|
|
}
|
|
if (query.logType === 'operation_log') {
|
|
querySQL = `SELECT account_name,account_type,op_ip,subsys_tag,op_type,op_content,op_result,begin_time,end_time,vnf_flag
|
|
FROM operation_log
|
|
WHERE begin_time >= '${query.beginTime}' AND end_time <= '${query.endTime}' AND op_type ='${query.opType}'
|
|
order begin_time,end_time`;
|
|
}
|
|
if (!querySQL) {
|
|
return { code: RESULT_CODE_ERROR, msg: RESULT_MSG_ERROR[language], data: [] };
|
|
}
|
|
// 发起请求
|
|
const result = await request({
|
|
url: `/api/rest/databaseManagement/v1/select/omc_db/${query.logType}`,
|
|
method: 'GET',
|
|
params: {
|
|
SQL: querySQL,
|
|
},
|
|
});
|
|
|
|
// 解析数据
|
|
if (result.code === RESULT_CODE_SUCCESS) {
|
|
let v = result.data.data[0];
|
|
const vArr = parseObjLineToHump(v[query.logType]);
|
|
result.data = vArr == null ? [] : vArr;
|
|
}
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* 日志手动备份
|
|
* @param data 配置对象
|
|
* @returns object
|
|
*/
|
|
export async function backupLog(logType: string) {
|
|
const result = await request({
|
|
url: `/api/rest/dataManagement/v1/omc_db/${logType}/backup`,
|
|
method: 'POST',
|
|
});
|
|
// 解析数据
|
|
if (result.code === RESULT_CODE_SUCCESS && result.data.data) {
|
|
let v = result.data.data[logType].affectedRows || 0;
|
|
if (v) {
|
|
result.data = v;
|
|
return result;
|
|
} else {
|
|
return { code: RESULT_CODE_ERROR, msg: RESULT_MSG_ERROR[language], data: 0 };
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* 日志手动备份文件下载
|
|
* @param data 配置对象
|
|
* @returns object
|
|
*/
|
|
export async function backupDownload(path: string) {
|
|
return request({
|
|
url: `/api/rest/fileManagement/v1/path/file?path=${path}`,
|
|
method: 'GET',
|
|
responseType: 'blob',
|
|
timeout: 180_000,
|
|
});
|
|
}
|
|
|
|
/**
|
|
* 日志手动备份文件列表
|
|
* @param data 配置对象
|
|
* @returns object
|
|
*/
|
|
export function backupFileList() {
|
|
return request({
|
|
url: `/api/rest/fileManagement/v1/files/listFiles`,
|
|
method: 'POST',
|
|
data: {
|
|
path: '/usr/local/omc/database',
|
|
expand: true,
|
|
showHidden: false,
|
|
page: 1,
|
|
pageSize: 100,
|
|
search: '',
|
|
containSub: false,
|
|
},
|
|
});
|
|
}
|