From 0d1e017e096f99f0f65d5bdcfe2de0f518f4383a Mon Sep 17 00:00:00 2001 From: Matthew Sevey Date: Fri, 14 Aug 2020 14:11:56 -0400 Subject: [PATCH] sia: setup docker with sia-antfarm for test #4514 Always pull the latest Sia Antfarm docker image Add wait for Sia renter to become upload ready Co-authored-by: Filip Rysavy --- backend/sia/sia.go | 5 ++-- fstest/testserver/init.d/TestSia | 45 ++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 2 deletions(-) create mode 100755 fstest/testserver/init.d/TestSia diff --git a/backend/sia/sia.go b/backend/sia/sia.go index 11c0c2323..07747bdb6 100644 --- a/backend/sia/sia.go +++ b/backend/sia/sia.go @@ -4,8 +4,6 @@ import ( "context" "encoding/json" "fmt" - "github.com/rclone/rclone/fs/config" - "github.com/rclone/rclone/lib/encoder" "io" "net/http" "net/url" @@ -13,6 +11,9 @@ import ( "strings" "time" + "github.com/rclone/rclone/fs/config" + "github.com/rclone/rclone/lib/encoder" + "github.com/pkg/errors" "github.com/rclone/rclone/backend/sia/api" "github.com/rclone/rclone/fs" diff --git a/fstest/testserver/init.d/TestSia b/fstest/testserver/init.d/TestSia new file mode 100755 index 000000000..d98a2a26a --- /dev/null +++ b/fstest/testserver/init.d/TestSia @@ -0,0 +1,45 @@ +#!/bin/bash + +set -e + +NAME=Sia + +. $(dirname "$0")/docker.bash + +start() { + docker run --rm -d --name $NAME \ + --publish 127.0.0.1:9980:9980 \ + nebulouslabs/siaantfarm + + # pull latest remote image (do not use latest local image) + docker pull nebulouslabs/siaantfarm:latest + + # start antfarm with the default config + docker run --rm -d --name "$NAME" \ + -p "${SIA_CONN}:${SIA_PORT}" \ + nebulouslabs/siaantfarm:latest + + # wait until Sia test network is up, the Sia renter forms contracts on the + # blockchain and the renter is upload ready + until wget --user-agent="Sia-Agent" -q -O - "${SIA_CONN}/renter/uploadready" | grep '"ready":true' + do + sleep 1 + done + + # confirm backend type in the generated rclone.conf + echo "type=sia" + # override keys in the Sia section of generated rclone.conf + echo "api_url=http://${SIA_CONN}/" + # hint test harness where to probe for connection + echo "_connect=${SIA_CONN}" +} + +stop() { + if status ; then + docker logs "$NAME" >> sia-test.log 2>&1 + docker kill "$NAME" + echo "${NAME} stopped" + fi +} + +. $(dirname "$0")/run.bash