From 2b2c2cdf30edd0eb7977a8f0df7a35e05efd49d4 Mon Sep 17 00:00:00 2001 From: yashsinghcodes Date: Tue, 3 Dec 2024 21:37:16 +0530 Subject: [PATCH] [fix]: Memcached image pulling error and network error --- functions/onprem/orborus/orborus.go | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/functions/onprem/orborus/orborus.go b/functions/onprem/orborus/orborus.go index 1a9d5b99..27b441c1 100755 --- a/functions/onprem/orborus/orborus.go +++ b/functions/onprem/orborus/orborus.go @@ -3960,6 +3960,11 @@ func checkMemcached(ctx context.Context, dockercli *dockerclient.Client) (bool, } return false, err } + networkName := "shuffle_swarm_executions" + err = dockercli.NetworkConnect(ctx, networkName, containerName, nil) + if err != nil { + log.Printf("[WARNING] Failed connecting memcached container to network: %s", err) + } if continer.State.Running == false { log.Printf("[INFO] Container %s exists but is not running. Attempting to start it.", containerName) @@ -3997,9 +4002,23 @@ func deployMemcached(dockercli *dockerclient.Client) error { }, } - dockercli.ImagePull(ctx, memcachedImage, image.PullOptions{}) - containerName := "shuffle-cache" + _, _, err := dockercli.ImageInspectWithRaw(ctx, memcachedImage) + if dockerclient.IsErrNotFound(err) { + log.Printf("[DEBUG] Pulling image %s. This may take a while.", memcachedImage) + pullOptions := image.PullOptions{} + out, err := dockercli.ImagePull(ctx, memcachedImage, pullOptions) + if err != nil { + log.Printf("[ERROR] Failed to pull the memcached image: %s", err) + return err + } + defer out.Close() + io.Copy(io.Discard, out) + } else if err != nil { + return err + } + + containerName := "shuffle-cache" resp, err := dockercli.ContainerCreate(ctx, containerConfig, hostConfig, nil, nil, containerName) if err != nil { log.Printf("[ERROR] Error spanning memcached continer: %s", err)