SHOW:
|
|
- or go back to the newest paste.
1 | Set-Variable -Name alarmLength -Value 80 -Option "constant" | |
2 | ||
3 | - | function Move-Alarm{ |
3 | + | function Move-Alarm { |
4 | - | param($Alarm, $To, [switch]$DeleteOriginal = $false) |
4 | + | param($Alarm, $From, $To, [switch]$DeleteOriginal = $false) |
5 | ||
6 | $alarmMgr = Get-View AlarmManager | |
7 | ||
8 | $alarmObj = Get-View $Alarm | |
9 | $alarmMgr = Get-View AlarmManager | |
10 | if($deleteOriginal){ | |
11 | $alarmObj.RemoveAlarm() | |
12 | } | |
13 | else{ | |
14 | $updateAlarm = New-Object VMware.Vim.AlarmSpec | |
15 | $updateAlarm = $alarmObj.Info | |
16 | $oldName = $alarmObj.Info.Name | |
17 | $oldState = $alarmObj.Info.Enabled | |
18 | $oldDescription = $alarmObj.Info.Description | |
19 | $suffix = " (moved to " + ([string]($to | %{$_.Name + ","})).TrimEnd(",") + ")" | |
20 | if(($oldName.Length + $suffix.Length) -gt $alarmLength){ | |
21 | $newName = $oldName.Substring(0, $alarmLength - $suffix.Length) + $suffix | |
22 | } | |
23 | else{ | |
24 | $newName = $oldName + $suffix | |
25 | } | |
26 | $updateAlarm.Name = $newName | |
27 | $updateAlarm.Enabled = $false | |
28 | $updateAlarm.Description += ("`rOriginal name: " + $oldName) | |
29 | $updateAlarm.Expression.Expression | %{ | |
30 | if($_.GetType().Name -eq "EventAlarmExpression"){ | |
31 | $_.Status = $null | |
32 | $needsChange = $true | |
33 | } | |
34 | } | |
35 | ||
36 | $alarmObj.ReconfigureAlarm($updateAlarm) | |
37 | ||
38 | $alarmObj.Info.Name = $oldName | |
39 | $alarmObj.Info.Enabled = $oldState | |
40 | $alarmObj.Info.Description = $oldDescription | |
41 | } | |
42 | ||
43 | $newAlarm = New-Object VMware.Vim.AlarmSpec | |
44 | $newAlarm = $alarmObj.Info | |
45 | $oldName = $alarmObj.Info.Name | |
46 | $oldDescription = $alarmObj.Info.Description | |
47 | foreach($destination in $To){ | |
48 | if($To.Count -gt 1){ | |
49 | $suffix = " (" + $destination.Name + ")" | |
50 | if(($oldName.Length + $suffix.Length) -gt $alarmLength){ | |
51 | $newName = $oldName.Substring(0, $alarmLength - $suffix.Length) + $suffix | |
52 | } | |
53 | else{ | |
54 | $newName = $oldName + $suffix | |
55 | } | |
56 | $newAlarm.Name = $newName | |
57 | $newAlarm.Description += ("`rOriginal name: " + $oldName) | |
58 | } | |
59 | $newAlarm.Expression.Expression | %{ | |
60 | if($_.GetType().Name -eq "EventAlarmExpression"){ | |
61 | $_.Status = $null | |
62 | $needsChange = $true | |
63 | } | |
64 | - | $alarmMgr.CreateAlarm($destination.MoRef,$newAlarm) |
64 | + | |
65 | ||
66 | $newAlarm.Name = $oldName | |
67 | $newAlarm.Description = $oldDescription | |
68 | $alarmMgr.CreateAlarm($To.ExtensionData.MoRef,$newAlarm) | |
69 | } | |
70 | - | $alarmMgr = Get-View AlarmManager |
70 | + | |
71 | ||
72 | - | $from = Get-Folder -Name "Datacenter" |
72 | + | |
73 | - | $to1 = Get-Datacenter -Name "VM" |
73 | + | $to = Get-VM -Name "VM" |
74 | ||
75 | ||
76 | - | $alarm = (Get-AlarmDefinition -Name “Virtual machine total disk latency”).ExtensionData |
76 | + | $alarm = Get-AlarmDefinition -Name "Test1" |
77 | - | Move-Alarm -Alarm $alarm -From $from -To $to1 -DeleteOriginal:$false |
77 | + | Move-Alarm -Alarm $alarm -To $to -DeleteOriginal:$false |