diff --git a/api/cmd/portainer/main.go b/api/cmd/portainer/main.go index ca0d58e8a..8bb5cdf8c 100644 --- a/api/cmd/portainer/main.go +++ b/api/cmd/portainer/main.go @@ -71,7 +71,12 @@ func initDataStore(dataStorePath string, fileService portainer.FileService) port return store } -func initComposeStackManager(dataStorePath string, reverseTunnelService portainer.ReverseTunnelService) portainer.ComposeStackManager { +func initComposeStackManager(assetsPath string, dataStorePath string, reverseTunnelService portainer.ReverseTunnelService) portainer.ComposeStackManager { + composeWrapper := exec.NewComposeWrapper(assetsPath) + if composeWrapper != nil { + return composeWrapper + } + return libcompose.NewComposeStackManager(dataStorePath, reverseTunnelService) } @@ -385,9 +390,7 @@ func main() { log.Fatal(err) } - composeStackManager := initComposeStackManager(*flags.Data, reverseTunnelService) - - composeWrapper := exec.NewComposeWrapper(*flags.Assets) + composeStackManager := initComposeStackManager(*flags.Assets, *flags.Data, reverseTunnelService) kubernetesDeployer := initKubernetesDeployer(*flags.Assets) @@ -461,7 +464,6 @@ func main() { DataStore: dataStore, SwarmStackManager: swarmStackManager, ComposeStackManager: composeStackManager, - ComposeWrapper: composeWrapper, KubernetesDeployer: kubernetesDeployer, CryptoService: cryptoService, JWTService: jwtService, diff --git a/api/http/handler/stacks/create_compose_stack.go b/api/http/handler/stacks/create_compose_stack.go index 0e4169293..52fc2844c 100644 --- a/api/http/handler/stacks/create_compose_stack.go +++ b/api/http/handler/stacks/create_compose_stack.go @@ -373,7 +373,7 @@ func (handler *Handler) deployComposeStack(config *composeStackDeploymentConfig) handler.SwarmStackManager.Login(config.dockerhub, config.registries, config.endpoint) - err = handler.pickComposeStackManager().Up(config.stack, config.endpoint) + err = handler.ComposeStackManager.Up(config.stack, config.endpoint) if err != nil { return err } diff --git a/api/http/handler/stacks/handler.go b/api/http/handler/stacks/handler.go index 9fc87514e..caa537e2f 100644 --- a/api/http/handler/stacks/handler.go +++ b/api/http/handler/stacks/handler.go @@ -28,7 +28,6 @@ type Handler struct { GitService portainer.GitService SwarmStackManager portainer.SwarmStackManager ComposeStackManager portainer.ComposeStackManager - ComposeWrapper portainer.ComposeStackManager KubernetesDeployer portainer.KubernetesDeployer } @@ -104,11 +103,3 @@ func (handler *Handler) userCanCreateStack(securityContext *security.RestrictedR return handler.userIsAdminOrEndpointAdmin(user, endpointID) } - -func (handler *Handler) pickComposeStackManager() portainer.ComposeStackManager { - if handler.ComposeWrapper != nil { - return handler.ComposeWrapper - } - - return handler.ComposeStackManager -} diff --git a/api/http/handler/stacks/stack_delete.go b/api/http/handler/stacks/stack_delete.go index f8f8a4c7f..eea3bd367 100644 --- a/api/http/handler/stacks/stack_delete.go +++ b/api/http/handler/stacks/stack_delete.go @@ -156,5 +156,5 @@ func (handler *Handler) deleteStack(stack *portainer.Stack, endpoint *portainer. return handler.SwarmStackManager.Remove(stack, endpoint) } - return handler.pickComposeStackManager().Down(stack, endpoint) + return handler.ComposeStackManager.Down(stack, endpoint) } diff --git a/api/http/handler/stacks/stack_start.go b/api/http/handler/stacks/stack_start.go index 2ac0bc20c..4c129eed1 100644 --- a/api/http/handler/stacks/stack_start.go +++ b/api/http/handler/stacks/stack_start.go @@ -79,7 +79,7 @@ func (handler *Handler) stackStart(w http.ResponseWriter, r *http.Request) *http func (handler *Handler) startStack(stack *portainer.Stack, endpoint *portainer.Endpoint) error { switch stack.Type { case portainer.DockerComposeStack: - return handler.pickComposeStackManager().Up(stack, endpoint) + return handler.ComposeStackManager.Up(stack, endpoint) case portainer.DockerSwarmStack: return handler.SwarmStackManager.Deploy(stack, true, endpoint) } diff --git a/api/http/handler/stacks/stack_stop.go b/api/http/handler/stacks/stack_stop.go index 2a21d29be..48175e6b9 100644 --- a/api/http/handler/stacks/stack_stop.go +++ b/api/http/handler/stacks/stack_stop.go @@ -79,7 +79,7 @@ func (handler *Handler) stackStop(w http.ResponseWriter, r *http.Request) *httpe func (handler *Handler) stopStack(stack *portainer.Stack, endpoint *portainer.Endpoint) error { switch stack.Type { case portainer.DockerComposeStack: - return handler.pickComposeStackManager().Down(stack, endpoint) + return handler.ComposeStackManager.Down(stack, endpoint) case portainer.DockerSwarmStack: return handler.SwarmStackManager.Remove(stack, endpoint) } diff --git a/api/http/server.go b/api/http/server.go index bb258526d..8f83529f1 100644 --- a/api/http/server.go +++ b/api/http/server.go @@ -49,7 +49,6 @@ type Server struct { Status *portainer.Status ReverseTunnelService portainer.ReverseTunnelService ComposeStackManager portainer.ComposeStackManager - ComposeWrapper portainer.ComposeStackManager CryptoService portainer.CryptoService SignatureService portainer.DigitalSignatureService SnapshotService portainer.SnapshotService @@ -159,7 +158,6 @@ func (server *Server) Start() error { stackHandler.FileService = server.FileService stackHandler.SwarmStackManager = server.SwarmStackManager stackHandler.ComposeStackManager = server.ComposeStackManager - stackHandler.ComposeWrapper = server.ComposeWrapper stackHandler.KubernetesDeployer = server.KubernetesDeployer stackHandler.GitService = server.GitService