@@ -222,6 +222,30 @@ def esxi_destory_vm(host, usr, pwd, vm_name):
222222
223223 return "Destory VM(%s) success!" % vm_name
224224
225+ def esxi_change_memory (host , usr , pwd , vm_name , mem_size ):
226+ try :
227+ si = connect .Connect (host = host , user = usr , pwd = pwd )
228+ vm_view = si .content .viewManager .CreateContainerView (si .content .rootFolder , [vim .VirtualMachine ], True )
229+ uuid = ""
230+ for vm in vm_view .view :
231+ if vm .summary .config .name == vm_name :
232+ uuid = vm .summary .config .instanceUuid
233+ break
234+ if uuid == "" :
235+ connect .Disconnect (si )
236+ return "Can't find VM(%s)!" % vm_name
237+
238+ vm = si .content .searchIndex .FindByUuid (None , uuid , True , True )
239+ spec = vim .vm .ConfigSpec ()
240+ spec .memoryMB = int (mem_size ) + 512
241+ task = vm .ReconfigVM_Task (spec )
242+ tasks .wait_for_tasks (si , [task ])
243+
244+ connect .Disconnect (si )
245+ except Exception , e :
246+ return "Change VM Memory on VM(%s) failed!" % vm_name
247+ return "Change VM(%s) Memory successfully!" % vm_name
248+
225249def esxi_add_drive (host , usr , pwd , vm_name , disk_size ):
226250 try :
227251 si = connect .Connect (host = host , user = usr , pwd = pwd )
0 commit comments