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, $From, $To, [switch]$DeleteOriginal = $false)
- $alarmMgr = Get-View AlarmManager
- $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
- }
- }
- $newAlarm.Name = $oldName
- $newAlarm.Description = $oldDescription
- $alarmMgr.CreateAlarm($To.ExtensionData.MoRef,$newAlarm)
- }
- }
- $to = Get-VM -Name "VM"
- $alarm = Get-AlarmDefinition -Name "Test1"
- Move-Alarm -Alarm $alarm -To $to -DeleteOriginal:$false
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement