diff --git a/internal/config/state.go b/internal/config/state.go index ffc92dfd..8d0b5d41 100644 --- a/internal/config/state.go +++ b/internal/config/state.go @@ -292,7 +292,7 @@ func (state *state) initProxmox() error { errs := gperr.NewBuilder() for _, cfg := range proxmoxCfg { - if err := cfg.Init(); err != nil { + if err := cfg.Init(state.task.Context()); err != nil { errs.Add(err.Subject(cfg.URL)) } } diff --git a/internal/docker/container.go b/internal/docker/container.go index 0edea0d1..f09a87bc 100644 --- a/internal/docker/container.go +++ b/internal/docker/container.go @@ -90,14 +90,14 @@ func IsBlacklisted(c *types.Container) bool { return IsBlacklistedImage(c.Image) || isDatabase(c) } -func UpdatePorts(c *types.Container) error { +func UpdatePorts(ctx context.Context, c *types.Container) error { dockerClient, err := NewClient(c.DockerCfg) if err != nil { return err } defer dockerClient.Close() - inspect, err := dockerClient.ContainerInspect(context.Background(), c.ContainerID) + inspect, err := dockerClient.ContainerInspect(ctx, c.ContainerID) if err != nil { return err } diff --git a/internal/idlewatcher/provider/proxmox.go b/internal/idlewatcher/provider/proxmox.go index b3ac35d2..d781768f 100644 --- a/internal/idlewatcher/provider/proxmox.go +++ b/internal/idlewatcher/provider/proxmox.go @@ -25,14 +25,14 @@ const proxmoxStateCheckInterval = 1 * time.Second var ErrNodeNotFound = gperr.New("node not found in pool") -func NewProxmoxProvider(nodeName string, vmid int) (idlewatcher.Provider, error) { +func NewProxmoxProvider(ctx context.Context, nodeName string, vmid int) (idlewatcher.Provider, error) { node, ok := proxmox.Nodes.Get(nodeName) if !ok { return nil, ErrNodeNotFound.Subject(nodeName). Withf("available nodes: %s", proxmox.AvailableNodeNames()) } - ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second) + ctx, cancel := context.WithTimeout(ctx, 3*time.Second) defer cancel() lxcName, err := node.LXCName(ctx, vmid) diff --git a/internal/proxmox/config.go b/internal/proxmox/config.go index 4417c9f9..4972b5ac 100644 --- a/internal/proxmox/config.go +++ b/internal/proxmox/config.go @@ -32,7 +32,7 @@ func (c *Config) Client() *Client { return c.client } -func (c *Config) Init() gperr.Error { +func (c *Config) Init(ctx context.Context) gperr.Error { var tr *http.Transport if c.NoTLSVerify { // user specified @@ -56,7 +56,7 @@ func (c *Config) Init() gperr.Error { } c.client = NewClient(c.URL, opts...) - ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second) + ctx, cancel := context.WithTimeout(ctx, 3*time.Second) defer cancel() if err := c.client.UpdateClusterInfo(ctx); err != nil { diff --git a/internal/route/provider/docker.go b/internal/route/provider/docker.go index f9451ef8..9f3f111f 100755 --- a/internal/route/provider/docker.go +++ b/internal/route/provider/docker.go @@ -79,7 +79,7 @@ func (p *DockerProvider) loadRoutesImpl() (route.Routes, gperr.Error) { } if container.IsHostNetworkMode { - err := docker.UpdatePorts(container) + err := docker.UpdatePorts(ctx, container) if err != nil { errs.Add(gperr.PrependSubject(container.ContainerName, err)) continue