Files
backstor-ui/js/mock_api.js
2025-12-08 12:12:07 +07:00

45 lines
2.0 KiB
JavaScript

/**
* Mock Data Service for Bacula Interface
* Simulates API calls to the Bacula Backend
*/
const MOCK_JOBS = [
{ id: 10423, name: 'Weekly-Server-Full', client: 'db-prod-01', level: 'Full', files: 45201, bytes: 48500000000, status: 'Success', startTime: '2025-10-24 02:00:00', duration: '1h 12m' },
{ id: 10424, name: 'Daily-Web-Inc', client: 'web-front-01', level: 'Incremental', files: 1205, bytes: 540000000, status: 'Success', startTime: '2025-10-24 03:30:00', duration: '15m' },
{ id: 10425, name: 'Daily-Web-Inc', client: 'web-front-02', level: 'Incremental', files: 1150, bytes: 520000000, status: 'Warning', startTime: '2025-10-24 03:45:00', duration: '14m' },
{ id: 10426, name: 'Log-Archive', client: 'log-svr-01', level: 'Differential', files: 8500, bytes: 12000000000, status: 'Running', startTime: '2025-10-24 04:00:00', duration: 'Running' },
{ id: 10427, name: 'User-Home-Backup', client: 'file-svr-01', level: 'Full', files: 0, bytes: 0, status: 'Error', startTime: '2025-10-24 01:00:00', duration: '2m' },
];
const MOCK_STATS = {
totalJobs: 1250,
successRate: 98.5,
totalBytes: 85400000000000, // 85.4 TB
activeClients: 42,
storageUsage: 76 // Percent
};
export class MockApi {
static async getDashboardStats() {
return new Promise(resolve => {
setTimeout(() => resolve(MOCK_STATS), 600); // Simulate network latency
});
}
static async getRecentJobs() {
return new Promise(resolve => {
setTimeout(() => resolve(MOCK_JOBS), 800);
});
}
static async getClients() {
return new Promise(resolve => {
setTimeout(() => resolve([
{ name: 'db-prod-01', os: 'Linux (Debian 12)', lastBackup: '2025-10-24 02:00:00', status: 'Online' },
{ name: 'web-front-01', os: 'Linux (Ubuntu 24.04)', lastBackup: '2025-10-24 03:30:00', status: 'Online' },
{ name: 'win-office-01', os: 'Windows Server 2022', lastBackup: '2025-10-23 20:00:00', status: 'Offline' }
]), 500);
});
}
}