aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--api/api.go10
-rw-r--r--api/docker.go36
2 files changed, 46 insertions, 0 deletions
diff --git a/api/api.go b/api/api.go
index b80c208..eaceb3d 100644
--- a/api/api.go
+++ b/api/api.go
@@ -65,6 +65,16 @@ func VttRedirect(w http.ResponseWriter, req *http.Request) {
http.Redirect(w, req, VTT_URL, http.StatusMovedPermanently)
}
+func VttStart(w http.ResponseWriter, req *http.Request) {
+
+}
+func VttStop(w http.ResponseWriter, req *http.Request) {
+
+}
+func VttRestart(w http.ResponseWriter, req *http.Request) {
+
+}
+
func VttLogs(w http.ResponseWriter, req *http.Request) {
var lines uint = 0
diff --git a/api/docker.go b/api/docker.go
index b82b731..4bbb97e 100644
--- a/api/docker.go
+++ b/api/docker.go
@@ -31,6 +31,42 @@ func stopVtt(ctx context.Context) error {
return nil
}
+func startVtt(ctx context.Context) error {
+ apiClient, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation())
+ if err != nil {
+ Logger.ErrorContext(ctx, "Failed to get docker api client", slog.Any("err", err))
+ return err
+ }
+ defer apiClient.Close()
+
+ Logger.InfoContext(ctx, "Starting foundry container")
+ err = apiClient.ContainerStart(ctx, vttContainerId, container.StartOptions{})
+ if err != nil {
+ Logger.ErrorContext(ctx, "Error occured while starting foundry container", slog.Any("err", err))
+ return err
+ }
+
+ return nil
+}
+
+func restartVtt(ctx context.Context) error {
+ apiClient, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation())
+ if err != nil {
+ Logger.ErrorContext(ctx, "Failed to get docker api client", slog.Any("err", err))
+ return err
+ }
+ defer apiClient.Close()
+
+ Logger.InfoContext(ctx, "Starting foundry container")
+ err = apiClient.ContainerRestart(ctx, vttContainerId, container.StopOptions{})
+ if err != nil {
+ Logger.ErrorContext(ctx, "Error occured while restart foundry container", slog.Any("err", err))
+ return err
+ }
+
+ return nil
+}
+
// Get readcloser for logs
// If lines is zero, returns all logs.
func vttLogs(ctx context.Context, lines uint) (io.ReadCloser, error) {