From 23077c6c6b3701558e9a54c65e3091dcd65f7a59 Mon Sep 17 00:00:00 2001 From: Aaron Greenspan Date: Tue, 12 Jan 2021 15:33:03 -0700 Subject: [PATCH] agent: errorT to errorC handling in eject disks --- agent/src/Handler/Backups.hs | 6 +++--- agent/src/Startlude.hs | 9 ++++++++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/agent/src/Handler/Backups.hs b/agent/src/Handler/Backups.hs index c7400ce85..ae29bf235 100644 --- a/agent/src/Handler/Backups.hs +++ b/agent/src/Handler/Backups.hs @@ -99,12 +99,12 @@ getDisksR :: Handler (JSONResponse [AppMgr.DiskInfo]) getDisksR = fmap JSONResponse . runM . handleS9ErrC $ listDisksLogic deleteDisksR :: Handler () -deleteDisksR = handleS9ErrT $ do +deleteDisksR = runM . handleS9ErrC $ do logicalName <- lookupGetParam "logicalName" >>= orThrow400 - runM . handleS9ErrC $ ejectDiskLogic logicalName + ejectDiskLogic logicalName where orThrow400 = \case - Nothing -> throwE $ ParamsE "logicalName" + Nothing -> throwError $ ParamsE "logicalName" Just p -> pure p diff --git a/agent/src/Startlude.hs b/agent/src/Startlude.hs index 7277be2ff..4da76e12d 100644 --- a/agent/src/Startlude.hs +++ b/agent/src/Startlude.hs @@ -69,12 +69,12 @@ instance MonadResource m => MonadResource (FE.ReaderC r m) where instance MonadResource m => MonadResource (FE.ErrorC e m) where liftResourceT = lift . liftResourceT - instance MonadThrow (sub m) => MonadThrow (FE.Labelled label sub m) where throwM = FE.Labelled . throwM instance MonadThrow m => MonadThrow (FE.LiftC m) where throwM = FE.LiftC . throwM +instance MonadLogger m => MonadLogger (FE.ErrorC e m) where instance MonadLogger m => MonadLogger (FE.LiftC m) where instance MonadLogger (sub m) => MonadLogger (FE.Labelled label sub m) where monadLoggerLog a b c d = FE.Labelled $ monadLoggerLog a b c d @@ -91,6 +91,13 @@ instance MonadHandler (sub m) => MonadHandler (FE.Labelled label sub m) where liftHandler = FE.Labelled . liftHandler liftSubHandler = FE.Labelled . liftSubHandler + +instance MonadHandler m => MonadHandler (FE.ErrorC e m) where + type HandlerSite (FE.ErrorC e m) = HandlerSite m + type SubHandlerSite (FE.ErrorC e m) = SubHandlerSite m + liftHandler = lift . liftHandler + liftSubHandler = lift . liftSubHandler + instance MonadTransControl t => MonadTransControl (FE.Labelled k t) where type StT (FE.Labelled k t) a = StT t a liftWith f = FE.Labelled $ liftWith $ \run -> f (run . FE.runLabelled)