import fetch, { formFetch } from './fetch'; import { IUploadFile, IUser, IQuotaModelItem, ILimitsItem, ITopic, IOrderParams, ISample, IMigration, IExecute, IEepand, IUtils, ITopicMetriceParams, IRegister, IEditTopic, IExpand, IDeleteTopic, INewRegions, INewLogical, IRebalance, INewBulidEnums, ITrigger, IApprovalOrder, IMonitorSilences, IConfigure, IBatchApproval } from 'types/base-type'; import { IRequestParams } from 'types/alarm'; import { apiCache } from 'lib/api-cache'; export const getRegionIdcs = () => { return fetch(`/normal/configs/idcs`); }; export const getAccount = () => { return fetch(`/normal/accounts/account`); }; /** * topic 相关接口 * @see http://127.0.0.1:8080/swagger-ui.html#/ */ export const getMytopics = () => { return fetch(`/normal/topics/mine`); }; export const getExpiredTopics = () => { return fetch(`/normal/topics/expired`); }; export const getBaseInfo = () => { return fetch(`/normal/topics/my-topics`); }; export const getAllTopic = () => { return fetch(`/normal/topics`); }; export const getAuthorities = (appId: string, clusterId: number, topicName: string) => { return fetch(`/normal/apps/${appId}/authorities?clusterId=${clusterId}&topicName=${topicName}`); }; export const getQuotaQuery = (appId: string, clusterId: number, topicName: string) => { return fetch(`/normal/apps/${appId}/quotas?clusterId=${clusterId}&topicName=${topicName}`); }; export const getTopicBroker = (clusterId: number, topicName: string) => { return fetch(`/${clusterId}/topics/${topicName}/brokers`); }; export const getClusters = () => { return fetch(`/normal/clusters/basic-info`); }; export const getAllClusters = () => { return fetch(`/normal/clusters/basic-info?all=true`); }; export const getApply = () => { return fetch(`/normal/apps?status=1`); }; // 配额 export const updateTopic = (params: IQuotaModelItem) => { return fetch('/normal/topics', { method: 'PUT', body: JSON.stringify(params), }); }; export const deferTopic = (params: ILimitsItem) => { return fetch('/normal/topics/expired', { method: 'PUT', body: JSON.stringify(params), }); }; // 详情 export const getTopicCompile = (params: ITopic) => { return fetch('/normal/topics', { method: 'PUT', body: JSON.stringify(params), }); }; export const getTopicSampling = (params: ISample, clusterId: number, topicName: string) => { return fetch(`/normal/${clusterId}/topics/${topicName}/sample`, { method: 'POST', body: JSON.stringify(params), }); }; export const getTopicBasicInfo = (clusterId: number, topicName: string) => { return fetch(`/normal/${clusterId}/topics/${topicName}/basic-info`); }; export const getRealTimeTraffic = (clusterId: number, topicName: string) => { return fetch(`/normal/${clusterId}/topics/${topicName}/metrics`); }; export const getRealConsume = (clusterId: number, topicName: string, percentile: string) => { return fetch(`/normal/${clusterId}/topics/${topicName}/request-time?percentile=${percentile}`); }; export const getConnectionInfo = (clusterId: number, topicName: string, appId?: string) => { return fetch(`/normal/${clusterId}/topics/${topicName}/connections?appId=${appId}`); }; export const getConsumerGroups = (clusterId: number, topicName: string) => { return fetch(`/normal/${clusterId}/consumers/${topicName}/consumer-groups`); }; export const getConsumeDetails = (clusterId: number, topicName: string, consumerGroup: string, location: string) => { return fetch( `/normal/${clusterId}/consumers/${consumerGroup}/topics/${topicName}/consume-details?location=${location}`); }; export const getPartitionsInfo = (clusterId: number, topicName: string) => { return fetch(`/normal/${clusterId}/topics/${topicName}/partitions`); }; export const getBrokerInfo = (clusterId: number, topicName: string) => { return fetch(`/rd/${clusterId}/topics/${topicName}/brokers`); }; export const getAppsIdInfo = (clusterId: number, topicName: string) => { return fetch(`/normal/${clusterId}/topics/${topicName}/apps`); }; export const getBillInfo = (clusterId: number, topicName: string, startTime: number, endTime: number) => { return fetch(`/normal/${clusterId}/topics/${topicName}/bills?startTime=${startTime}&endTime=${endTime}`); }; export const resetOffset = (params: any) => { return fetch('/normal/consumers/offsets', { method: 'PUT', body: JSON.stringify(params), }); }; export const getTopicBusiness = (clusterId: number, topicName: string) => { return fetch(`/normal/${clusterId}/topics/${topicName}/business`); }; // 集群mode export const getClusterModes = () => { return fetch(`/normal/configs/cluster-modes`); }; export const getClusterComboList = () => { return fetch('/normal/configs/cluster-combos'); }; // -------------------------- export const getConsumeInfo = (clusterId: number) => { return fetch(`/${clusterId}/consumers/consumer-groups`); }; export const getConsumeGroup = (clusterId: number, consumerGroup: string, location: string) => { return fetch(`/${clusterId}/consumer/${consumerGroup}/topics?location=${location}`); }; // 获取echarts export const getTopicMetriceInfo = (parmas: ITopicMetriceParams) => { const { clusterId, topicName, startTime, endTime, appId } = parmas; // tslint:disable-next-line:max-line-length return fetch(`/normal/${clusterId}/topics/${topicName}/metrics-history?startTime=${startTime}&endTime=${endTime}&appId=${appId}`); }; export const getTopicMetriceTake = (params: ITopicMetriceParams) => { const { clusterId, topicName, startTime, endTime } = params; // tslint:disable-next-line:max-line-length return fetch(`/normal/${clusterId}/topics/${topicName}/request-time-history?startTime=${startTime}&endTime=${endTime}`); }; /** * mycluster */ export const getClusterBasicInfo = (clusterId: number) => { return fetch(`/normal/clusters/${clusterId}/basic-info`); }; export const getClusterDetailRealTime = (clusterId: number) => { return fetch(`/normal/clusters/${clusterId}/metrics`); }; export const getClusterDetailMetrice = (clusterId: number, startTime: string, endTime: string) => { return fetch(`/normal/clusters/${clusterId}/metrics-history?startTime=${startTime}&endTime=${endTime}`); }; export const getClusterDetailTopics = (clusterId: number) => { return fetch(`/normal/clusters/${clusterId}/topics`); }; export const getClusterMetaTopics = (clusterId: number) => { return fetch(`/normal/clusters/${clusterId}/topic-metadata`); }; export const getClusterDetailBroker = (clusterId: number) => { return fetch(`/normal/clusters/${clusterId}/brokers`); }; export const getClusterDetailThrottles = (clusterId: number) => { return fetch(`/normal/clusters/${clusterId}/throttles`); }; /** * 获取员工信息 */ export const getStaff = (keyword: string) => { const api = `/normal/accounts?keyWord=${keyword}`; const cacheData = apiCache.getDataFromCache(api); if (cacheData) { return new Promise(res => res(cacheData)); } return fetch(api).then((data) => { apiCache.setCacheMap(api, data); return data; }).catch(() => { apiCache.deleteDataFromCache(api); return []; }); }; export const userLogin = (params: IUser) => { return fetch('/sso/login', { method: 'POST', body: JSON.stringify(params), }); }; /** * 应用相关接口 */ export const getAppList = () => { return fetch(`/normal/apps`); }; export const modfiyApplication = (params: any) => { return fetch('/normal/apps', { body: JSON.stringify(params), method: 'PUT', }); }; export const getAppDetail = (appId: string) => { return fetch(`/normal/apps/${appId}/basic-info`); }; export const getAppTopicList = (appId: string, mine: boolean) => { return fetch(`/normal/apps/${appId}/topics?mine=${mine}`); }; /** * 专家服务 */ export const getHotTopics = () => { return fetch(`/op/expert/regions/hot-topics`); }; export const getReassignTasks = () => { return fetch(`/op/reassign-tasks`); }; export const getTaskTopicMetadata = (clusterId: number) => { return fetch(`/rd/clusters/${clusterId}/topic-metadata`); }; export const getReassignTasksDetail = (taskId: number) => { return fetch(`/op/reassign-tasks/${taskId}/detail`); }; export const getReassignTasksStatus = (taskId: number) => { return fetch(`/op/reassign-tasks/${taskId}/status`); }; export const getInsufficientPartition = () => { return fetch(`/op/expert/topics/insufficient-partitions`); }; export const createMigrationTask = (params: IMigration[]) => { return fetch(`/op/reassign-tasks`, { method: 'POST', body: JSON.stringify(params), }); }; export const getExecuteTask = (params: IExecute) => { return fetch(`/op/reassign-tasks`, { method: 'PUT', body: JSON.stringify(params), }); }; export const getExecuteSubTask = (params: IExecute) => { return fetch(`/op/reassign-tasks/sub-tasks`, { method: 'PUT', body: JSON.stringify(params), }); }; export const getExpandTopics = (params: IEepand[]) => { return fetch(`/op/utils/expand-partitions`, { method: 'PUT', body: JSON.stringify(params), }); }; export const getResourceManagement = () => { return fetch(`/op/expert/topics/expired`); }; export const getUtilsTopics = (params: IUtils) => { return fetch(`/op/utils/topics`, { method: 'DELETE', body: JSON.stringify(params), }); }; export const getAnomalyFlow = (timestamp: number) => { return fetch(`/op/expert/topics/anomaly-flow?timestamp=${timestamp}`); }; /** * 工单 */ export const applyOrder = (params: IOrderParams) => { return fetch('/normal/orders', { method: 'POST', body: JSON.stringify(params), }); }; export const getAppsConnections = (appId: string) => { return fetch(`/normal/apps/${appId}/connections`); }; export const getTopicAppQuota = (clusterId: number, topicName: string) => { return fetch(`/normal/${clusterId}/topics/${topicName}/my-apps`); }; export const getBrokerMetadata = (clusterId: number) => { return fetch(`/normal/clusters/${clusterId}/broker-metadata`); }; export const approvalOrder = (params: IApprovalOrder) => { return fetch(`/normal/orders`, { method: 'PUT', body: JSON.stringify(params), }); }; /** * 个人中心 * @see http://127.0.0.1:8080/swagger-ui.html#!/OP4524037213333045620851255092147540REST41/getOrderAppDetailUsingGET */ export const getOrderTypeList = () => { return fetch('/normal/orders/type-enums'); }; // 我的申请 export const getApplyOrderList = (status: number) => { return fetch(`/normal/orders?status=${status === 2 ? '' : status}`); }; export const getOrderDetail = (orderId: number) => { return fetch(`/normal/orders/${orderId}/detail`); }; export const cancelOrder = (id: number) => { return fetch(`/normal/orders?id=${id}`, { method: 'DELETE', }); }; export const batchApprovalOrders = (params: IBatchApproval) => { return fetch(`/normal/orders/batch`, { method: 'PUT', body: JSON.stringify(params), }); }; // 我的审批 export const getApprovalOrderList = (status: number) => { return fetch(`/normal/approvals?status=${status === 2 ? '' : status}`); }; export const getBrokerBasicInfo = (clusterId: number) => { return fetch(`/rd/clusters/${clusterId}/brokers/basic-info`); }; // 我的账单 export const getBillList = (startTime: number, endTime: number) => { return fetch(`/normal/bills/staff-summary?startTime=${startTime}&endTime=${endTime}`); }; export const getBillDetail = (timestamp: number) => { return fetch(`/normal/bills/staff-detail?timestamp=${timestamp}`); }; /** * 运维管控 */ export const getBillStaffSummary = (username: string, startTime: number, endTime: number) => { return fetch(`/rd/bills/${username}/staff-summary?startTime=${startTime}&endTime=${endTime}`); }; export const getBillStaffDetail = (username: string, timestamp: number) => { return fetch(`/rd/bills/${username}/staff-detail?timestamp=${timestamp}`); }; export const getTasksKafkaFiles = (clusterId: number) => { return fetch(`/op/cluster-tasks/kafka-files?clusterId=${clusterId}`); }; export const getMetaData = (needDetail: boolean = true) => { return fetch(`/rd/clusters/basic-info?need-detail=${needDetail}`); }; export const getConfigure = () => { return fetch(`/rd/configs`); }; export const addNewConfigure = (params: IConfigure) => { return fetch(`/rd/configs`, { method: 'POST', body: JSON.stringify(params), }); }; export const editConfigure = (params: IConfigure) => { return fetch(`/rd/configs`, { method: 'PUT', body: JSON.stringify(params), }); }; export const deleteConfigure = (configKey: string) => { return fetch(`/rd/configs?config-key=${configKey}`, { method: 'DELETE', }); }; export const getDataCenter = () => { return fetch(`/normal/configs/idc`); }; export const deleteCluster = (clusterId: number) => { return fetch(`/op/clusters?clusterId=${clusterId}`, { method: 'DELETE', }); }; export const createCluster = (params: IRegister) => { return fetch(`/op/clusters`, { method: 'POST', body: JSON.stringify(params), }); }; export const registerCluster = (params: IRegister) => { return fetch(`/op/clusters`, { method: 'PUT', body: JSON.stringify(params), }); }; export const pauseMonitoring = (clusterId: number, status: number) => { return fetch(`/op/clusters/${clusterId}/monitor?status=${status}`, { method: 'PUT', }); }; export const getBasicInfo = (clusterId: number) => { return fetch(`/rd/clusters/${clusterId}/basic-info?need-detail=false`); }; export const getClusterRealTime = (clusterId: number) => { return fetch(`/rd/clusters/${clusterId}/metrics`); }; export const getClusterMetrice = (clusterId: number, startTime: string, endTime: string) => { return fetch(`/rd/clusters/${clusterId}/metrics-history?startTime=${startTime}&endTime=${endTime}`); }; export const getClusterTopics = (clusterId: number) => { return fetch(`/rd/clusters/${clusterId}/topics`); }; export const getTopicsBasicInfo = (clusterId: number, topicName: string) => { return fetch(`/rd/${clusterId}/topics/${topicName}/basic-info`); }; export const editTopic = (params: IEditTopic) => { return fetch(`/op/utils/topics`, { method: 'PUT', body: JSON.stringify(params), }); }; export const expandPartition = (params: IExpand[]) => { return fetch(`/op/utils/expand-partitions`, { method: 'PUT', body: JSON.stringify(params), }); }; export const deleteClusterTopic = (params: IDeleteTopic[]) => { return fetch(`/op/utils/topics`, { method: 'DELETE', body: JSON.stringify(params), }); }; export const getClusterBroker = (clusterId: number) => { return fetch(`/rd/clusters/${clusterId}/brokers`); }; export const getClusterConsumer = (clusterId: number) => { return fetch(`/rd/${clusterId}/consumer-groups`); }; export const getConsumerDetails = (clusterId: number, consumerGroup: string, location: string) => { // tslint:disable-next-line:max-line-length return fetch(`/rd/${clusterId}/consumer-groups/${consumerGroup}/topics?location=${location}`); }; export const getControllerHistory = (clusterId: number) => { return fetch(`/rd/clusters/${clusterId}/controller-history`); }; /** * 运维管控 broker */ export const getBrokersBasicInfo = (clusterId: number, brokerId: number) => { return fetch(`/rd/${clusterId}/brokers/${brokerId}/basic-info`); }; export const getPeakFlowStatus = () => { return fetch(`/normal/configs/peak-flow-status`); }; export const getBrokersStatus = (clusterId: number) => { return fetch(`/rd/clusters/${clusterId}/brokers-status`); }; export const getBrokersMetrics = (clusterId: number, brokerId: number) => { return fetch(`/rd/${clusterId}/brokers/${brokerId}/metrics`); }; export const getBrokersMetricsHistory = (clusterId: number, brokerId: number, startTime: string, endTime: string) => { return fetch(`/rd/${clusterId}/brokers/${brokerId}/metrics-history?startTime=${startTime}&endTime=${endTime}`); }; export const getBrokersTopics = (clusterId: number, brokerId: number) => { return fetch(`/rd/${clusterId}/brokers/${brokerId}/topics`); }; export const getBrokersPartitions = (clusterId: number, brokerId: number) => { return fetch(`/rd/${clusterId}/brokers/${brokerId}/partitions`); }; export const getBrokersAnalysis = (clusterId: number, brokerId: number) => { return fetch(`/rd/${clusterId}/brokers/${brokerId}/analysis`); }; export const getBrokersMetadata = (clusterId: number) => { return fetch(`/rd/${clusterId}/brokers/broker-metadata`); }; export const getBrokersRegions = (clusterId: number) => { return fetch(`/rd/${clusterId}/regions`); }; export const getLogicalClusters = (clusterId: number) => { return fetch(`/rd/${clusterId}/logical-clusters`); }; export const queryLogicalClusters = (logicalClusterId: number) => { return fetch(`/rd/logical-clusters?id=${logicalClusterId}`); }; export const createLogicalClusters = (params: INewLogical) => { return fetch(`/rd/logical-clusters`, { method: 'POST', body: JSON.stringify(params), }); }; export const editLogicalClusters = (params: INewLogical) => { return fetch(`/rd/logical-clusters`, { method: 'PUT', body: JSON.stringify(params), }); }; export const deteleLogicalClusters = (logicalClusterId: number) => { return fetch(`/rd/logical-clusters?id=${logicalClusterId}`, { method: 'DELETE', }); }; export const deteleClusterBrokers = (clusterId: number, brokerId: number) => { return fetch(`/rd/${clusterId}/brokers?brokerId=${brokerId}`, { method: 'DELETE', }); }; export const getStaffSummary = (timestamp: number) => { return fetch(`/rd/bills/staff-summary?timestamp=${timestamp}`); }; export const addNewRegions = (params: INewRegions) => { return fetch(`/rd/regions`, { method: 'POST', body: JSON.stringify(params), }); }; export const editRegions = (params: INewRegions) => { return fetch(`/rd/regions`, { method: 'PUT', body: JSON.stringify(params), }); }; export const deleteRegions = (params: number) => { return fetch(`/rd/regions?id=${params}`, { method: 'DELETE', }); }; export const implementRegions = (params: IRebalance) => { return fetch(`/op/utils/rebalance`, { method: 'POST', body: JSON.stringify(params), }); }; export const rebalanceStatus = (clusterId: number) => { return fetch(`/op/utils/rebalance-status?clusterId=${clusterId}`); }; export const getClustersThrottles = (clusterId: number) => { return fetch(`/rd/clusters/${clusterId}/throttles`); }; export const getPartitionsLocation = (clusterId: number, brokerId: number) => { return fetch(`/rd/${clusterId}/brokers/${brokerId}/partitions-location`); }; /** * 运维管控 任务管理 */ export const getConfigsTaskStatus = () => { return fetch(`/normal/configs/task-status`); }; export const getTaskManagement = () => { return fetch(`/op/cluster-tasks`); }; export const getClusterTasksEnums = () => { return fetch(`/op/cluster-tasks/enums`); }; export const getConfigsKafkaRoles = () => { return fetch(`/rd/configs/kafka-roles`); }; export const newlyBuildEcmTasks = (params: INewBulidEnums) => { return fetch(`/op/cluster-tasks`, { method: 'POST', body: JSON.stringify(params), }); }; export const getTasksMetadata = (taskId: number) => { return fetch(`/op/cluster-tasks/${taskId}/metadata`); }; export const triggerClusterTask = (params: ITrigger) => { return fetch(`/op/cluster-tasks`, { method: 'PUT', body: JSON.stringify(params), }); }; export const getSubtasksStatus = (taskId: number) => { return fetch(`/op/cluster-tasks/${taskId}/status`); }; export const getClusterTaskLog = (taskId: number, hostname: string) => { return fetch(`/op/cluster-tasks/${taskId}/log?hostname=${hostname}`); }; /** * 运维管控 用户管理 */ export const getUserList = () => { return fetch('/rd/accounts'); }; export const modfiyUser = (params: IUser) => { return fetch('/rd/accounts', { method: 'PUT', body: JSON.stringify(params), }); }; export const addUser = (params: IUser) => { return fetch('/rd/accounts', { method: 'POST', body: JSON.stringify(params), }); }; export const deleteUser = (username: string) => { return fetch(`/rd/accounts?username=${username}`, { method: 'DELETE', }); }; /** * 运维管控 版本管理 */ export const getFileList = () => { return fetch('/rd/kafka-files'); }; export const modfiyFile = (params: IUploadFile) => { const { file, id, description, fileName, fileMd5 } = params; const formData = new FormData(); formData.append('uploadFile', file); formData.append('description', description); formData.append('fileName', fileName); formData.append('fileMd5', fileMd5); formData.append('id', id + ''); return formFetch('/rd/kafka-files?modify=true', { method: 'POST', body: formData, }); }; export const addFile = (params: IUploadFile) => { const { file, fileType, description, fileName, clusterId, fileMd5 } = params; const formData = new FormData(); formData.append('uploadFile', file); formData.append('fileType', fileType + ''); formData.append('fileName', fileName); formData.append('clusterId', clusterId + ''); formData.append('description', description); formData.append('fileMd5', fileMd5); return formFetch('/rd/kafka-files', { method: 'POST', body: formData, }); }; export const deleteFile = (id: number) => { return fetch(`/rd/kafka-files?id=${id}`, { method: 'DELETE', }); }; export const getFileType = () => { return fetch('/rd/kafka-files/enums'); }; export const getConfigFiles = (fileId: number) => { return fetch(`/rd/kafka-files/${fileId}/config-files`); }; /** * 运维管控 应用管理 */ export const getAdminAppList = () => { return fetch(`/rd/apps`); }; export const modfiyAdminApp = (params: any) => { return fetch('/rd/apps', { body: JSON.stringify(params), method: 'PUT', }); }; /** * sso api */ export const getTicketBycode = (code: string) => { return fetch('/sso/opensource/login', { method: 'POST', body: JSON.stringify({ code }), }); }; export const userLogOut = () => { return fetch('/sso/logout', { method: 'DELETE', }); }; /** * 监控报警 alarm */ export const getMonitorStrategies = () => { return fetch('/normal/monitor-strategies'); }; export const deteleMonitorStrategies = (monitorId: number) => { return fetch(`/normal/monitor-strategies?monitorId=${monitorId}`, { method: 'DELETE', }); }; export const getMonitorAlerts = (monitorId: number, startTime: number, endTime: number) => { return fetch(`/normal/monitor-alerts?monitorId=${monitorId}&startTime=${startTime}&endTime=${endTime}`); }; export const getAlertsDetail = (alertId: number) => { return fetch(`/normal/monitor-alerts/${alertId}/detail`); }; export const createSilences = (params: IMonitorSilences) => { return fetch(`/normal/monitor-silences`, { body: JSON.stringify(params), method: 'POST', }); }; export const getMonitorSilences = (monitorId: number) => { return fetch(`/normal/monitor-silences?monitorId=${monitorId}`); }; export const modifyMask = (params: IMonitorSilences) => { return fetch('/normal/monitor-silences', { body: JSON.stringify(params), method: 'PUT', }); }; export const getSilencesDetail = (silenceId: number) => { return fetch(`/normal/monitor-silences/${silenceId}/detail`); }; export const deleteSilences = (monitorId: number, silenceId: number) => { return fetch(`/normal/monitor-silences?monitorId=${monitorId}&silenceId=${silenceId}`, { method: 'DELETE', }); }; export const getMonitorType = () => { return fetch('/normal/monitor-enums'); }; export const addMonitorStrategy = (params: IRequestParams) => { return fetch('/normal/monitor-strategies', { method: 'POST', body: JSON.stringify(params), }); }; export const getMonitorDetail = (monitorId: number) => { return fetch(`/normal/monitor-strategies/${monitorId}/detail`); }; export const modifyMonitorStrategy = (params: IRequestParams) => { return fetch('/normal/monitor-strategies', { method: 'PUT', body: JSON.stringify(params), }); }; export const getMonitorNotifyGroups = () => { return fetch(`/normal/monitor-notify-groups`); };