installer-env: wait for services to be reachable
diff --git a/core/installer/tasks/web.go b/core/installer/tasks/web.go
new file mode 100644
index 0000000..5136287
--- /dev/null
+++ b/core/installer/tasks/web.go
@@ -0,0 +1,20 @@
+package tasks
+
+import (
+ "fmt"
+ "net/http"
+ "time"
+)
+
+func waitForAddr(addr string) Task {
+ t := newLeafTask(fmt.Sprintf("Wait for %s to come up", addr), func() error {
+ for {
+ if resp, err := http.Get(addr); err != nil || resp.StatusCode != http.StatusOK {
+ time.Sleep(2 * time.Second)
+ } else {
+ return nil
+ }
+ }
+ })
+ return &t
+}