# service "NSX Manager" import os import time import json from vCenterCommon import deleteVMs, vmPower with open(r'c:\ProgramData\QualiSystems\Shells.log', 'a') as f: f.write( time.strftime('%Y-%m-%d %H:%M:%S') + ': ' + __file__.split('\\')[-1].replace('.py', '') + ': ' + str(os.environ) + '\r\n') resource = json.loads(os.environ['RESOURCECONTEXT']) resource_name = resource['name'] attrs = resource['attributes'] vcenter_ip = attrs['vCenter IP'] vcenter_user = attrs['vCenter Administrator Username'] vcenter_password = attrs['vCenter Administrator Password'] #remove all vms vm_name = attrs['NSX VM Name'] vmPower(vm_name, 'stop', vcenter_ip, vcenter_user, vcenter_password) deleteVMs(vm_name, vcenter_ip, vcenter_user, vcenter_password) vm_name = attrs['Controller Name'] vmPower(vm_name, 'stop', vcenter_ip, vcenter_user, vcenter_password) deleteVMs(vm_name, vcenter_ip, vcenter_user, vcenter_password)
} Foreach ($ds in $Datastore) { $hostviewDSDiskName = $ds.ExtensionData.Info.vmfs.extent[0].Diskname if ($ds.ExtensionData.Host) { $attachedHosts = $ds.ExtensionData.Host Foreach ($VMHost in $attachedHosts) { $hostview = Get-View $VMHost.Key $StorageSys = Get-View $HostView.ConfigManager.StorageSystem Write-Host "Unmounting VMFS Datastore $($DS.Name) from host $($hostview.Name)..." $StorageSys.UnmountVmfsVolume($DS.ExtensionData.Info.vmfs.uuid); } } } } } Connect-VIServer -Server ''' + vcenter_ip + ''' -User ''' + vcenter_user + ''' -Password ''' + vcenter_password + ''' -WarningAction SilentlyContinue Get-Datastore ''' + sio_storage_name + ''' | Unmount-Datastore Remove-Datastore -Datastore ''' + sio_storage_name + ''' -VMHost ''' + esx_for_Storage + ''' -Confirm:$false ''' out = powershell(script) if 'not' in out: print out sys.exit(1) #delete vms vm_name_prefix = attrs['ScaleIO SVM Name PreFix'] + '*' vmPower(vm_name_prefix, 'stop', vcenter_ip, vcenter_user, vcenter_password) deleteVMs(vm_name_prefix, vcenter_ip, vcenter_user, vcenter_password)