wolf 0.2.11 → 0.2.12
raw patch · 2 files changed
+22/−33 lines, 2 files
Files
- src/Network/AWS/Flow.hs +21/−32
- wolf.cabal +1/−1
src/Network/AWS/Flow.hs view
@@ -77,15 +77,6 @@ logInfo' $ sformat ("event=execute uid=" % stext) uid startWorkflowExecutionAction uid tskName tskVersion tskQueue input -serializeError :: MonadFlow m => Error -> m ()-serializeError = \case- e@(SerializeError s) ->- unless check $ throwM e where- check =- s ^. serializeStatus == ok200 &&- s ^. serializeAbbrev == "SWF"- e -> throwM e- exitCode :: RE Char Int exitCode = many anySym *> string "exit status: " *> num <* many anySym where@@ -99,31 +90,29 @@ respondActivityTaskFailedAction token act :: MonadFlow m => Queue -> (Uid -> Metadata -> [Blob] -> m (Metadata, [Artifact], Maybe SomeException)) -> m ()-act queue action =- handle serializeError $ do- logInfo' "event=act"- (token', uid', input) <- pollForActivityTaskAction queue- token <- maybeThrow (userError "No Token") token'- uid <- maybeThrow (userError "No Uid") uid'- logInfo' $ sformat ("event=act-begin uid=" % stext) uid- maybe_ input $ logDebug' . sformat ("event=act-input " % stext)- keys <- listObjectsAction uid- unless (null keys) $ logInfo' $ sformat ("event=list-blobs uid=" % stext) uid- blobs <- forM keys $ getObjectAction uid- unless (null blobs) $ logInfo' $ sformat ("event=blobs uid=" % stext) uid- (output, artifacts, e) <- action uid input blobs- maybe_ output $ logDebug' . sformat ("event=act-output " % stext)- logInfo' $ sformat ("event=act-finish uid=" % stext) uid- forM_ artifacts $ putObjectAction uid- unless (null artifacts) $ logInfo' $ sformat ("event=artifacts uid=" % stext) uid- maybe (respondActivityTaskCompletedAction token output) (actException token) e+act queue action = do+ logInfo' "event=act"+ (token', uid', input) <- pollForActivityTaskAction queue+ maybe_ token' $ \token ->+ maybe_ uid' $ \uid -> do+ logInfo' $ sformat ("event=act-begin uid=" % stext) uid+ maybe_ input $ logDebug' . sformat ("event=act-input " % stext)+ keys <- listObjectsAction uid+ unless (null keys) $ logInfo' $ sformat ("event=list-blobs uid=" % stext) uid+ blobs <- forM keys $ getObjectAction uid+ unless (null blobs) $ logInfo' $ sformat ("event=blobs uid=" % stext) uid+ (output, artifacts, e) <- action uid input blobs+ maybe_ output $ logDebug' . sformat ("event=act-output " % stext)+ logInfo' $ sformat ("event=act-finish uid=" % stext) uid+ forM_ artifacts $ putObjectAction uid+ unless (null artifacts) $ logInfo' $ sformat ("event=artifacts uid=" % stext) uid+ maybe (respondActivityTaskCompletedAction token output) (actException token) e decide :: MonadFlow m => Plan -> m ()-decide plan@Plan{..} =- handle serializeError $ do- logInfo' "event=decide"- (token', events) <- pollForDecisionTaskAction (tskQueue $ strtTask plnStart)- token <- maybeThrow (userError "No Token") token'+decide plan@Plan{..} = do+ logInfo' "event=decide"+ (token', events) <- pollForDecisionTaskAction (tskQueue $ strtTask plnStart)+ maybe_ token' $ \token -> do logger <- asks feLogger decisions <- runDecide logger plan events select respondDecisionTaskCompletedAction token decisions
wolf.cabal view
@@ -1,5 +1,5 @@ name: wolf-version: 0.2.11+version: 0.2.12 synopsis: Amazon Simple Workflow Service Wrapper. homepage: https://github.com/swift-nav/wolf license: MIT