ConvertMethods.ps1

#
# Citrix IPS convert image to UEFI job support
#

function Format-ConvertData([string]$Platform, [hashtable]$Parameters, [bool]$Verbose=$False)
{
    $convertData = Format-JobData -Platform $Platform -Parameters $Parameters -Verbose $Verbose

    Set-SmbInputLocation -Parameters $Parameters -JobData $convertData -Verbose $Verbose
    $convertData['inputImageFilename'] = Get-SmbParameter -Parameters $Parameters -SmbConfigNode $SmbSectionName -ParameterName 'SmbDiskName' -Verbose $Verbose
    $convertData['inputImageFormat'] = Get-SmbParameter -Parameters $Parameters -SmbConfigNode $SmbSectionName -ParameterName 'SmbDiskFormat' -Verbose $Verbose
    $convertData['outputImageFilename'] = Get-SmbParameter -Parameters $Parameters -SmbConfigNode $SmbSectionName -ParameterName 'SmbOutputDiskName' -Verbose $Verbose
    $convertData['overwriteOutput'] = $Parameters.Contains('Force') -And $Parameters.Force

    return $convertData
}


function Set-PvsServer([hashtable]$Parameters, [hashtable]$JobData, [bool]$Verbose=$False)
{
    $SslCaCertificateFilePath = Get-JobParameter -Parameters $Parameters "PvsSslCaCertificateFilePath" -Verbose $Verbose
    $SslCaCertificate = Get-JobParameter -Parameters $Parameters "PvsSslCaCertificate" -Verbose $Verbose
    if ($SslCaCertificateFilePath -And (Test-Path -Path $SslCaCertificateFilePath -PathType "Leaf"))
    {
        $SslCaCertificate = ((Get-Content $SslCaCertificateFilePath) -join "`n") + "`n"
    }
    elseif ($VsphereSslCaCertificate)
    {
        # Replace raw string \n -> PowerShell-readable `n
        $SslCaCertificate = $SslCaCertificate.replace("\n", "`n")
    }

    $JobData['pvsServer'] = @{
        host = Get-JobParameter -Parameters $Parameters -ParameterName "PvsHost" -Verbose $Verbose
        port = Get-JobParameter -Parameters $Parameters -ParameterName "PvsPort" -Verbose $Verbose
        credentialId = Get-JobParameter -Parameters $Parameters -ParameterName "PvsCwId" -Verbose $Verbose

        sslCaCertificate = $SslCaCertificate 
    
        sslFingerprint = Get-JobParameter -Parameters $Parameters -ParameterName "PvsSslFingerprint" -Verbose $Verbose
        sslNoCheckHostname = Get-JobParameter -Parameters $Parameters -ParameterName "PvsSslNoCheckHostname" -Verbose $Verbose
    }
}

function Format-ConvertPvsDiskData([string]$Platform, [hashtable]$Parameters, [bool]$Verbose=$False)
{
    $convertData = Format-JobData -Platform $Platform -Parameters $Parameters -Verbose $Verbose

    Set-PvsServer -Parameters $Parameters -JobData $convertData -Verbose $Verbose
    $convertData['pvsSiteName'] = Get-JobParameter -Parameters $Parameters -ParameterName "PvsSiteName" -Verbose $Verbose
    $convertData['pvsStoreName'] = Get-JobParameter -Parameters $Parameters -ParameterName "PvsStoreName" -Verbose $Verbose
    $convertData['pvsDiskName'] = Get-JobParameter -Parameters $Parameters -ParameterName "PvsDiskName" -Verbose $Verbose
    $convertData['smbCwId'] = Get-JobParameter -Parameters $Parameters -ParameterName "SmbCwId" -Verbose $Verbose
    $convertData['outputImageFilename'] = Get-JobParameter -Parameters $Parameters -ParameterName "PvsOutputDiskName" -Verbose $Verbose

    return $convertData
}