ui: adds agent logs page in server show

This commit is contained in:
Aaron Greenspan
2021-02-04 12:40:59 -07:00
committed by Aiden McClelland
parent 327c79350e
commit a9735fd777
9 changed files with 206 additions and 0 deletions

View File

@@ -39,6 +39,7 @@ export abstract class ApiService {
abstract getExternalDisks (): Promise<DiskInfo[]>
abstract getAppConfig (appId: string): Promise<{ spec: ConfigSpec, config: object, rules: Rules[]}>
abstract getAppLogs (appId: string, params?: ReqRes.GetAppLogsReq): Promise<string[]>
abstract getServerLogs (): Promise<string>
abstract installApp (appId: string, version: string, dryRun?: boolean): Promise<AppInstalledFull & { breakages: DependentBreakage[] } >
abstract uninstallApp (appId: string, dryRun?: boolean): Promise<{ breakages: DependentBreakage[] }>
abstract startApp (appId: string): Promise<Unit>
@@ -76,7 +77,9 @@ export module ReqRes {
export type GetAppInstalledRes = ApiAppInstalledFull
export type GetAppConfigRes = ApiAppConfig
export type GetAppLogsReq = { after?: string, before?: string, page?: string, perPage?: string }
export type GetServerLogsReq = { }
export type GetAppLogsRes = string[]
export type GetServerLogsRes = string
export type GetAppMetricsRes = AppMetricsVersioned<number>
export type GetAppsInstalledRes = AppInstalledPreview[]
export type PostInstallAppReq = { version: string }

View File

@@ -123,6 +123,10 @@ export class LiveApiService extends ApiService {
return this.authRequest<ReqRes.GetAppLogsRes>( { method: Method.GET, url: `/apps/${appId}/logs`, params: params as any })
}
async getServerLogs (): Promise<string> {
return this.authRequest<ReqRes.GetServerLogsRes>( { method: Method.GET, url: `/logs` })
}
async getAppMetrics (appId: string): Promise<AppMetrics> {
return this.authRequest<ReqRes.GetAppMetricsRes | string>( { method: Method.GET, url: `/apps/${appId}/metrics` })
.then(parseMetricsPermissive)

View File

@@ -113,6 +113,10 @@ export class MockApiService extends ApiService {
return mockGetAppLogs()
}
async getServerLogs (): Promise<string> {
return mockGetServerLogs()
}
async installApp (appId: string, version: string, dryRun: boolean): Promise<AppInstalledFull & { breakages: DependentBreakage[] }> {
return mockInstallApp(appId)
}
@@ -271,6 +275,11 @@ async function mockGetAppLogs (): Promise<ReqRes.GetAppLogsRes> {
return mockApiAppLogs
}
async function mockGetServerLogs (): Promise<ReqRes.GetServerLogsRes> {
await pauseFor(1000)
return mockApiServerLogs.join('\n')
}
async function mockGetAppMetrics (): Promise<ReqRes.GetAppMetricsRes> {
await pauseFor(1000)
return mockApiAppMetricsV1
@@ -610,6 +619,91 @@ const mockApiAppLogs: string[] = [
'****** FINISH *****',
]
const mockApiServerLogs: string[] = [
'****** START *****',
'[ng] 「wdm」: Compiled successfully.',
'[ng] 「wdm」: Compiling...',
'[ng] Date: 2019-12-26T14:20:30.872Z - Hash: 2b2e5abb3cba2164aea0',
'[ng] 114 unchanged chunks',
'[ng] chunk {app-logs-app-logs-module} app-logs-app-logs-module.js, app-logs-app-logs-module.js.map (app-logs-app-logs-module) 7.86 kB [rendered]',
'[ng] Time: 1244ms',
'[ng] 「wdm」: Compiled successfully.',
'[ng] 「wdm」: Compiling...',
'[ng] Date: 2019-12-26T14:21:01.685Z - Hash: bb3f5d0e11f2cd2dd57b',
'[ng] 114 unchanged chunks',
'[ng] chunk {app-logs-app-logs-module} app-logs-app-logs-module.js, app-logs-app-logs-module.js.map (app-logs-app-logs-module) 7.86 kB [rendered]',
'[ng] Time: 1185ms',
'[ng] 「wdm」: Compiled successfully.',
'[ng] 「wdm」: Compiling...',
'[ng] Date: 2019-12-26T14:23:13.812Z - Hash: 9342e11e6b8e16ad2f70',
'[ng] 114 unchanged chunks',
'[ng] 「wdm」: Compiled successfully.',
'[ng] 「wdm」: Compiling...',
'[ng] Date: 2019-12-26T14:20:30.872Z - Hash: 2b2e5abb3cba2164aea0',
'[ng] 114 unchanged chunks',
'[ng] chunk {app-logs-app-logs-module} app-logs-app-logs-module.js, app-logs-app-logs-module.js.map (app-logs-app-logs-module) 7.86 kB [rendered]',
'[ng] Time: 1244ms',
'[ng] 「wdm」: Compiled successfully.',
'[ng] 「wdm」: Compiling...',
'[ng] Date: 2019-12-26T14:21:01.685Z - Hash: bb3f5d0e11f2cd2dd57b',
'[ng] 114 unchanged chunks',
'[ng] chunk {app-logs-app-logs-module} app-logs-app-logs-module.js, app-logs-app-logs-module.js.map (app-logs-app-logs-module) 7.86 kB [rendered]',
'[ng] Time: 1185ms',
'[ng] 「wdm」: Compiled successfully.',
'[ng] 「wdm」: Compiling...',
'[ng] Date: 2019-12-26T14:23:13.812Z - Hash: 9342e11e6b8e16ad2f70',
'[ng] 114 unchanged chunks',
'[ng] 「wdm」: Compiled successfully.',
'[ng] 「wdm」: Compiling...',
'[ng] Date: 2019-12-26T14:20:30.872Z - Hash: 2b2e5abb3cba2164aea0',
'[ng] 114 unchanged chunks',
'[ng] chunk {app-logs-app-logs-module} app-logs-app-logs-module.js, app-logs-app-logs-module.js.map (app-logs-app-logs-module) 7.86 kB [rendered]',
'[ng] Time: 1244ms',
'[ng] 「wdm」: Compiled successfully.',
'[ng] 「wdm」: Compiling...',
'[ng] Date: 2019-12-26T14:21:01.685Z - Hash: bb3f5d0e11f2cd2dd57b',
'[ng] 114 unchanged chunks',
'[ng] chunk {app-logs-app-logs-module} app-logs-app-logs-module.js, app-logs-app-logs-module.js.map (app-logs-app-logs-module) 7.86 kB [rendered]',
'[ng] Time: 1185ms',
'[ng] 「wdm」: Compiled successfully.',
'[ng] 「wdm」: Compiling...',
'[ng] Date: 2019-12-26T14:23:13.812Z - Hash: 9342e11e6b8e16ad2f70',
'[ng] 114 unchanged chunks',
'[ng] 「wdm」: Compiled successfully.',
'[ng] 「wdm」: Compiling...',
'[ng] Date: 2019-12-26T14:20:30.872Z - Hash: 2b2e5abb3cba2164aea0',
'[ng] 114 unchanged chunks',
'[ng] chunk {app-logs-app-logs-module} app-logs-app-logs-module.js, app-logs-app-logs-module.js.map (app-logs-app-logs-module) 7.86 kB [rendered]',
'[ng] Time: 1244ms',
'[ng] 「wdm」: Compiled successfully.',
'[ng] 「wdm」: Compiling...',
'[ng] Date: 2019-12-26T14:21:01.685Z - Hash: bb3f5d0e11f2cd2dd57b',
'[ng] 114 unchanged chunks',
'[ng] chunk {app-logs-app-logs-module} app-logs-app-logs-module.js, app-logs-app-logs-module.js.map (app-logs-app-logs-module) 7.86 kB [rendered]',
'[ng] Time: 1185ms',
'[ng] 「wdm」: Compiled successfully.',
'[ng] 「wdm」: Compiling...',
'[ng] Date: 2019-12-26T14:23:13.812Z - Hash: 9342e11e6b8e16ad2f70',
'[ng] 114 unchanged chunks',
'[ng] 「wdm」: Compiled successfully.',
'[ng] 「wdm」: Compiling...',
'[ng] Date: 2019-12-26T14:20:30.872Z - Hash: 2b2e5abb3cba2164aea0',
'[ng] 114 unchanged chunks',
'[ng] chunk {app-logs-app-logs-module} app-logs-app-logs-module.js, app-logs-app-logs-module.js.map (app-logs-app-logs-module) 7.86 kB [rendered]',
'[ng] Time: 1244ms',
'[ng] 「wdm」: Compiled successfully.',
'[ng] 「wdm」: Compiling...',
'[ng] Date: 2019-12-26T14:21:01.685Z - Hash: bb3f5d0e11f2cd2dd57b',
'[ng] 114 unchanged chunks',
'[ng] chunk {app-logs-app-logs-module} app-logs-app-logs-module.js, app-logs-app-logs-module.js.map (app-logs-app-logs-module) 7.86 kB [rendered]',
'[ng] Time: 1185ms',
'[ng] 「wdm」: Compiled successfully.',
'[ng] 「wdm」: Compiling...',
'[ng] Date: 2019-12-26T14:23:13.812Z - Hash: 9342e11e6b8e16ad2f70',
'[ng] 114 unchanged chunks',
'****** FINISH *****',
]
const mockApiAppMetricsV1: AppMetricsVersioned<2> = {
version: 2,
data: {