Tests/Integration/MSFT_xSQLServerDatabaseDefaultLocation.config.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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# This is used to make sure the integration test run in the correct order.
[Microsoft.DscResourceKit.IntegrationTest(OrderNumber = 2)]
param()

$ConfigurationData = @{
    AllNodes = @(
        @{
            NodeName                    = 'localhost'
            ComputerName                = $env:COMPUTERNAME
            InstanceName                = 'DSCSQL2016'
            RestartTimeout              = 120

            PSDscAllowPlainTextPassword = $true

            DataFilePath                = 'C:\SQLData\'
            LogFilePath                 = 'C:\SQLLog\'
            BackupFilePath              = 'C:\Backups\'
        }
    )
}

Configuration MSFT_xSQLServerDatabaseDefaultLocation_Data_Config
{
    param
    (
        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.Management.Automation.PSCredential]
        $SqlInstallCredential
    )

    Import-DscResource -ModuleName 'PSDesiredStateConfiguration'
    Import-DscResource -ModuleName 'xSQLServer'

    node localhost {
        File 'SQLDataPath'
        {
            Checksum        = 'SHA-256'
            DestinationPath = $Node.DataFilePath
            Ensure          = 'Present'
            Force           = $true
            Type            = 'Directory'
        }

        xSQLServerDatabaseDefaultLocation 'Integration_Test'
        {
            Type  = 'Data'
            Path  = $Node.DataFilePath
            RestartService       = $true
            SQLServer            = $Node.ComputerName
            SQLInstanceName      = $Node.InstanceName

            PsDscRunAsCredential = $SqlInstallCredential

            DependsOn = '[File]SQLDataPath'
        }
    }
}

Configuration MSFT_xSQLServerDatabaseDefaultLocation_Log_Config
{
    param
    (
        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.Management.Automation.PSCredential]
        $SqlInstallCredential
    )

    Import-DscResource -ModuleName 'PSDesiredStateConfiguration'
    Import-DscResource -ModuleName 'xSQLServer'

    node localhost {
        File 'SQLLogPath'
        {
            Checksum        = 'SHA-256'
            DestinationPath = $Node.LogFilePath
            Ensure          = 'Present'
            Force           = $true
            Type            = 'Directory'
        }

        xSQLServerDatabaseDefaultLocation 'Integration_Test'
        {
            Type  = 'Log'
            Path  = $Node.LogFilePath
            RestartService       = $true
            SQLServer            = $Node.ComputerName
            SQLInstanceName      = $Node.InstanceName

            PsDscRunAsCredential = $SqlInstallCredential

            DependsOn = '[File]SQLLogPath'
        }
    }
}

Configuration MSFT_xSQLServerDatabaseDefaultLocation_Backup_Config
{
    param
    (
        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.Management.Automation.PSCredential]
        $SqlInstallCredential
    )

    Import-DscResource -ModuleName 'PSDesiredStateConfiguration'
    Import-DscResource -ModuleName 'xSQLServer'

    node localhost {
        File 'SQLBackupPath'
        {
            Checksum        = 'SHA-256'
            DestinationPath = $Node.BackupFilePath
            Ensure          = 'Present'
            Force           = $true
            Type            = 'Directory'
        }

        xSQLServerDatabaseDefaultLocation 'Integration_Test'
        {
            Type  = 'Backup'
            Path  = $Node.BackupFilePath
            RestartService       = $false
            SQLServer            = $Node.ComputerName
            SQLInstanceName      = $Node.InstanceName

            PsDscRunAsCredential = $SqlInstallCredential

            DependsOn = '[File]SQLBackupPath'
        }
    }
}