From 17bc17f638e13a9932b7bc103dd82e5f3b5bd1f4 Mon Sep 17 00:00:00 2001 From: William Date: Tue, 21 Jan 2020 08:09:31 +1300 Subject: [PATCH] fix(api): fix an issue with ownership for services and stacks (#3512) --- api/http/proxy/factory/docker/containers.go | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/api/http/proxy/factory/docker/containers.go b/api/http/proxy/factory/docker/containers.go index 8952b1bf6..c0587d9c8 100644 --- a/api/http/proxy/factory/docker/containers.go +++ b/api/http/proxy/factory/docker/containers.go @@ -5,7 +5,7 @@ import ( "net/http" "github.com/docker/docker/client" - "github.com/portainer/portainer/api" + portainer "github.com/portainer/portainer/api" "github.com/portainer/portainer/api/http/proxy/factory/responseutils" ) @@ -19,16 +19,19 @@ func getInheritedResourceControlFromContainerLabels(dockerClient *client.Client, return nil, err } + serviceName := container.Config.Labels[resourceLabelForDockerServiceID] + if serviceName != "" { + serviceResourceControl := portainer.GetResourceControlByResourceIDAndType(serviceName, portainer.ServiceResourceControl, resourceControls) + if serviceResourceControl != nil { + return serviceResourceControl, nil + } + } + swarmStackName := container.Config.Labels[resourceLabelForDockerSwarmStackName] if swarmStackName != "" { return portainer.GetResourceControlByResourceIDAndType(swarmStackName, portainer.StackResourceControl, resourceControls), nil } - serviceName := container.Config.Labels[resourceLabelForDockerServiceID] - if serviceName != "" { - return portainer.GetResourceControlByResourceIDAndType(serviceName, portainer.ServiceResourceControl, resourceControls), nil - } - composeStackName := container.Config.Labels[resourceLabelForDockerComposeStackName] if composeStackName != "" { return portainer.GetResourceControlByResourceIDAndType(composeStackName, portainer.StackResourceControl, resourceControls), nil