Framework/Core/SVT/Services/DataFactoryV2.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
68
69
70
71
72
73
74
75
#using namespace Microsoft.Azure.Commands.DataFactory.Models
Set-StrictMode -Version Latest 
class DataFactoryV2: SVTBase
{       
    hidden [PSObject] $ResourceObject;
    hidden [ADFV2Details] $adfDetails = [ADFV2Details]::new()

    DataFactoryV2([string] $subscriptionId, [string] $resourceGroupName, [string] $resourceName): 
        Base($subscriptionId, $resourceGroupName, $resourceName) 
    { 
    }

    DataFactoryV2([string] $subscriptionId, [SVTResource] $svtResource): 
        Base($subscriptionId, $svtResource) 
    { 
         $this.GetResourceObject();

    }

    hidden [PSObject] GetResourceObject()
    {
        if (-not $this.ResourceObject) {
            $this.ResourceObject = Get-AzureRmDataFactoryV2 -Name $this.ResourceContext.ResourceName -ResourceGroupName $this.ResourceContext.ResourceGroupName                                         
          
                if(-not $this.ResourceObject)
                {
                    throw ([SuppressedException]::new(("Resource '{0}' not found under Resource Group '{1}'" -f ($this.ResourceContext.ResourceName), ($this.ResourceContext.ResourceGroupName)), [SuppressedExceptionType]::InvalidOperation))
                }
        $this.GetADFV2Details();
        $this.AddResourceMetadata($this.adfDetails);
        }
        return $this.ResourceObject;
    }

    hidden GetADFV2Details(){
    
        # Get all the Linked Service
        
        $this.adfDetails.LinkedserviceDetails += Get-AzureRmDataFactoryV2LinkedService -ResourceGroupName $this.ResourceContext.ResourceGroupName -DataFactoryName $this.ResourceContext.ResourceName
        
        try{
        
            # Get pipelines count

            $pipelines = @();
            $pipelines += Get-AzureRmDataFactoryV2Pipeline -ResourceGroupName $this.ResourceContext.ResourceGroupName -DataFactoryName $this.ResourceContext.ResourceName;
            $this.adfDetails.PipelinesCount = ($pipelines | Measure-Object).Count
        
            #Get Dataset count
            $datasets = @();
            $datasets += Get-AzureRmDataFactoryV2Dataset -ResourceGroupName $this.ResourceContext.ResourceGroupName -DataFactoryName $this.ResourceContext.ResourceName;
            $this.adfDetails.DatasetsCount +=  ($datasets | Measure-Object).Count

            #Get Triggers count
            $triggers = @();
            $triggers += Get-AzureRmDataFactoryV2Trigger -ResourceGroupName $this.ResourceContext.ResourceGroupName -DataFactoryName $this.ResourceContext.ResourceName;
            $this.adfDetails.TriggersCount +=  ($triggers | Measure-Object).Count;
        }
        catch{


        }
    }

}

Class ADFV2Details{

[int]$PipelinesCount; #default 0
[PSObject]$LinkedserviceDetails;
[int]$DatasetsCount; #default 0
[PSObject]$TriggersCount; #default 0

}