From b152a93dd810128a7570b28a8da10e88e02deb0a Mon Sep 17 00:00:00 2001 From: Keagan McClelland Date: Wed, 3 Mar 2021 14:42:47 -0700 Subject: [PATCH] should fix the logs api --- agent/src/Handler/Status.hs | 9 ++++----- ui/src/app/services/api/api.service.ts | 16 ++++++++-------- ui/src/app/services/api/live-api.service.ts | 2 +- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/agent/src/Handler/Status.hs b/agent/src/Handler/Status.hs index e98c3f88c..43ebf95ac 100644 --- a/agent/src/Handler/Status.hs +++ b/agent/src/Handler/Status.hs @@ -31,8 +31,6 @@ import Control.Carrier.Lift ( runM ) import System.Process import qualified UnliftIO import System.FileLock -import Yesod.Core.Content ( typePlain ) -import Conduit getVersionR :: Handler AppVersionRes getVersionR = pure . AppVersionRes $ agentVersion @@ -52,7 +50,8 @@ getSpecsR = handleS9ErrT $ do specsDisk <- fmap show . metricDiskSize <$> getDfMetrics specsNetworkId <- lift . runM . injectFilesystemBaseFromContext settings $ getStart9AgentHostname specsTorAddress <- lift . runM . injectFilesystemBaseFromContext settings $ getAgentHiddenServiceUrl - specsLanAddress <- fmap ( <> ".local" ) . lift . runM . injectFilesystemBaseFromContext settings $ getStart9AgentHostname + specsLanAddress <- + fmap (<> ".local") . lift . runM . injectFilesystemBaseFromContext settings $ getStart9AgentHostname let specsAgentVersion = agentVersion returnJsonEncoding SpecsRes { .. } @@ -74,9 +73,9 @@ patchServerR = do getGitR :: Handler Text getGitR = pure $embedGitRevision -getLogsR :: Handler TypedContent +getLogsR :: Handler (JSONResponse [Text]) getLogsR = do let debugLock = "/root/agent/tmp/debug.lock" UnliftIO.bracket (liftIO $ lockFile debugLock Exclusive) (liftIO . unlockFile) $ const $ do liftIO $ callCommand "journalctl -u agent --since \"1 hour ago\" > /root/agent/tmp/debug.log" - respondSource typePlain $ sourceFile "/root/agent/tmp/debug.log" .| awaitForever sendChunkBS + liftIO $ JSONResponse . lines <$> readFile "/root/agent/tmp/debug.log" diff --git a/ui/src/app/services/api/api.service.ts b/ui/src/app/services/api/api.service.ts index 03ed77830..f98d008a1 100644 --- a/ui/src/app/services/api/api.service.ts +++ b/ui/src/app/services/api/api.service.ts @@ -39,10 +39,10 @@ export abstract class ApiService { abstract getAppMetrics (appId: string): Promise abstract getInstalledApps (): Promise abstract getExternalDisks (): Promise - abstract getAppConfig (appId: string): Promise<{ spec: ConfigSpec, config: object, rules: Rules[]}> + abstract getAppConfig (appId: string): Promise<{ spec: ConfigSpec, config: object, rules: Rules[] }> abstract getAppLogs (appId: string, params?: ReqRes.GetAppLogsReq): Promise - abstract getServerLogs (): Promise - abstract installApp (appId: string, version: string, dryRun?: boolean): Promise + abstract getServerLogs (): Promise + abstract installApp (appId: string, version: string, dryRun?: boolean): Promise abstract uninstallApp (appId: string, dryRun?: boolean): Promise<{ breakages: DependentBreakage[] }> abstract startApp (appId: string): Promise abstract stopApp (appId: string, dryRun?: boolean): Promise<{ breakages: DependentBreakage[] }> @@ -51,7 +51,7 @@ export abstract class ApiService { abstract restoreAppBackup (appId: string, logicalname: string, password?: string): Promise abstract stopAppBackup (appId: string): Promise abstract patchAppConfig (app: AppInstalledPreview, config: object, dryRun?: boolean): Promise<{ breakages: DependentBreakage[] }> - abstract postConfigureDependency (dependencyId: string, dependentId: string, dryRun?: boolean): Promise< { config: object, breakages: DependentBreakage[] }> + abstract postConfigureDependency (dependencyId: string, dependentId: string, dryRun?: boolean): Promise<{ config: object, breakages: DependentBreakage[] }> abstract patchServerConfig (attr: string, value: any): Promise abstract wipeAppData (app: AppInstalledPreview): Promise abstract addSSHKey (sshKey: string): Promise @@ -66,11 +66,11 @@ export abstract class ApiService { abstract refreshLAN (): Promise } -export function isRpcFailure (arg: { error: Error } | { result: Result}): arg is { error: Error } { +export function isRpcFailure (arg: { error: Error } | { result: Result }): arg is { error: Error } { return !!(arg as any).error } -export function isRpcSuccess (arg: { error: Error } | { result: Result}): arg is { result: Result } { +export function isRpcSuccess (arg: { error: Error } | { result: Result }): arg is { result: Result } { return !!(arg as any).result } @@ -86,7 +86,7 @@ export module ReqRes { export type ServiceActionResponse = { jsonrpc: '2.0', id: string - } & ({ error: { code: number, message: string } } | { result : string }) + } & ({ error: { code: number, message: string } } | { result: string }) export type GetCheckAuthRes = { } export type GetServerRes = ApiServer export type GetVersionLatestRes = { versionLatest: string, releaseNotes: string } @@ -100,7 +100,7 @@ export module ReqRes { export type GetAppLogsReq = { after?: string, before?: string, page?: string, perPage?: string } export type GetServerLogsReq = { } export type GetAppLogsRes = string[] - export type GetServerLogsRes = string + export type GetServerLogsRes = string[] export type GetAppMetricsRes = AppMetricsVersioned export type GetAppsInstalledRes = AppInstalledPreview[] export type PostInstallAppReq = { version: string } diff --git a/ui/src/app/services/api/live-api.service.ts b/ui/src/app/services/api/live-api.service.ts index 517d4695b..f71963883 100644 --- a/ui/src/app/services/api/live-api.service.ts +++ b/ui/src/app/services/api/live-api.service.ts @@ -131,7 +131,7 @@ export class LiveApiService extends ApiService { return this.authRequest({ method: Method.GET, url: `/apps/${appId}/logs`, params: params as any }) } - async getServerLogs(): Promise { + async getServerLogs(): Promise { return this.authRequest({ method: Method.GET, url: `/logs` }) }