More robust downtime imitation.

pull/760/head
jMyles 2019-02-14 14:49:13 -07:00
parent 8de5f0e5b0
commit 53a40a3e02
1 changed files with 18 additions and 6 deletions

View File

@ -101,14 +101,26 @@ class NodeIsDownMiddleware(MockRestMiddleware):
"get_treasure_map_from_node",
"put_treasure_map_on_node",
"get_nodes_via_rest",
"consider_arrangement",
)
def see_if_node_is_pretending_to_be_down(node, *args, **kwargs):
if getattr(node, "_is_pretending_to_be_down", False):
raise socket.gaierror
else:
method = getattr(MockRestMiddleware, method_name)
return method(self, node, *args, **kwargs)
def see_if_node_is_pretending_to_be_down(*args, **kwargs):
node = kwargs.get("node")
arrangement = kwargs.get("arrangement")
if node:
if getattr(node, "_is_pretending_to_be_down", False):
raise socket.gaierror
elif arrangement:
# In the case that this is actually an arrangement.
if getattr(arrangement.ursula, "_is_pretending_to_be_down", False):
raise ConnectionRefusedError
else:
print(f"{arrangement.ursula} is up.")
# If we didn't raise...
method = getattr(MockRestMiddleware, method_name)
return method(self, *args, **kwargs)
if method_name in methods_that_are_down:
return see_if_node_is_pretending_to_be_down