TestCases/SVT/DataFactory/DataFactoryResource.ps1
Set-StrictMode -Version Latest class DataFactoryResource:TestResource{ DataFactoryResource([TestCase] $testcase, [TestSettings] $testsettings):Base($testcase, $testsettings){ } #Setting the properties as required by this resource type. [void]SetDerivedResourceProps(){ $this.ResourceName = "azsdktestdatafactory" #Else set the default resource name $this.ResourceType = "Microsoft.DataFactory/datafactories" } #Checks and deploys the data factory if it does not exist. [void] InitializeResource( ){ if(!$this.IfResourceExists()){ $this.DeployDataFactory() } } #Deploy the data factory [void]DeployDataFactory(){ try{ New-AzureRmDataFactory -ResourceGroupName $this.ResourceGroupName -Name $this.ResourceName -Location "eastus" -Force $this.ProvisioningState = "Succeeded" [CommonHelper]::Log("Resource "+$this.ResourceName + " is successfully deployed", [MessageType]::Information) } catch{ [CommonHelper]::Log("Error while deploying the Data Factory: " + $this.ResourceName, [MessageType]::Error) } } #Set data factory linked service [void]SetLinkedService() { try { $linkServices = Get-AzureRmDataFactoryLinkedService -ResourceGroupName $this.ResourceGroupName -DataFactoryName $this.ResourceName if(($linkServices|Measure-Object).count -eq 0) { $Path = [CommonHelper]::GetRootPath() $Path+="\TestCases\SVT\DataFactory\TestData\DataFactoryStorageLinkedService.json" New-AzureRmDataFactoryLinkedService -ResourceGroupName $this.ResourceGroupName -DataFactoryName $this.ResourceName -Name "LinkedServiceCuratedWikiData" -File $Path -Force | Format-List [CommonHelper]::Log("Successfully set the data factory linked service to: "+$this.ResourceName, [MessageType]::Information) } } catch { [CommonHelper]::Log("Error while setting data factory linked service for: " + $this.ResourceName, [MessageType]::Error) } } #Remove data factory linked service [void]RemoveLinkedService() { try { # Remove all pipeline if exist $pipelines = Get-AzureRmDataFactoryPipeline -ResourceGroupName $this.ResourceGroupName -DataFactoryName $this.ResourceName if(($pipelines|Measure-Object).count -gt 0) { foreach ($pipeline in $pipelines) { Remove-AzureRmDataFactoryPipeline -DataFactoryName $this.ResourceName -ResourceGroupName $this.ResourceGroupName -Name $pipeline.PipelineName -Confirm:$false -Force } } # Remove all dataset if exist $datasets = Get-AzureRmDataFactoryDataset -ResourceGroupName $this.ResourceGroupName -DataFactoryName $this.ResourceName if(($datasets|Measure-Object).count -gt 0) { foreach ($dataset in $datasets) { AzureRM\Remove-AzureRmDataFactoryDataset -DataFactoryName $this.ResourceName -ResourceGroupName $this.ResourceGroupName -Name $dataset.DatasetName -Confirm:$false -Force } } # Remove all LinkedService if exist $linkServices = Get-AzureRmDataFactoryLinkedService -ResourceGroupName $this.ResourceGroupName -DataFactoryName $this.ResourceName if(($linkServices|Measure-Object).count -gt 0) { foreach ($linkService in $linkServices) { Remove-AzureRmDataFactoryLinkedService -DataFactoryName $this.ResourceName -ResourceGroupName $this.ResourceGroupName -Name $linkService.LinkedServiceName -Confirm:$false -Force } } [CommonHelper]::Log("Successfully remove the data factory linked service to: "+$this.ResourceName, [MessageType]::Information) } catch { [CommonHelper]::Log("Linked Service does not exist or error while remove data factory linked service for: " + $this.ResourceName, [MessageType]::Error) } } } |