| Giorgi Lekveishvili | 378ea88 | 2023-12-12 13:59:18 +0400 | [diff] [blame] | 1 | package tasks |
| 2 | |
| 3 | import ( |
| 4 | "fmt" |
| 5 | "net/http" |
| 6 | "time" |
| gio | e72b54f | 2024-04-22 10:44:41 +0400 | [diff] [blame] | 7 | |
| 8 | phttp "github.com/giolekva/pcloud/core/installer/http" |
| Giorgi Lekveishvili | 378ea88 | 2023-12-12 13:59:18 +0400 | [diff] [blame] | 9 | ) |
| 10 | |
| gio | e72b54f | 2024-04-22 10:44:41 +0400 | [diff] [blame] | 11 | func waitForAddr(client phttp.Client, addr string) Task { |
| Giorgi Lekveishvili | 378ea88 | 2023-12-12 13:59:18 +0400 | [diff] [blame] | 12 | t := newLeafTask(fmt.Sprintf("Wait for %s to come up", addr), func() error { |
| 13 | for { |
| gio | e72b54f | 2024-04-22 10:44:41 +0400 | [diff] [blame] | 14 | if resp, err := client.Get(addr); err != nil || resp.StatusCode != http.StatusOK { |
| Giorgi Lekveishvili | 378ea88 | 2023-12-12 13:59:18 +0400 | [diff] [blame] | 15 | time.Sleep(2 * time.Second) |
| 16 | } else { |
| 17 | return nil |
| 18 | } |
| 19 | } |
| 20 | }) |
| 21 | return &t |
| 22 | } |