functions/Import-AzureFailureExperiment.ps1

function Import-AzureFailureExperiment {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory = $true, Position = 0)]
        [string]$Path


    )


    trap {
        throw $_
    }

    # Cleanup any previous run state
    if ($script:Selectors -or $script:Branches -or $script:Steps) {
        $script:Selectors = @{}
        $script:Steps = @()
        $script:Branches = @()
        $script:tracerOutput = @()
    }



    Write-PSFMessage -Level Verbose -Message "Importing experiment from $Path"
    $experiment = Get-Content -Path $Path | ConvertFrom-Json

    Write-PSFMessage -Verbose -Message "Validating API Version"
    Test-APIVersion -APIVersion $experiment.apiVersion

    #register selectors
    Write-PSFMessage -Level Verbose -Message "Registering {0} selectors" -StringValues $experiment.properties.selectors.Count
    $experiment.properties.selectors | Register-AzureFailureSelector

    #register steps
    Write-PSFMessage -Level Verbose -Message "Registering {0} steps" -StringValues $experiment.properties.steps.Count
    $experiment.properties.steps | Register-AzureFailureStep


}