Set explicit node config for jepsen tests (#1088)
This commit is contained in:
parent
18bd02423a
commit
903a9f4636
@ -1,6 +1,10 @@
|
|||||||
[{"n1" {:replication-role :main}
|
[{"n1" {:replication-role :main}
|
||||||
"n2" {:replication-role :replica :replication-mode :async :port 10000}
|
"n2" {:replication-role :replica :replication-mode :async :port 10000}
|
||||||
"n3" {:replication-role :replica :replication-mode :async :port 10000}}
|
"n3" {:replication-role :replica :replication-mode :async :port 10000}
|
||||||
|
"n4" {:replication-role :replica :replication-mode :sync :port 10000}
|
||||||
|
"n5" {:replication-role :replica :replication-mode :sync :port 10000}}
|
||||||
{"n1" {:replication-role :main}
|
{"n1" {:replication-role :main}
|
||||||
"n2" {:replication-role :replica :replication-mode :async :port 10000}
|
"n2" {:replication-role :replica :replication-mode :async :port 10000}
|
||||||
"n3" {:replication-role :replica :replication-mode :sync :port 10000}}]
|
"n3" {:replication-role :replica :replication-mode :sync :port 10000}
|
||||||
|
"n4" {:replication-role :replica :replication-mode :sync :port 10000}
|
||||||
|
"n5" {:replication-role :replica :replication-mode :sync :port 10000}}]
|
||||||
|
@ -60,19 +60,6 @@
|
|||||||
:nemesis (:nemesis nemesis)
|
:nemesis (:nemesis nemesis)
|
||||||
:generator gen})))
|
:generator gen})))
|
||||||
|
|
||||||
(defn default-node-configuration
|
|
||||||
"Creates default replication configuration for nodes.
|
|
||||||
All of them are replicas in sync mode."
|
|
||||||
[nodes]
|
|
||||||
(reduce (fn [cur n]
|
|
||||||
(conj cur {n
|
|
||||||
{:replication-role :replica
|
|
||||||
:replication-mode :sync
|
|
||||||
:port 10000
|
|
||||||
:timeout 5}}))
|
|
||||||
{}
|
|
||||||
nodes))
|
|
||||||
|
|
||||||
(defn resolve-hostname
|
(defn resolve-hostname
|
||||||
"Resolve hostnames to ip address"
|
"Resolve hostnames to ip address"
|
||||||
[host]
|
[host]
|
||||||
@ -102,6 +89,8 @@
|
|||||||
"Merge user defined configuration with default configuration.
|
"Merge user defined configuration with default configuration.
|
||||||
Check if the configuration is valid."
|
Check if the configuration is valid."
|
||||||
[nodes node-configs]
|
[nodes node-configs]
|
||||||
|
|
||||||
|
|
||||||
(when-not (every? (fn [config]
|
(when-not (every? (fn [config]
|
||||||
(= 1
|
(= 1
|
||||||
(count
|
(count
|
||||||
@ -113,6 +102,12 @@
|
|||||||
|
|
||||||
|
|
||||||
(doseq [node-config node-configs]
|
(doseq [node-config node-configs]
|
||||||
|
(when-not (= (count node-config) (count nodes))
|
||||||
|
(throw (Exception. "Invalid node configuration. Configuration not specified for all nodes. Check your .edn file.")))
|
||||||
|
|
||||||
|
(when-not (every? #(contains? node-config %) nodes)
|
||||||
|
(throw (Exception. "Invalid node configuration. Configuration missing for some of nodes [:n1 :n2 :n3 :n4 :n5]. Check your .edn file.")))
|
||||||
|
|
||||||
(let [replica-nodes-configs (filter
|
(let [replica-nodes-configs (filter
|
||||||
#(= (:replication-role %) :replica)
|
#(= (:replication-role %) :replica)
|
||||||
(vals node-config))]
|
(vals node-config))]
|
||||||
@ -129,10 +124,7 @@
|
|||||||
"Every replication node requires "
|
"Every replication node requires "
|
||||||
":replication-mode to be defined."))))
|
":replication-mode to be defined."))))
|
||||||
|
|
||||||
(map (fn [node-config] (resolve-all-node-hostnames
|
(map (fn [node-config] (resolve-all-node-hostnames node-config))
|
||||||
(merge
|
|
||||||
(default-node-configuration nodes)
|
|
||||||
node-config)))
|
|
||||||
node-configs))
|
node-configs))
|
||||||
|
|
||||||
(def cli-opts
|
(def cli-opts
|
||||||
|
Loading…
Reference in New Issue
Block a user