Public/Set-CloudLoadTestDrop.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
Function Set-CloudLoadTestDrop{
[cmdletbinding()]
Param(

    [Parameter(Mandatory=$True)]
    [hashtable]
    $Headers,

    [Parameter(Mandatory=$True)]
    [ValidateScript({
      # Check if valid Uri
        $IsValidUri = [system.uri]::IsWellFormedUriString($_,[System.UriKind]::Absolute)
        if ($IsVAlidUri -eq $True){
            return $True
        }
        else{
            throw "Parameter value is not valid '$_'"
        }
    })] 
    [string]
    $BaseUri,

    [Parameter(Mandatory=$True)]
    [object]
    $TestDrop,

    [Parameter(Mandatory=$True)]
    [ValidateScript({
        if (Test-Path $_ -PathType Container){
            $True
        }
        else{
            Throw "Invalid file path '$_'"
        }
    })]
    [string]
    $TestDirectoryPath,

    [Parameter(Mandatory=$True)]
    [string]
    $LoadTestFileName

)


    $Files = Get-ChildItem -Path $TestDirectoryPath -Recurse -File
    if ($Files.Name -notcontains $LoadTestFileName){
        throw "Load test file '{0}' not found in directory '{1}'" -f $LoadTestFileName, $TestDirectoryPath
    }

    $Context = New-AzureStorageContext -StorageAccountName $TestDrop.StorageAccountName -SasToken $TestDrop.SasToken

    foreach ($File in $Files){

        $RelativePath = $File.FullName.Replace($TestDirectoryPath,'')
        $BlobName = Join-Path -Path $TestDrop.Id -ChildPath $RelativePath
        Set-AzureStorageBlobContent -Context $Context -Container $TestDrop.ContainerName -File $File.FullName -Blob $BlobName -Force  -Verbose:$false | Out-Null
        
        # Upload .loadtest file to root test drop location
        if ($File.Name -eq $LoadTestFileName){
            $BlobName = Join-Path -Path $TestDrop.Id -ChildPath $File.Name
            Set-AzureStorageBlobContent -Context $Context -Container $TestDrop.ContainerName -File $File.FullName -Blob $BlobName -Force  -Verbose:$false | Out-Null
        }

    }

}