@@ -30,6 +30,7 @@ import qualified Data.Csv as C
3030import Data.Fixed
3131import Data.Foldable
3232import Data.Functor
33+import Data.Functor.Contravariant
3334import Data.Generics.Labels ()
3435import Data.Generics.Product
3536import Data.IORef
@@ -471,7 +472,9 @@ getFullInfo ::
471472 m [DeploymentFullInfo]
472473getFullInfo = do
473474 AppState {logger = l} <- ask
474− deploymentsSchema <- runStatement . select $ each deploymentSchema
475+ deploymentsSchema <-
476+ runStatement . select . orderBy (view #updatedAt >$< desc) $
477+ each deploymentSchema
475478 deployments <- forM deploymentsSchema extractDeploymentFullInfo
476479 liftBase . logInfo l $ "get deployments: " <> (pack . show $ deployments)
477480 return deployments
@@ -510,7 +513,7 @@ createH dep = do
510513 , createdAt = now
511514 , updatedAt = now
512515 , archivedAt = litExpr Nothing
513− , status = litExpr Running
516+ , status = litExpr CreatePending
514517 , statusUpdatedAt = now
515518 , checkedAt = now
516519 , metadata = litExpr (DeploymentMetadata [])
@@ -593,12 +596,14 @@ selectDeploymentLogs ::
593596 (MonadBaseControl IO m, MonadReader AppState m) =>
594597 DeploymentName ->
595598 m [DeploymentLog]
596−selectDeploymentLogs dName = (fmap . fmap) extractDeploymentLog . runStatement . select $ do
597− dls <- each deploymentLogSchema
598− ds <- each deploymentSchema
599− where_ $ ds ^. #name ==. litExpr dName
600− where_ $ dls ^. #deploymentId ==. ds ^. #id_
601− pure dls
599+selectDeploymentLogs dName = (fmap . fmap) extractDeploymentLog . runStatement . select
600+ . orderBy (view #createdAt >$< desc)
601+ $ do
602+ dls <- each deploymentLogSchema
603+ ds <- each deploymentSchema
604+ where_ $ ds ^. #name ==. litExpr dName
605+ where_ $ dls ^. #deploymentId ==. ds ^. #id_
606+ pure dls
602607
603608data StatusTransitionProcessOutput = StatusTransitionProcessOutput
604609 { exitCode :: ExitCode
@@ -719,6 +724,7 @@ transitionToStatus dName s = do
719724 dep
720725 & #status .~ litExpr newS
721726 & #updatedAt .~ now
727+ & #statusUpdatedAt .~ now
722728 & if newS == Archived then #archivedAt .~ nullify now else id
723729 , updateWhere = \() dep -> dep ^. #name ==. litExpr dName
724730 , returning = Projection id