From 44def3be8523e690bee0aba152cc8ac3c1d30881 Mon Sep 17 00:00:00 2001 From: Keagan McClelland Date: Wed, 3 Feb 2021 10:44:34 -0700 Subject: [PATCH] release notes plumbing --- agent/src/Handler/Status.hs | 3 +-- agent/src/Handler/Types/V0/Base.hs | 13 ++++++++----- agent/src/Lib/External/Registry.hs | 7 ++++--- agent/src/Lib/Synchronizers.hs | 4 ++-- agent/src/Lib/Tor.hs | 4 +--- 5 files changed, 16 insertions(+), 15 deletions(-) diff --git a/agent/src/Handler/Status.hs b/agent/src/Handler/Status.hs index 5627e1dd4..91784a7c6 100644 --- a/agent/src/Handler/Status.hs +++ b/agent/src/Handler/Status.hs @@ -40,8 +40,7 @@ getVersionR = pure . AppVersionRes $ agentVersion getVersionLatestR :: Handler VersionLatestRes getVersionLatestR = handleS9ErrT $ do s <- getsYesod appSettings - v <- interp s $ Reg.getLatestAgentVersion - pure $ VersionLatestRes v + uncurry VersionLatestRes <$> interp s Reg.getLatestAgentVersion where interp s = ExceptT . liftIO . runError . injectFilesystemBaseFromContext s . runRegistryUrlIOC diff --git a/agent/src/Handler/Types/V0/Base.hs b/agent/src/Handler/Types/V0/Base.hs index ead34abfd..f55618e4d 100644 --- a/agent/src/Handler/Types/V0/Base.hs +++ b/agent/src/Handler/Types/V0/Base.hs @@ -15,11 +15,13 @@ import Lib.Types.Emver import Model data VersionLatestRes = VersionLatestRes - { versionLatestVersion :: Version + { versionLatestVersion :: Version + , versionLatestReleaseNotes :: Maybe Text } deriving (Eq, Show) instance ToJSON VersionLatestRes where - toJSON VersionLatestRes {..} = object $ ["versionLatest" .= versionLatestVersion] + toJSON VersionLatestRes {..} = + object $ ["versionLatest" .= versionLatestVersion, "releaseNotes" .= versionLatestReleaseNotes] instance ToTypedContent VersionLatestRes where toTypedContent = toTypedContent . toJSON instance ToContent VersionLatestRes where @@ -31,14 +33,15 @@ data ServerRes = ServerRes , serverStatus :: Maybe AppStatus , serverStatusAt :: UTCTime , serverVersionInstalled :: Version - , serverNotifications :: [ Entity Notification ] + , serverNotifications :: [Entity Notification] , serverWifi :: WifiList - , serverSsh :: [ SshKeyFingerprint ] + , serverSsh :: [SshKeyFingerprint] , serverAlternativeRegistryUrl :: Maybe Text , serverSpecs :: SpecsRes , serverWelcomeAck :: Bool , serverAutoCheckUpdates :: Bool - } deriving (Eq, Show) + } + deriving (Eq, Show) type JsonEncoding a = Encoding jsonEncode :: (Monad m, ToJSON a) => a -> m (JsonEncoding a) diff --git a/agent/src/Lib/External/Registry.hs b/agent/src/Lib/External/Registry.hs index 14713bfcf..648fa2d5b 100644 --- a/agent/src/Lib/External/Registry.hs +++ b/agent/src/Lib/External/Registry.hs @@ -150,12 +150,13 @@ getAppVersionForSpec appId spec = do v <- o .: "version" pure v -getLatestAgentVersion :: (Has RegistryUrl sig m, Has (Error S9Error) sig m, MonadIO m) => m Version +getLatestAgentVersion :: (Has RegistryUrl sig m, Has (Error S9Error) sig m, MonadIO m) => m (Version, Maybe Text) getLatestAgentVersion = do val <- registryRequest agentVersionPath parseOrThrow agentVersionPath val $ withObject "version response" $ \o -> do - v <- o .: "version" - pure v + v <- o .: "version" + rn <- o .:? "release-notes" + pure (v, rn) where agentVersionPath = "sys/version/agent" getLatestAgentVersionForSpec :: (Has RegistryUrl sig m, Has (Lift IO) sig m, Has (Error S9Error) sig m) diff --git a/agent/src/Lib/Synchronizers.hs b/agent/src/Lib/Synchronizers.hs index 3a09c40e7..dc9543ee4 100644 --- a/agent/src/Lib/Synchronizers.hs +++ b/agent/src/Lib/Synchronizers.hs @@ -480,7 +480,7 @@ replaceDerivativeCerts :: (HasFilesystemBase sig m, Fused.Has (Error S9Error) si replaceDerivativeCerts = do sid <- getStart9AgentHostname let hostname = sid <> ".local" - tor <- getAgentHiddenServiceUrl + torAddr <- getAgentHiddenServiceUrl caKeyPath <- toS <$> getAbsoluteLocationFor rootCaKeyPath caConfPath <- toS <$> getAbsoluteLocationFor rootCaOpenSslConfPath @@ -531,7 +531,7 @@ replaceDerivativeCerts = do , duration = 365 } hostname - tor + torAddr liftIO $ do putStrLn @Text "openssl logs" putStrLn @Text "exit code: " diff --git a/agent/src/Lib/Tor.hs b/agent/src/Lib/Tor.hs index 8f5f5da27..9558c757f 100644 --- a/agent/src/Lib/Tor.hs +++ b/agent/src/Lib/Tor.hs @@ -7,9 +7,7 @@ import Network.HTTP.Client import Network.Connection import Lib.SystemPaths -import Network.HTTP.Client.TLS ( mkManagerSettings - , newTlsManagerWith - ) +import Network.HTTP.Client.TLS ( mkManagerSettings ) import Data.Default getAgentHiddenServiceUrl :: (HasFilesystemBase sig m, MonadIO m) => m Text