Switched originalScale storage

This commit is contained in:
rony5394
2026-05-19 14:20:22 +02:00
parent 7214e26168
commit 778bab644f
2 changed files with 10 additions and 9 deletions

View File

@@ -8,7 +8,6 @@ import (
"os" "os"
"os/signal" "os/signal"
"strings" "strings"
"sync"
"syscall" "syscall"
"time" "time"
@@ -23,7 +22,6 @@ import (
// Add mutex. // Add mutex.
var ApiClient *client.Client; var ApiClient *client.Client;
var scale sync.Map;
var token string = "12345"; var token string = "12345";
var theConfig cfg.Config; var theConfig cfg.Config;

View File

@@ -3,7 +3,9 @@ package docker
import ( import (
"context" "context"
"io" "io"
"log/slog"
"net/http" "net/http"
"strconv"
"time" "time"
"encoding/json" "encoding/json"
@@ -53,8 +55,7 @@ func scaleDown(w http.ResponseWriter, r *http.Request){
newScale := uint64(0); newScale := uint64(0);
updatedSpec.Mode.Replicated.Replicas = &newScale; updatedSpec.Mode.Replicated.Replicas = &newScale;
updatedSpec.Labels["blazena.scaledDown"] = "true"; updatedSpec.Labels["blazena.scaledDown"] = "true";
updatedSpec.Labels["blazena.originalScale"] = strconv.FormatUint(*originalScale, 10);
scale.Store(serviceId, *originalScale);
_, err = ApiClient.ServiceUpdate(context.Background(), serviceId, inspectresoult.Version, updatedSpec, swarm.ServiceUpdateOptions{}); _, err = ApiClient.ServiceUpdate(context.Background(), serviceId, inspectresoult.Version, updatedSpec, swarm.ServiceUpdateOptions{});
if(err != nil){ if(err != nil){
@@ -99,19 +100,21 @@ func scaleUp(w http.ResponseWriter, r *http.Request){
return; return;
} }
originalScale, ok := scale.Load(serviceId); originalScale := inspectresoult.Spec.Labels["blazena.originalScale"];
if(!ok){
if(originalScale == ""){
panic("Its not okay!"); panic("Its not okay!");
} }
originalScaleChecked, ok := originalScale.(uint64); originalScaleChecked, err := strconv.ParseUint(originalScale, 10, 64);
if(!ok){ if(err != nil){
panic("Its very not okay!") panic("Its very not okay!"+ err.Error())
} }
updatedSpec := inspectresoult.Spec; updatedSpec := inspectresoult.Spec;
updatedSpec.Mode.Replicated.Replicas = &originalScaleChecked; updatedSpec.Mode.Replicated.Replicas = &originalScaleChecked;
delete(updatedSpec.Labels, "blazena.scaledDown"); delete(updatedSpec.Labels, "blazena.scaledDown");
delete(updatedSpec.Labels, "blazena.originalScale");
ApiClient.ServiceUpdate(context.Background(), serviceId, inspectresoult.Version, updatedSpec, swarm.ServiceUpdateOptions{}); ApiClient.ServiceUpdate(context.Background(), serviceId, inspectresoult.Version, updatedSpec, swarm.ServiceUpdateOptions{});