Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Set-Variable -Name alarmLength -Value 80 -Option "constant"
- function Move-Alarm{
- param($Alarm, $To, [switch]$DeleteOriginal = $false)
- $alarmObj = Get-View $Alarm
- $alarmMgr = Get-View AlarmManager
- if($deleteOriginal){
- $alarmObj.RemoveAlarm()
- }
- else{
- $updateAlarm = New-Object VMware.Vim.AlarmSpec
- $updateAlarm = $alarmObj.Info
- $oldName = $alarmObj.Info.Name
- $oldState = $alarmObj.Info.Enabled
- $oldDescription = $alarmObj.Info.Description
- $suffix = " (moved to " + ([string]($to | %{$_.Name + ","})).TrimEnd(",") + ")"
- if(($oldName.Length + $suffix.Length) -gt $alarmLength){
- $newName = $oldName.Substring(0, $alarmLength - $suffix.Length) + $suffix
- }
- else{
- $newName = $oldName + $suffix
- }
- $updateAlarm.Name = $newName
- $updateAlarm.Enabled = $false
- $updateAlarm.Description += ("`rOriginal name: " + $oldName)
- $updateAlarm.Expression.Expression | %{
- if($_.GetType().Name -eq "EventAlarmExpression"){
- $_.Status = $null
- $needsChange = $true
- }
- }
- $alarmObj.ReconfigureAlarm($updateAlarm)
- $alarmObj.Info.Name = $oldName
- $alarmObj.Info.Enabled = $oldState
- $alarmObj.Info.Description = $oldDescription
- }
- $newAlarm = New-Object VMware.Vim.AlarmSpec
- $newAlarm = $alarmObj.Info
- $oldName = $alarmObj.Info.Name
- $oldDescription = $alarmObj.Info.Description
- foreach($destination in $To){
- if($To.Count -gt 1){
- $suffix = " (" + $destination.Name + ")"
- if(($oldName.Length + $suffix.Length) -gt $alarmLength){
- $newName = $oldName.Substring(0, $alarmLength - $suffix.Length) + $suffix
- }
- else{
- $newName = $oldName + $suffix
- }
- $newAlarm.Name = $newName
- $newAlarm.Description += ("`rOriginal name: " + $oldName)
- }
- $newAlarm.Expression.Expression | %{
- if($_.GetType().Name -eq "EventAlarmExpression"){
- $_.Status = $null
- $needsChange = $true
- }
- }
- $alarmMgr.CreateAlarm($destination.MoRef,$newAlarm)
- $newAlarm.Name = $oldName
- $newAlarm.Description = $oldDescription
- }
- }
- $alarmMgr = Get-View AlarmManager
- $from = Get-Folder -Name "Datacenter"
- $to1 = Get-Datacenter -Name "VM"
- $alarm = (Get-AlarmDefinition -Name “Virtual machine total disk latency”).ExtensionData
- Move-Alarm -Alarm $alarm -From $from -To $to1 -DeleteOriginal:$false
- #$alarms = $alarmMgr.GetAlarm($from.ExtensionData.MoRef)
- #$alarms | % {
- # Move-Alarm -Alarm $_ -To $to.ExtensionData -DeleteOriginal:$false
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement