From 81c0c8f70ebe2247ba2de8ee879be71ded6acee9 Mon Sep 17 00:00:00 2001 From: JP Appel Date: Wed, 9 Oct 2024 11:36:02 -0400 Subject: Add end point stubs for container controls --- api/api.go | 10 ++++++++++ api/docker.go | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) 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) { -- cgit v1.2.3