From 35fb7572cd0276ec60026e317ac24d37ca65a961 Mon Sep 17 00:00:00 2001
From: Florian Sesser <florian@private.storage>
Date: Wed, 25 Aug 2021 15:41:33 +0000
Subject: [PATCH] Fix system tests

Write Python with Nix (?).
---
 nixos/modules/tests/private-storage.nix | 32 +++++++++++++------------
 1 file changed, 17 insertions(+), 15 deletions(-)

diff --git a/nixos/modules/tests/private-storage.nix b/nixos/modules/tests/private-storage.nix
index cca1ad46..59c572fa 100644
--- a/nixos/modules/tests/private-storage.nix
+++ b/nixos/modules/tests/private-storage.nix
@@ -82,11 +82,7 @@ let
     let
       command = builtins.concatStringsSep " " argv;
     in
-      "
-      \$${node}->succeed('set -eo pipefail; ${command} | systemd-cat');
-      # succeed() is not success but 1 is.
-      1;
-      ";
+      "${node}.succeed('set -eo pipefail; ${command} | systemd-cat')";
 
   pspkgs = import ../../../nixpkgs-ps.nix { };
 
@@ -199,17 +195,17 @@ in {
     # doesn't prove it is so but if it fails it's a pretty good indication
     # it isn't so.
     storage.wait_for_open_port(22)
-    issuer.succeed("ssh probeuser@storage")
-    issuer.succeed("ssh root@storage")
+    ${runOnNode "issuer" (ssh "probeuser" "storage")}
+    ${runOnNode "issuer" (ssh "root" "storage")}
     issuer.wait_for_open_port(22)
-    storage.succeed("ssh probeuser@issuer")
-    storage.succeed("ssh root@issuer")
+    ${runOnNode "storage" (ssh "probeuser" "issuer")}
+    ${runOnNode "storage" (ssh "root" "issuer")}
 
     # Set up a Tahoe-LAFS introducer.
     introducer.copy_from_host('${pemFile}', '/tmp/node.pem')
 
     try:
-      introducer.succeed('run-introducer /tmp/node.pem ${toString introducerPort} ${introducerFURL}')
+      ${runOnNode "introducer" [ run-introducer "/tmp/node.pem" (toString introducerPort) introducerFURL ]}
     except:
       code, log = introducer.execute('cat /tmp/stdout /tmp/stderr')
       introducer.log(log)
@@ -239,7 +235,7 @@ in {
     #
     # Storage appears to be working so try to get a client to speak with it.
     #
-    client.succeed('run-client /tmp/client ${introducerFURL} ${issuerURL}')
+    ${runOnNode "client" [ run-client "/tmp/client" introducerFURL issuerURL ]}
     client.wait_for_open_port(3456)
 
     # Make sure the fake Stripe API server is ready for requests.
@@ -252,7 +248,13 @@ in {
 
     # Get some ZKAPs from the issuer.
     try:
-      client.succeed('get-passes http://127.0.0.1:3456 /tmp/client/private/api_auth_token ${issuerURL} ${voucher}')
+      ${runOnNode "client" [
+        get-passes
+        "http://127.0.0.1:3456"
+        "/tmp/client/private/api_auth_token"
+        issuerURL
+        voucher
+      ]}
     except:
       code, log = client.execute('cat /tmp/stdout /tmp/stderr');
       client.log(log)
@@ -265,7 +267,7 @@ in {
 
     # The client should be prepped now.  Make it try to use some storage.
     try:
-      client.succeed('exercise-storage /tmp/client')
+      ${runOnNode "client" [ exercise-storage "/tmp/client" ]}
     except:
       code, log = client.execute('cat /tmp/stdout /tmp/stderr')
       client.log(log)
@@ -276,7 +278,7 @@ in {
     try:
       furlfile = '/var/db/tahoe-lafs/storage/private/storage-plugin.privatestorageio-zkapauthz-v1.furl'
       before = storage.execute('cat ' + furlfile)
-      storage.succeed('systemctl restart tahoe.storage')
+      ${runOnNode "storage" [ "systemctl" "restart" "tahoe.storage" ]}
       after = storage.execute('cat ' + furlfile)
       if (before != after):
         raise Exception('fURL changes after storage node restart')
@@ -287,7 +289,7 @@ in {
 
     # The client should actually still work, too.
     try:
-      client.succeed('exercise-storage /tmp/client')
+      ${runOnNode "client" [ exercise-storage "/tmp/client" ]}
     except:
       code, log = client.execute('cat /tmp/stdout /tmp/stderr')
       client.log(log)
-- 
GitLab