Skip to content
This repository was archived by the owner on Aug 18, 2020. It is now read-only.

Commit a8bc8bb

Browse files
committed
[CDEC-439] Move NtpConfiguration to Ntp.Client
1 parent 570fa8d commit a8bc8bb

File tree

16 files changed

+54
-63
lines changed

16 files changed

+54
-63
lines changed

auxx/Main.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import qualified Network.Transport.TCP as TCP (TCPAddr (..))
1111
import qualified System.IO.Temp as Temp
1212
import System.Wlog (LoggerName, logInfo)
1313

14+
import Ntp.Client (NtpConfiguration)
15+
1416
import qualified Pos.Client.CLI as CLI
1517
import Pos.Context (NodeContext (..))
1618
import Pos.Core (ConfigurationError, epochSlots)
@@ -21,7 +23,6 @@ import Pos.Infra.Diffusion.Types (Diffusion, hoistDiffusion)
2123
import Pos.Infra.Network.Types (NetworkConfig (..), Topology (..),
2224
topologyDequeuePolicy, topologyEnqueuePolicy,
2325
topologyFailurePolicy)
24-
import Pos.Infra.Ntp.Configuration (NtpConfiguration)
2526
import Pos.Launcher (HasConfigurations, NodeParams (..),
2627
NodeResources (..), bracketNodeResources, loggerBracket,
2728
lpConsoleLog, runNode, runRealMode, withConfigurations)

auxx/cardano-sl-auxx.cabal

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ library
5656
, cardano-sl-db
5757
, cardano-sl-generator
5858
, cardano-sl-infra
59+
, cardano-sl-networking
5960
, cardano-sl-ssc
6061
, cardano-sl-txp
6162
, cardano-sl-update

infra/cardano-sl-infra.cabal

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,9 +98,6 @@ library
9898
Pos.Infra.Statistics.Ekg
9999
Pos.Infra.Statistics.Statsd
100100

101-
-- NTP
102-
Pos.Infra.Ntp.Configuration
103-
104101
-- Pos.Infra.Binary
105102
Pos.Infra.Binary
106103
Pos.Infra.Binary.DHTModel
@@ -116,7 +113,6 @@ library
116113
other-modules: Paths_cardano_sl_infra
117114

118115
build-depends: aeson
119-
, aeson-options
120116
, async
121117
, base
122118
, parsec

infra/src/Pos/Infra/Ntp.hs

Lines changed: 0 additions & 6 deletions
This file was deleted.

infra/src/Pos/Infra/Ntp/Configuration.hs

Lines changed: 0 additions & 40 deletions
This file was deleted.

lib/src/Pos/Client/CLI/Util.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ import Text.Parsec (parserFail, try)
2323
import qualified Text.Parsec.Char as P
2424
import qualified Text.Parsec.Text as P
2525

26+
import Ntp.Client (NtpConfiguration)
27+
2628
import Pos.Block.Configuration (blockConfiguration)
2729
import Pos.Client.CLI.NodeOptions (CommonNodeArgs (..))
2830
import Pos.Client.CLI.Options (configurationOptions)
@@ -35,7 +37,6 @@ import Pos.Core.Mockable (CurrentTime, Mockable, currentTime)
3537
import Pos.Core.NetworkAddress (addrParser)
3638
import Pos.Crypto (decodeAbstractHash)
3739
import Pos.Delegation.Configuration (dlgConfiguration)
38-
import Pos.Infra.Ntp.Configuration (NtpConfiguration)
3940
import Pos.Launcher.Configuration (Configuration (..),
4041
HasConfigurations)
4142
import Pos.Security.Params (AttackTarget (..), AttackType (..))

lib/src/Pos/Launcher/Configuration.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ import System.FilePath (takeDirectory)
3434
import System.Wlog (LoggerName, WithLogger, askLoggerName, logInfo,
3535
usingLoggerName)
3636

37+
import Ntp.Client (NtpConfiguration)
38+
3739
-- FIXME consistency on the locus of the JSON instances for configuration.
3840
-- Core keeps them separate, infra update and ssc define them on-site.
3941
import Pos.Aeson.Core.Configuration ()
@@ -45,7 +47,6 @@ import Pos.Block.Configuration
4547
import Pos.Configuration
4648
import Pos.Core.Configuration
4749
import Pos.Delegation.Configuration
48-
import Pos.Infra.Ntp.Configuration
4950
import Pos.Ssc.Configuration
5051
import Pos.Txp.Configuration
5152
import Pos.Update.Configuration

lib/src/Test/Pos/Configuration.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ import Universum
2424

2525
import qualified Data.Aeson as J
2626

27+
import Ntp.Client (NtpConfiguration)
28+
2729
import Pos.Block.Configuration (HasBlockConfiguration,
2830
withBlockConfiguration)
2931
import Pos.Configuration (HasNodeConfiguration, withNodeConfiguration)
@@ -33,7 +35,6 @@ import Pos.Core.Configuration (CoreConfiguration (..),
3335
import Pos.Core.Genesis (GenesisSpec (..))
3436
import Pos.Crypto (ProtocolMagic)
3537
import Pos.Delegation (HasDlgConfiguration, withDlgConfiguration)
36-
import Pos.Infra.Ntp.Configuration (NtpConfiguration)
3738
import Pos.Launcher.Configuration (Configuration (..),
3839
HasConfigurations)
3940
import Pos.Ssc.Configuration (HasSscConfiguration,

networking/cardano-sl-networking.cabal

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ Library
4141
other-modules: Data.NonEmptySet
4242

4343
build-depends: aeson
44+
, aeson-options
4445
, async
4546
, attoparsec
4647
, base

networking/src/Ntp/Client.hs

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@
1111
-- | This module implements functionality of NTP client.
1212

1313
module Ntp.Client
14-
( NtpClientSettings (..)
14+
( NtpConfiguration (..)
15+
, NtpClientSettings (..)
16+
, ntpClientSettings
1517
, NtpStatus (..)
1618
, withNtpClient
1719
) where
@@ -24,11 +26,15 @@ import Control.Concurrent.Async (async, cancel, concurrently_, race,
2426
import Control.Concurrent.STM (TVar, modifyTVar', retry)
2527
import Control.Exception (Exception, IOException, catch, handle)
2628
import Control.Monad (forever)
29+
import Data.Aeson (FromJSON (..), ToJSON (..), genericParseJSON,
30+
genericToJSON)
31+
import Data.Aeson.Options (defaultOptions)
2732
import Data.Binary (decodeOrFail)
2833
import qualified Data.ByteString.Lazy as LBS
2934
import qualified Data.List.NonEmpty as NE
3035
import Data.Semigroup (Last (..))
31-
import Data.Time.Units (Microsecond, TimeUnit, toMicroseconds)
36+
import Data.Time.Units (Microsecond, TimeUnit, fromMicroseconds,
37+
toMicroseconds)
3238
import Data.Typeable (Typeable)
3339
import Formatting (sformat, shown, (%))
3440
import qualified Network.Socket as Socket
@@ -80,6 +86,32 @@ data NtpClient = NtpClient
8086
-- ^ Ntp client configuration.
8187
}
8288

89+
data NtpConfiguration = NtpConfiguration
90+
{
91+
ntpcServers :: [String]
92+
-- ^ List of DNS names of ntp servers
93+
, ntpcResponseTimeout :: !Integer
94+
-- ^ how long to await for responses from ntp servers (in microseconds)
95+
, ntpcPollDelay :: !Integer
96+
-- ^ how long to wait between sending requests to the ntp servers (in
97+
-- microseconds)
98+
} deriving (Show, Generic)
99+
100+
instance FromJSON NtpConfiguration where
101+
parseJSON = genericParseJSON defaultOptions
102+
103+
instance ToJSON NtpConfiguration where
104+
toJSON = genericToJSON defaultOptions
105+
106+
ntpClientSettings :: NtpConfiguration -> NtpClientSettings
107+
ntpClientSettings NtpConfiguration {..} = NtpClientSettings
108+
{ ntpServers = ntpcServers
109+
, ntpResponseTimeout = fromMicroseconds $ ntpcResponseTimeout
110+
, ntpPollDelay = fromMicroseconds $ ntpcPollDelay
111+
, ntpSelection = minimum . NE.map abs
112+
-- ^ Take minmum of received offsets.
113+
}
114+
83115
mkNtpClient :: NtpClientSettings -> TVar NtpStatus -> Sockets -> IO NtpClient
84116
mkNtpClient ncSettings ncStatus sock = liftIO $ do
85117
ncSockets <- newTVarIO sock

node/Main.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,14 @@ import Universum
1313
import Data.Maybe (fromJust)
1414
import System.Wlog (LoggerName, logInfo)
1515

16+
import Ntp.Client (NtpConfiguration)
17+
1618
import Pos.Binary ()
1719
import Pos.Client.CLI (CommonNodeArgs (..), NodeArgs (..),
1820
SimpleNodeArgs (..))
1921
import qualified Pos.Client.CLI as CLI
2022
import Pos.Core.Mockable (Production (..), runProduction)
2123
import Pos.Crypto (ProtocolMagic)
22-
import Pos.Infra.Ntp.Configuration (NtpConfiguration)
2324
import Pos.Launcher (HasConfigurations, NodeParams (..),
2425
loggerBracket, runNodeReal, withConfigurations)
2526
import Pos.Launcher.Configuration (AssetLockPath (..))

node/cardano-sl-node.cabal

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ executable cardano-node-simple
2020
, cardano-sl-crypto
2121
, cardano-sl-ssc
2222
, cardano-sl-infra
23+
, cardano-sl-networking
2324
, cardano-sl-util
2425
, cardano-sl
2526
, log-warper

pkgs/default.nix

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16643,7 +16643,6 @@ license = stdenv.lib.licenses.mit;
1664316643
({
1664416644
mkDerivation
1664516645
, aeson
16646-
, aeson-options
1664716646
, async
1664816647
, base
1664916648
, base64-bytestring
@@ -16719,7 +16718,6 @@ configureFlags = [
1671916718
];
1672016719
libraryHaskellDepends = [
1672116720
aeson
16722-
aeson-options
1672316721
async
1672416722
base
1672516723
base64-bytestring
@@ -16984,6 +16982,7 @@ license = stdenv.lib.licenses.mit;
1698416982
({
1698516983
mkDerivation
1698616984
, aeson
16985+
, aeson-options
1698716986
, async
1698816987
, attoparsec
1698916988
, base
@@ -17038,6 +17037,7 @@ isLibrary = true;
1703817037
isExecutable = true;
1703917038
libraryHaskellDepends = [
1704017039
aeson
17040+
aeson-options
1704117041
async
1704217042
attoparsec
1704317043
base

wallet-new/server/Main.hs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,15 @@ import Universum
1010

1111
import Control.Concurrent.STM (newTQueueIO)
1212
import Data.Maybe (fromJust)
13-
import Ntp.Client (NtpStatus, withNtpClient)
13+
import Ntp.Client (NtpConfiguration, NtpStatus, ntpClientSettings,
14+
withNtpClient)
1415
import qualified Pos.Client.CLI as CLI
1516
import Pos.Context (ncUserSecret)
1617
import Pos.Core (epochSlots)
1718
import Pos.Core.Mockable (Production (..), runProduction)
1819
import Pos.Crypto (ProtocolMagic)
1920
import Pos.DB.DB (initNodeDBs)
2021
import Pos.Infra.Diffusion.Types (Diffusion)
21-
import Pos.Infra.Ntp.Configuration (NtpConfiguration,
22-
ntpClientSettings)
2322
import Pos.Launcher (NodeParams (..), NodeResources (..),
2423
bpLoggingParams, bracketNodeResources, loggerBracket,
2524
lpDefaultName, runNode, withConfigurations)

wallet/src/Pos/Wallet/Web/Server/Handlers.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ module Pos.Wallet.Web.Server.Handlers
1111
import Universum
1212

1313
import Ntp.Client (NtpStatus)
14+
1415
import Pos.Wallet.Web.Swagger.Spec (swaggerSpecForWalletApi)
1516
import Servant.API ((:<|>) ((:<|>)))
1617
import Servant.Generic (AsServerT, GenericProduct, ToServant,

wallet/src/Pos/Wallet/Web/Server/Runner.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,11 @@ import qualified Control.Exception.Safe as E
2020
import Control.Monad.Except (MonadError (throwError))
2121
import qualified Control.Monad.Reader as Mtl
2222
import Network.Wai (Application)
23-
import Ntp.Client (NtpStatus)
2423
import Servant.Server (Handler)
2524
import System.Wlog (logInfo, usingLoggerName)
2625

26+
import Ntp.Client (NtpStatus)
27+
2728
import Cardano.NodeIPC (startNodeJsIPC)
2829
import Pos.Core.Mockable (Production (..), runProduction)
2930
import Pos.Core.NetworkAddress (NetworkAddress)

0 commit comments

Comments
 (0)