|
|
|
|
@ -158,11 +158,13 @@ class Scenario:
|
|
|
|
|
other = link.b if node.country == link.a else link.a |
|
|
|
|
self.network.netem(node, other, rtt=300, loss=5) |
|
|
|
|
self.duration("wan-degraded", self.args.fault_duration) |
|
|
|
|
before_recovery = {name: self.stream(self.latest[name], source_id)["received"] for name in names} |
|
|
|
|
self.network.bandwidth(link, link.mbps) |
|
|
|
|
for node in NODES: |
|
|
|
|
if node.country in {link.a, link.b}: |
|
|
|
|
self.network.netem(node, link.b if node.country == link.a else link.a) |
|
|
|
|
self.wait("wan-recovery", lambda s: self.ready(s, source_id, names), 90) |
|
|
|
|
self.wait("wan-recovery", lambda s: self.ready(s, source_id, names) and |
|
|
|
|
all(self.stream(s[name], source_id)["received"] > before_recovery[name] for name in names), 90) |
|
|
|
|
self.duration("recovered", 10) |
|
|
|
|
# Узлы без подписки должны прекратить обработку этого экземпляра. |
|
|
|
|
excluded = [name for name in ("n02", "n13") if name != self.args.publisher] |
|
|
|
|
|