Data ONTAP: SnapMirror Write Action Module Type

DataONTAP.SnapMirror.WriteActionModuleType (WriteActionModuleType)

Element properties:

TypeWriteActionModuleType
IsolationAny
AccessibilityInternal
RunAsDataONTAP.SecureReference.RunAsProfile
InputTypeSystem.BaseData

Member Modules:

ID Module Type TypeId RunAs 
WA WriteAction Microsoft.Windows.ScriptWriteAction Default

Overrideable Parameters:

IDParameterTypeSelectorDisplay NameDescription
TimeoutSecondsint$Config/TimeoutSeconds$TimeoutSecondsTimeoutSeconds
LagWarningThresholdMinutesint$Config/LagWarningThresholdMinutes$LagWarningThresholdMinutesLagWarningThresholdMinutes
LagCriticalThresholdMinutesint$Config/LagCriticalThresholdMinutes$LagCriticalThresholdMinutesLagCriticalThresholdMinutes

Source Code:

<WriteActionModuleType ID="DataONTAP.SnapMirror.WriteActionModuleType" Accessibility="Internal" Batching="false" RunAs="DS!DataONTAP.SecureReference.RunAsProfile">
<Configuration>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="LagWarningThresholdMinutes" type="xsd:integer"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="LagCriticalThresholdMinutes" type="xsd:integer"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="TimeoutSeconds" type="xsd:integer"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="ManagementServer" type="xsd:string"/>
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="TimeoutSeconds" Selector="$Config/TimeoutSeconds$" ParameterType="int"/>
<OverrideableParameter ID="LagWarningThresholdMinutes" Selector="$Config/LagWarningThresholdMinutes$" ParameterType="int"/>
<OverrideableParameter ID="LagCriticalThresholdMinutes" Selector="$Config/LagCriticalThresholdMinutes$" ParameterType="int"/>
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<WriteAction ID="WA" TypeID="Windows!Microsoft.Windows.ScriptWriteAction">
<ScriptName>ONTAPSnapMirror.vbs</ScriptName>
<Arguments>$Config/ManagementServer$ $Config/LagWarningThresholdMinutes$ $Config/LagCriticalThresholdMinutes$</Arguments>
<ScriptBody><Script>
'**********************************************************************************
' Script Name - NetApp SnapMirror Status
'
' Description:
' Query SnapMirror Status of a NetApp Controller
'
' (c) Copyright NetApp Inc. 2010 - All rights reserved
'**********************************************************************************

Option Explicit
SetLocale("en-us")


Dim oAPI
Set oAPI = CreateObject("MOM.ScriptAPI")

Dim oArgs
Set oArgs = WScript.Arguments

Dim errorMessage

If oArgs.Count &lt; 3 Then

errorMessage = "ONTAPSnapMirror.vbs was called with the incorrect # of parameters (param count = " &amp; oArgs.Count &amp; ")."

WScript.Echo(errorMessage)

Call oAPI.LogScriptEvent("ONTAPSnapMirror.vbs",1101,0,errorMessage)

Wscript.Quit -1

End If


Dim LagWarningThreshold
Dim LagCriticalThreshold
Dim ManagementServer

ManagementServer = oArgs(0)
LagWarningThreshold = oArgs(1)
LagCriticalThreshold = oArgs(2)

' Echo the parameters so we can see what has been passed in
WScript.Echo("LagWarningThreshold = " &amp; LagWarningThreshold)
WScript.Echo("LagCriticalThreshold = " &amp; LagCriticalThreshold)
WScript.Echo("ManagementServer = " &amp; ManagementServer)

Dim oNetAppSCOMAPI
Set oNetAppSCOMAPI = CreateObject("NetApp.OM.Server.SnapMirror.SnapMirror")

If Err Then

errorMessage = "Failed to create NetAppSCOM SnapMirror object" &amp; vbNewLine &amp; _
"Err.description = """ &amp; Err.description &amp; """" &amp; vbNewLine &amp; _
"Err.helpcontext = """ &amp; Err.helpcontext &amp; """" &amp; vbNewLine &amp; _
"Err.helpfile = """ &amp; Err.helpfile &amp; """" &amp; vbNewLine &amp; _
"Err.number = """ &amp; Err &amp; """ (&amp;H" &amp; hex(Err) &amp; ")" &amp; vbNewLine &amp; _
"Err.source = """ &amp; Err.source &amp; """" &amp; vbNewLine

WScript.Echo(errorMessage)

Call oAPI.LogScriptEvent("ONTAPSnapMirror.vbs",1102,0,errorMessage)

WScript.Quit -1

End If

Dim boolDiscoverySucceeded
boolDiscoverySucceeded = oNetAppSCOMAPI.GetAllControllerSnapMirrorStatus(ManagementServer, LagWarningThreshold, LagCriticalThreshold)

If Err Then

errorMessage = "Failed to get controller snapmirror status" &amp; vbNewLine &amp; _
"Err.description = """ &amp; Err.description &amp; """" &amp; vbNewLine &amp; _
"Err.helpcontext = """ &amp; Err.helpcontext &amp; """" &amp; vbNewLine &amp; _
"Err.helpfile = """ &amp; Err.helpfile &amp; """" &amp; vbNewLine &amp; _
"Err.number = """ &amp; Err &amp; """ (&amp;H" &amp; hex(Err) &amp; ")" &amp; vbNewLine &amp; _
"Err.source = """ &amp; Err.source &amp; """" &amp; vbNewLine &amp; _
"Server = """ &amp; ManagementServer

WScript.Echo(errorMessage)

Call oAPI.LogScriptEvent("ONTAPSnapMirror.vbs",1103,0,errorMessage)

WScript.Quit -1

End If

Call oAPI.LogScriptEvent("ONTAPSnapMirror.vbs",1104,0,"Get SnapMirror status succeeded for " &amp; ManagementServer &amp; ".")

Set oNetAppSCOMAPI = Nothing
Set oAPI = Nothing
</Script></ScriptBody>
<TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
</WriteAction>
</MemberModules>
<Composition>
<Node ID="WA"/>
</Composition>
</Composite>
</ModuleImplementation>
<InputType>System!System.BaseData</InputType>
</WriteActionModuleType>