45 lines
2.0 KiB
JavaScript
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);
|
|
});
|
|
}
|
|
}
|