AwsFunctions.ps1
Function GetAwsCopyArgs([string]$file, [string]$awsProfileName, [string]$awsRegion, [string]$description, [HashTable]$tags, [int]$threads, [string]$logFileName) { $copyArgs = @{File = $file; Description = $description; Tags = $tags; Threads = $threads } if (-not [String]::IsNullOrWhiteSpace($awsProfileName)) { $copyArgs["ProfileName"] = $awsProfileName } if (-not [String]::IsNullOrWhiteSpace($awsRegion)) { $copyArgs["Region"] = $awsRegion } if (-not [String]::IsNullOrWhiteSpace($logFileName)) { $copyArgs["LogFileName"] = $logFileName } return $copyArgs } Function UploadToAws([string]$path, [string]$awsProfileName, [string]$awsRegion, [string]$description, [HashTable]$tags, [int]$threads, [string]$logFileName) { Log ("Copying disk '$path' to AWS " + $(if ($threads -le 0) { "(threads=default)" } else { "(threads=$threads)" })) $copyArgs = GetAwsCopyArgs $path $awsProfileName $awsRegion $description $tags $threads $logFileName $snapshotId = Copy-ToAwsDisk @copyArgs Log "Copied disk to AWS snapshot $snapshotId" return $snapshotId } |