@@ -2936,11 +2936,13 @@ def on_update(self): # noqa: C901
29362936 self .update_subscription ()
29372937 self .update_db_server ()
29382938
2939- self .set_bench_memory_limits_if_needed (save = False )
2940- self .validate_public_server_exists_for_site_or_bench_placement ()
2941-
29422939 if self .public :
29432940 self .auto_add_storage_min = max (self .auto_add_storage_min , PUBLIC_SERVER_AUTO_ADD_STORAGE_MIN )
2941+ if self .exclude_for_scheduling :
2942+ self .use_for_new_benches = self .use_for_new_sites = 0
2943+
2944+ self .set_bench_memory_limits_if_needed (save = False )
2945+ self .validate_public_server_exists_for_site_or_bench_placement ()
29442946
29452947 if (
29462948 self .has_value_changed ("enable_logical_replication_during_site_update" )
@@ -3103,12 +3105,23 @@ def validate_public_server_exists_for_site_or_bench_placement(self) -> None:
31033105 This validation prevents failures for newly created clusters before the job runs.
31043106 """
31053107
3106- if not (self .has_value_changed ("public" ) and self .team == "team@erpnext.com" and self .public ):
3108+ if (
3109+ self .public
3110+ and not self .exclude_for_scheduling
3111+ and self .use_for_new_sites
3112+ and self .use_for_new_benches
3113+ ):
3114+ return
3115+
3116+ if not (
3117+ self .has_value_changed ("public" )
3118+ or (self .exclude_for_scheduling and self .has_value_changed ("exclude_for_scheduling" ))
3119+ ):
31073120 return
31083121
31093122 servers = frappe .get_all (
31103123 "Server" ,
3111- filters = {"cluster" : self .cluster , "public" : 1 },
3124+ filters = {"cluster" : self .cluster , "public" : 1 , "exclude_for_scheduling" : 0 },
31123125 fields = ["use_for_new_sites" , "use_for_new_benches" ],
31133126 )
31143127
0 commit comments