@@ -1399,13 +1399,7 @@ def _get_provider_types(self, ctxt, endpoint):
1399
1399
"No provider found for: %s" % endpoint .type )
1400
1400
return provider_types ["types" ]
1401
1401
1402
- def _execute_deployment (self , ctxt , deployment , force ):
1403
- transfer = self ._get_transfer (
1404
- ctxt , deployment .transfer_id , include_task_info = True )
1405
- skip_os_morphing = deployment .skip_os_morphing
1406
- clone_disks = deployment .clone_disks
1407
- user_scripts = deployment .user_scripts
1408
-
1402
+ def _validate_deployment_inputs (self , ctxt , deployment , transfer , force ):
1409
1403
self ._check_transfer_running_executions (ctxt , transfer )
1410
1404
self ._check_valid_transfer_tasks_execution (transfer , force )
1411
1405
for instance , info in transfer .info .items ():
@@ -1415,10 +1409,19 @@ def _execute_deployment(self, ctxt, deployment, force):
1415
1409
f"for instance: { instance } . If transferred disks are "
1416
1410
"deleted, the transfer needs to be executed anew "
1417
1411
"before a deployment can occur" )
1418
- deployment .info = transfer .info
1419
1412
self ._check_minion_pools_for_action (ctxt , deployment )
1420
1413
self ._check_reservation_for_transfer (transfer )
1421
1414
1415
+ def _execute_deployment (self , ctxt , deployment , force ):
1416
+ transfer = self ._get_transfer (
1417
+ ctxt , deployment .transfer_id , include_task_info = True )
1418
+ skip_os_morphing = deployment .skip_os_morphing
1419
+ clone_disks = deployment .clone_disks
1420
+ user_scripts = deployment .user_scripts
1421
+
1422
+ if deployment .deployer_id :
1423
+ self ._validate_deployment_inputs (ctxt , deployment , transfer , force )
1424
+ deployment .info = transfer .info
1422
1425
destination_endpoint = self .get_endpoint (
1423
1426
ctxt , transfer .destination_endpoint_id )
1424
1427
destination_provider_types = self ._get_provider_types (
@@ -1709,6 +1712,8 @@ def deploy_transfer_instances(
1709
1712
if instance_osmorphing_minion_pool_mappings :
1710
1713
deployment .instance_osmorphing_minion_pool_mappings .update (
1711
1714
instance_osmorphing_minion_pool_mappings )
1715
+ if not wait_for_execution :
1716
+ self ._validate_deployment_inputs (ctxt , deployment , transfer , force )
1712
1717
1713
1718
db_api .add_deployment (ctxt , deployment )
1714
1719
LOG .info ("Deployment created: %s" , deployment .id )
0 commit comments