Public/New-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
Function New-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

)

    $Uri = "$BaseUri/{0}" -f "_apis/clt/testdrops"
    $Body = @{
        Id = $null
        TestRunId = $null
        DropType = "TestServiceBlobDrop"
        AccessData = $null
        CreatedDate = (Get-Date -Format s)
        LoadTestDefinition = $null
    } | ConvertTo-Json
    $Response = Invoke-RestMethod -Uri $Uri -Method Post -Headers $Headers -Body $Body
    Write-Verbose ("Test Drop Id = '{0}', drop container url = '{1}'" -f $Response.Id, $Response.accessData.dropContainerUrl)

    $DropContainerUrl = $Response.accessData.dropContainerUrl -split '/'
    Return [pscustomobject][ordered]@{
        ContainerName = $DropContainerUrl[3]
        Id = $DropContainerUrl[4]
        dropContainerUrl = $Response.accessData.dropContainerUrl
        StorageAccountName = $DropContainerUrl[2].Split('.')[0]
        SasToken = $Response.accessData.sasKey
    }

}