@@ -36,10 +36,16 @@ def build_hosts_migrate(hosts_zones, database_migrate):
3636 return instances
3737
3838
39- def rebuild_hosts_migrate (current_db_migrate , previous_db_migrate ):
39+ def rebuild_hosts_migrate (current_db_migrate ,
40+ previous_db_migrate , validate_hosts = False ):
4041 instances = []
4142 previous_hosts_migrate = previous_db_migrate .hosts .all ()
43+
4244 for previous_host_migrate in previous_hosts_migrate :
45+ if (validate_hosts and
46+ previous_host_migrate .host .first_instance_dns !=
47+ previous_host_migrate .host .address ):
48+ continue
4349 host = previous_host_migrate .host
4450 zone = previous_host_migrate .zone
4551 snapshot = previous_host_migrate .snapshot
@@ -143,7 +149,8 @@ def database_environment_migrate(
143149 if not can_migrate (database , task , migration_stage , False ):
144150 return
145151 database_migrate = rebuild_database_migrate (task , step_manager )
146- instances = rebuild_hosts_migrate (database_migrate , step_manager )
152+ instances = rebuild_hosts_migrate (database_migrate , step_manager ,
153+ infra .in_last_migration_stage )
147154 else :
148155 infra .migration_stage += 1
149156 if not can_migrate (database , task , infra .migration_stage , False ):
@@ -161,7 +168,8 @@ def database_environment_migrate(
161168 database = database ,
162169 status = DatabaseMigrate .SUCCESS
163170 ).last ()
164- instances = rebuild_hosts_migrate (database_migrate , last_db_migrate )
171+ instances = rebuild_hosts_migrate (database_migrate , last_db_migrate ,
172+ infra .in_last_migration_stage )
165173 instances = sorted (instances , key = lambda k : k .id )
166174 steps = get_migrate_steps (database , infra .migration_stage )
167175 if not can_migrate_check_steps (
@@ -176,14 +184,11 @@ def database_environment_migrate(
176184 if result :
177185 database = database_migrate .database
178186 infra = database .infra
179- is_ha = infra .plan .is_ha
180187 migration_stage = infra .migration_stage
181- if ((is_ha and migration_stage == infra .STAGE_3 ) or
182- (not is_ha and migration_stage == infra .STAGE_2 )):
183-
188+ if infra .in_last_migration_stage :
184189 database .environment = database_migrate .environment
185190 database .save ()
186-
191+
187192 infra .environment = database_migrate .environment
188193 infra .plan = infra .plan .get_equivalent_plan_for_env (
189194 database_migrate .environment
0 commit comments