From 9d82d619938c959ef33f955366dff280db7cc3d1 Mon Sep 17 00:00:00 2001 From: "pierre.geeraert" Date: Wed, 9 Sep 2026 14:17:37 +0100 Subject: [PATCH] add the check to avoid making the operations for everyone --- django_code/apps/cloudmanager/utils.py | 33 ++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/django_code/apps/cloudmanager/utils.py b/django_code/apps/cloudmanager/utils.py index 8f2636d..ffb0ba1 100644 --- a/django_code/apps/cloudmanager/utils.py +++ b/django_code/apps/cloudmanager/utils.py @@ -18,7 +18,7 @@ def import_deployment(): for deployment in deployment_list: if deployment[0]!="kube-system": - Deployment_Data.objects.get_or_create(namespace=deployment[0],name=deployment[1],defaults={"replicas":deployment[2],"schedule_day":Schedule_Day_Always_on,"schedule_week":Schedule_Week_Always_on}) + Deployment_Data.objects.get_or_create(namespace=deployment[0],name=deployment[1],defaults={"replicas":deployment[2],"actual_replica":deployment[2],"schedule_day":Schedule_Day_Always_on,"schedule_week":Schedule_Week_Always_on}) def generate_default_day_schedule(): @@ -40,6 +40,15 @@ def Give_current_hour(): now = datetime.datetime.now() return now.hour +def get_current_replicas(): + deployments_list = get_deployments() + for deployment in deployments_list: + if deployment[0]!="kube-system": + object,created = Deployment_Data.objects.update_or_create(namespace=deployment[0],name=deployment[1],defaults={"actual_replica":deployment[2]}) + if created: + print("THIS DEPLOY: name: "+str(server[1])+" namespace: "+str(server[0])+" replicas: "+str(server[2])+" IS NEW !!!!!") + return 0 + def Check_server_supposed_XXX(expected_status): #just for testing #expected_status = True @@ -81,24 +90,38 @@ def Check_server_supposed_XXX(expected_status): replicas = deployment.replicas display_list.append(replicas) print("replicas: "+str(replicas)) + #Adding the whole object as well for future use + display_list.append(deployment) deployments_list.append(display_list) + return deployments_list def retrieve_and_apply(): + + #Get current replica to compare with the replicas created at the start + get_current_replicas() print("------------------------------------------") print("-----------------UP-----------------------") print("------------------------------------------") servers_supposed_true = Check_server_supposed_XXX(True) for server in servers_supposed_true: - print("name: "+str(server[1])+" namespace: "+str(server[0])+" replicas: "+str(server[2])) - scale_up(namespace_name=server[1],deploy_name=server[0],replicas=server[2]) + #check if the expected replica (server[2]) match the current replica of the deployment (server[3].actual_replica) + if server[3].actual_replica == server[2]: + print("name: "+str(server[1])+" namespace: "+str(server[0])+" already good") + else: + print("Starting -> name: "+str(server[1])+" namespace: "+str(server[0])+" replicas: "+str(server[2])) + scale_up(namespace_name=server[1],deploy_name=server[0],replicas=server[2]) print("------------------------------------------") print("----------------DOWN----------------------") print("------------------------------------------") servers_supposed_false = Check_server_supposed_XXX(False) for server in servers_supposed_false: - print("name: "+str(server[1])+" namespace: "+str(server[0])+" replicas: "+str(server[2])) - scale_down(namespace_name=server[1],deploy_name=server[0]) + #check if the current replica of the deployment (server[3].actual_replica) is already 0 meaning the server is already down + if server[3].actual_replica == 0: + print("name: "+str(server[1])+" namespace: "+str(server[0])+" already down") + else: + print("Shutting down -> name: "+str(server[1])+" namespace: "+str(server[0])+" replicas: "+str(server[2])) + scale_down(namespace_name=server[1],deploy_name=server[0])