1
+ # ----------------------------------------------------------------------------------
2
+ #
3
+ # Copyright Microsoft Corporation
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ # Unless required by applicable law or agreed to in writing, software
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ # See the License for the specific language governing permissions and
12
+ # limitations under the License.
13
+ # ----------------------------------------------------------------------------------
14
+
15
+ function Test-CreateBasicCluster
16
+ {
17
+ $resourceGroupName = " sfmcps-rg-" + (getAssetname)
18
+ $clusterName = " sfmcps-" + (getAssetname)
19
+ $pass = (ConvertTo-SecureString - AsPlainText - Force " TestPass1234!@#" )
20
+ $location = " southcentralus"
21
+ $testClientTp = " 123BDACDCDFB2C7B250192C6078E47D1E1DB119B"
22
+ Assert-ThrowsContains { Get-AzServiceFabricManagedCluster - ResourceGroupName $resourceGroupName - Name $clusterName } " NotFound"
23
+
24
+ $cluster = New-AzServiceFabricManagedCluster - ResourceGroupName $resourceGroupName - ClusterName $clusterName - Location $location `
25
+ - AdminPassword $pass - Sku Basic - ClientCertThumbprint $testClientTp - Verbose
26
+ Assert-AreEqual " Succeeded" $cluster.ProvisioningState
27
+ Assert-AreEqual " WaitingForNodes" $cluster.ClusterState
28
+
29
+ $pnt = New-AzServiceFabricManagedNodeType - ResourceGroupName $resourceGroupName - ClusterName $clusterName - Name pnt - InstanceCount 5 - Primary
30
+
31
+ # shouldn't be allowed to remove the only primary node type in the cluster
32
+ Assert-ThrowsContains { $pnt | Remove-AzServiceFabricManagedNodeType } " InvalidParameter"
33
+
34
+ $cluster = Get-AzServiceFabricManagedCluster - ResourceGroupName $resourceGroupName - Name $clusterName
35
+ Assert-AreEqual " Deploying" $cluster.ClusterState
36
+
37
+ # scale primary node type
38
+ $pnt = Set-AzServiceFabricManagedNodeType - ResourceGroupName $resourceGroupName - ClusterName $clusterName - Name pnt - InstanceCount 6
39
+ Assert-AreEqual 6 $pnt.VmInstanceCount
40
+
41
+ $removeResponse = $cluster | Remove-AzServiceFabricManagedCluster - PassThru
42
+ Assert-True { $removeResponse }
43
+
44
+ Assert-ThrowsContains { Get-AzServiceFabricManagedCluster - ResourceGroupName $resourceGroupName - ClusterName $clusterName } " NotFound"
45
+ }
46
+
47
+ function Test-NodeTypeOperations
48
+ {
49
+ $resourceGroupName = " sfmcps-rg-" + (getAssetname)
50
+ $clusterName = " sfmcps-" + (getAssetname)
51
+ $location = " southcentralus"
52
+ $testClientTp = " 123BDACDCDFB2C7B250192C6078E47D1E1DB119B"
53
+ $pass = (ConvertTo-SecureString - AsPlainText - Force " TestPass1234!@#" )
54
+ Assert-ThrowsContains { Get-AzServiceFabricManagedCluster - ResourceGroupName $resourceGroupName - Name $clusterName } " NotFound"
55
+
56
+ $cluster = New-AzServiceFabricManagedCluster - ResourceGroupName $resourceGroupName - ClusterName $clusterName - Location $location `
57
+ - AdminPassword $pass - Sku Standard - ClientCertThumbprint $testClientTp - Verbose
58
+ Assert-AreEqual " Succeeded" $cluster.ProvisioningState
59
+ Assert-AreEqual " WaitingForNodes" $cluster.ClusterState
60
+
61
+ New-AzServiceFabricManagedNodeType - ResourceGroupName $resourceGroupName - ClusterName $clusterName - Name pnt - InstanceCount 5 - Primary - AsJob
62
+ New-AzServiceFabricManagedNodeType - ResourceGroupName $resourceGroupName - ClusterName $clusterName - Name snt - InstanceCount 6 - AsJob
63
+
64
+ # wait for nodetypes
65
+ WaitForAllJob
66
+
67
+ $restart = Restart-AzServiceFabricManagedNodeType - ResourceGroupName $resourceGroupName - ClusterName $clusterName - Name snt - NodeName snt_0, snt_1 - PassThru
68
+ Assert-True { $restart }
69
+
70
+ $delete = Remove-AzServiceFabricManagedNodeType - ResourceGroupName $resourceGroupName - ClusterName $clusterName - Name snt - NodeName snt_1 - PassThru
71
+ Assert-True { $delete }
72
+
73
+ $reimage = Set-AzServiceFabricManagedNodeType - ResourceGroupName $resourceGroupName - ClusterName $clusterName - Name snt - NodeName snt_3 - Reimage - PassThru
74
+ Assert-True { $reimage }
75
+
76
+ $snt = Get-AzServiceFabricManagedNodeType - ResourceGroupName $resourceGroupName - ClusterName $clusterName - Name snt
77
+ $removeResponse = $snt | Remove-AzServiceFabricManagedNodeType - PassThru
78
+ Assert-True { $removeResponse }
79
+
80
+ $removeResponse = $cluster | Remove-AzServiceFabricManagedCluster - PassThru
81
+ Assert-True { $removeResponse }
82
+ }
83
+
84
+ function Test-CertAndExtension
85
+ {
86
+ $resourceGroupName = " sfmcps-rg-" + (getAssetname)
87
+ $clusterName = " sfmcps-" + (getAssetname)
88
+ $location = " southcentralus"
89
+ $testClientTp = " 123BDACDCDFB2C7B250192C6078E47D1E1DB119B"
90
+ $pass = (ConvertTo-SecureString - AsPlainText - Force " TestPass1234!@#" )
91
+ Assert-ThrowsContains { Get-AzServiceFabricManagedCluster - ResourceGroupName $resourceGroupName - Name $clusterName } " NotFound"
92
+
93
+ $cluster = New-AzServiceFabricManagedCluster - ResourceGroupName $resourceGroupName - ClusterName $clusterName - Location $location `
94
+ - AdminPassword $pass - Sku Standard - ClientCertThumbprint $testClientTp - Verbose
95
+ Assert-AreEqual " Succeeded" $cluster.ProvisioningState
96
+ Assert-AreEqual " WaitingForNodes" $cluster.ClusterState
97
+
98
+ $pnt = New-AzServiceFabricManagedNodeType - ResourceGroupName $resourceGroupName - ClusterName $clusterName - Name pnt - InstanceCount 5 - Primary
99
+
100
+ # add extension
101
+ $extName = ' csetest' ;
102
+ $publisher = ' Microsoft.Compute' ;
103
+ $extType = ' BGInfo' ;
104
+ $extVer = ' 2.1' ;
105
+
106
+ $pnt = Add-AzServiceFabricManagedNodeTypeVMExtension - ResourceGroupName $resourceGroupName - ClusterName $clusterName - NodeTypeName pnt `
107
+ - Name $extName - Publisher $publisher - Type $extType - TypeHandlerVersion $extVer - Verbose
108
+
109
+ $pnt = Get-AzServiceFabricManagedNodeType - ResourceGroupName $resourceGroupName - ClusterName $clusterName - Name pnt
110
+
111
+ Assert-NotNull $pnt.VmExtensions
112
+ Assert-AreEqual 1 $pnt.VmExtensions.Count
113
+
114
+ # add client cert
115
+ Assert-AreEqual 1 $cluster.Clients.Count
116
+ $testClientTp2 = " 123BDACDCDFB2C7B250192C6078E47D1E1DB7777"
117
+ $cluster = Add-AzServiceFabricManagedClusterClientCertificate - ResourceGroupName $resourceGroupName - ClusterName $clusterName - Thumbprint $testClientTp2
118
+ Assert-AreEqual 2 $cluster.Clients.Count
119
+ Assert-AreEqual $testClientTp2 $cluster.Clients [1 ].Thumbprint
120
+
121
+ # remove client cert
122
+ $remove = Remove-AzServiceFabricManagedClusterClientCertificate - ResourceGroupName $resourceGroupName - ClusterName $clusterName - Thumbprint $testClientTp2 - PassThru
123
+ Assert-True { $remove }
124
+
125
+ $cluster = Get-AzServiceFabricManagedCluster - ResourceGroupName $resourceGroupName - Name $clusterName
126
+ Assert-AreEqual 1 $cluster.Clients.Count
127
+
128
+ $removeResponse = $cluster | Remove-AzServiceFabricManagedCluster - PassThru
129
+ Assert-True { $removeResponse }
130
+ }
0 commit comments