{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PackageImports #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module Ouroboros.Network.Tracing.PeerSelection.RootPeersDNS.PublicRootPeers () where
import "aeson" Data.Aeson (Value (String), toJSON, toJSONList, (.=))
import "ouroboros-network" Ouroboros.Network.OrphanInstances qualified ()
import "ouroboros-network" Ouroboros.Network.PeerSelection.RootPeersDNS.PublicRootPeers
(TracePublicRootPeers (..))
import "text" Data.Text (pack)
import "trace-dispatcher" Cardano.Logging
instance LogFormatting TracePublicRootPeers where
forMachine :: DetailLevel -> TracePublicRootPeers -> Object
forMachine DetailLevel
_dtal (TracePublicRootRelayAccessPoint Map RelayAccessPoint PeerAdvertise
relays) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"PublicRootRelayAddresses"
, Key
"relayAddresses" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Map RelayAccessPoint PeerAdvertise -> Value
forall a. ToJSON a => a -> Value
toJSON Map RelayAccessPoint PeerAdvertise
relays
]
forMachine DetailLevel
_dtal (TracePublicRootDomains [RelayAccessPoint]
domains) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"PublicRootDomains"
, Key
"domainAddresses" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [RelayAccessPoint] -> Value
forall a. ToJSON a => [a] -> Value
toJSONList [RelayAccessPoint]
domains
]
forHuman :: TracePublicRootPeers -> Text
forHuman = String -> Text
pack (String -> Text)
-> (TracePublicRootPeers -> String) -> TracePublicRootPeers -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. TracePublicRootPeers -> String
forall a. Show a => a -> String
show
instance MetaTrace TracePublicRootPeers where
namespaceFor :: TracePublicRootPeers -> Namespace TracePublicRootPeers
namespaceFor TracePublicRootRelayAccessPoint {} = [Text] -> [Text] -> Namespace TracePublicRootPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"PublicRootRelayAccessPoint"]
namespaceFor TracePublicRootDomains {} = [Text] -> [Text] -> Namespace TracePublicRootPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"PublicRootDomains"]
severityFor :: Namespace TracePublicRootPeers
-> Maybe TracePublicRootPeers -> Maybe SeverityS
severityFor (Namespace [] [Text
"PublicRootRelayAccessPoint"]) Maybe TracePublicRootPeers
_ = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Info
severityFor (Namespace [] [Text
"PublicRootDomains"]) Maybe TracePublicRootPeers
_ = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Info
severityFor Namespace TracePublicRootPeers
_ Maybe TracePublicRootPeers
_ = Maybe SeverityS
forall a. Maybe a
Nothing
documentFor :: Namespace TracePublicRootPeers -> Maybe Text
documentFor (Namespace [] [Text
"PublicRootRelayAccessPoint"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
Text
""
documentFor (Namespace [] [Text
"PublicRootDomains"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
Text
""
documentFor Namespace TracePublicRootPeers
_ = Maybe Text
forall a. Maybe a
Nothing
allNamespaces :: [Namespace TracePublicRootPeers]
allNamespaces = [
[Text] -> [Text] -> Namespace TracePublicRootPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"PublicRootRelayAccessPoint"]
, [Text] -> [Text] -> Namespace TracePublicRootPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"PublicRootDomains"]
]