Deploy File Write Action

Cisco.Ucsm.DeployableFile.WriteAction (WriteActionModuleType)

Write action for deploying a file.

Element properties:

TypeWriteActionModuleType
IsolationAny
AccessibilityPublic
RunAsDefault
InputTypeSystem.BaseData
OutputTypeSystem.BaseData

Member Modules:

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

Overrideable Parameters:

IDParameterTypeSelector
Loggingstring$Config/Logging$

Source Code:

<WriteActionModuleType ID="Cisco.Ucsm.DeployableFile.WriteAction" Accessibility="Public" Batching="false">
<Configuration>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="Logging" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="FilePaths" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="TargetDirectory" type="xsd:string"/>
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="Logging" Selector="$Config/Logging$" ParameterType="string"/>
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<WriteAction ID="WA" TypeID="Windows!Microsoft.Windows.PowerShellWriteAction">
<ScriptName>DeployFile.ps1</ScriptName>
<ScriptBody><Script>param (
[string]$Logging,
[string]$FilePaths,
[string]$TargetDirectory
)

$api = New-Object -comObject 'MOM.ScriptAPI'
if($Logging -eq "true")
{
$api.LogScriptEvent("DeployFile.ps1", 19900, 0, "Script started")
}

[array]$ArFiles = $FilePaths.Split(",")
ForEach ($FilePath in $ArFiles)
{
$ArFilePath = $FilePath.Split("\")
$FileName = $arFilePath[$arFilePath.Length -1]

If (Test-Path -Path "$FilePath")
{
Try
{

#Set-location $FilePath
[System.Reflection.Assembly]::Load("System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")
$publish = New-Object System.EnterpriseServices.Internal.Publish
$publish.GacInstall($FilePath)
#iisreset
if( $Logging -eq "true")
{
$api.LogScriptEvent("DeployFile.ps1", 19900, 0, "Successfully installed the UI Assembly: [$FileName] in GAC")
}
}
Catch
{
$api.LogScriptEvent("DeployFile.ps1", 19900, 0, "Failed to install UI Assembly[$FilePath] in GAC")
}
}
Else
{
Call $api.LogScriptEvent("DeployFile.ps1", 19900, 0, "Assemply file [$FilePath] not present")
}
}

if($Logging -eq "true")
{
$api.LogScriptEvent("DeployFile.ps1", 19900, 0, "Script Completed")
}
</Script></ScriptBody>
<Parameters>
<Parameter>
<Name>Logging</Name>
<Value>$Config/Logging$</Value>
</Parameter>
<Parameter>
<Name>FilePaths</Name>
<Value>$Config/FilePaths$</Value>
</Parameter>
<Parameter>
<Name>TargetDirectory</Name>
<Value>$Config/TargetDirectory$</Value>
</Parameter>
</Parameters>
<TimeoutSeconds>300</TimeoutSeconds>
</WriteAction>
</MemberModules>
<Composition>
<Node ID="WA"/>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.BaseData</OutputType>
<InputType>System!System.BaseData</InputType>
</WriteActionModuleType>