@@ -3217,16 +3217,27 @@ def reconfigure_vm(self):
3217
3217
if self .module .check_mode :
3218
3218
self .change_applied = True
3219
3219
else :
3220
- task = None
3221
- try :
3222
- task = self .current_vm_obj .ReconfigVM_Task (spec = self .configspec )
3223
- except vim .fault .RestrictedVersion as e :
3224
- self .module .fail_json (msg = "Failed to reconfigure virtual machine due to"
3225
- " product versioning restrictions: %s" % to_native (e .msg ))
3220
+ task = self .current_vm_obj .ReconfigVM_Task (spec = self .configspec )
3226
3221
self .wait_for_task (task )
3227
3222
if task .info .state == 'error' :
3228
3223
return {'changed' : self .change_applied , 'failed' : True , 'msg' : task .info .error .msg , 'op' : 'reconfig' }
3229
3224
3225
+ # Migrate VM:
3226
+ current_host = self .current_vm_obj .summary .runtime .host
3227
+ requested_host = self .cache .get_esx_host (self .params ['esxi_hostname' ]) if self .params [
3228
+ 'esxi_hostname' ] else None
3229
+ if requested_host and current_host != requested_host :
3230
+ task = None
3231
+ try :
3232
+ task = self .current_vm_obj .MigrateVM_Task (self .get_resource_pool (), requested_host , "defaultPriority" )
3233
+ except vim .fault .RestrictedVersion as e :
3234
+ self .module .fail_json (msg = "Failed to reconfigure virtual machine due to"
3235
+ " product versioning restrictions: %s" % to_native (e .msg ))
3236
+ self .wait_for_task (task )
3237
+ if task .info .state == 'error' :
3238
+ return {'changed' : self .change_applied , 'failed' : True , 'msg' : task .info .error .msg ,
3239
+ 'op' : 'reconfig' }
3240
+
3230
3241
# Rename VM
3231
3242
if self .params ['uuid' ] and self .params ['name' ] and self .params ['name' ] != self .current_vm_obj .config .name :
3232
3243
self .tracked_changes ['name' ] = self .params ['name' ]
0 commit comments