@@ -22,25 +22,68 @@ try {
2222 $removeTimeoutSec = Get-VstsInput - Name removeTimeoutSec
2323 $getStatusTimeoutSec = Get-VstsInput - Name getStatusTimeoutSec
2424
25- $deployParameters = @ {
26- ' ApplicationName' = $applicationName
27- ' Compose' = $composeFilePath
28- }
29- $removeParameters = @ {
30- ' Force' = $true
31- }
32- $getStatusParameters = @ {
33- ' ApplicationName' = $applicationName
34- }
35-
36- $usePreviewApi = $false
37- $regKey = Get-ItemProperty - Path ' HKLM:\SOFTWARE\Microsoft\Service Fabric\' - ErrorAction SilentlyContinue
25+ $apiVersion = ' 2.8'
26+ $regKey = Get-ItemProperty - Path ' HKLM:\SOFTWARE\Microsoft\Service Fabric SDK\' - ErrorAction SilentlyContinue
3827 if ($regKey )
3928 {
40- if ($regKey.FabricVersion.StartsWith (' 255.255' ))
29+ if ($regKey.FabricSDKVersion -match " ^\d+\.\d+" )
30+ {
31+ $regExVersion = $matches [0 ]
32+
33+ switch ($regExVersion ) {
34+ ' 2.7' { $apiVersion = ' 2.7' }
35+ ' 2.8' { $apiVersion = ' 2.8' }
36+ ' 255.255' { $apiVersion = ' 255.255' }
37+ Default {
38+ $sdkVersion = New-Object Version
39+ if ([Version ]::TryParse($matches [0 ], [ref ]$sdkVersion )) {
40+ $minVersion = New-Object - TypeName Version - ArgumentList ' 2.7'
41+ if ($sdkVersion -lt $minVersion ) {
42+ Write-Error (Get-VstsLocString - Key UnsupportedAPIVersion - ArgumentList $regKey.FabricSDKVersion )
43+ return ;
44+ }
45+ }
46+ else {
47+ Write-Error (Get-VstsLocString - Key UnsupportedAPIVersion - ArgumentList $regKey.FabricSDKVersion )
48+ return ;
49+ }
50+ }
51+ }
52+ }
53+ else
4154 {
42- $usePreviewApi = $true
43- Write-Verbose (Get-VstsLocString - Key UsingPreviewAPI)
55+ Write-Error (Get-VstsLocString - Key UnsupportedAPIVersion - ArgumentList $regKey.FabricSDKVersion )
56+ return ;
57+ }
58+ }
59+ Write-Verbose (Get-VstsLocString - Key UsingAPIVersion - ArgumentList $apiVersion )
60+
61+ if ($apiVersion -eq ' 2.8' )
62+ {
63+ $deployParameters = @ {
64+ ' DeploymentName' = $applicationName
65+ ' Compose' = $composeFilePath
66+ }
67+ $removeParameters = @ {
68+ ' DeploymentName' = $applicationName
69+ ' Force' = $true
70+ }
71+ $getStatusParameters = @ {
72+ ' DeploymentName' = $applicationName
73+ }
74+ }
75+ else
76+ {
77+ $deployParameters = @ {
78+ ' ApplicationName' = $applicationName
79+ ' Compose' = $composeFilePath
80+ }
81+ $removeParameters = @ {
82+ ' ApplicationName' = $applicationName
83+ ' Force' = $true
84+ }
85+ $getStatusParameters = @ {
86+ ' ApplicationName' = $applicationName
4487 }
4588 }
4689
93136 }
94137 }
95138
96- if ($usePreviewApi )
139+ if ($apiVersion -eq ' 255.255 ' )
97140 {
98141 $deployParameters [' RepositoryUserName' ] = $username
99142 $deployParameters [' RepositoryPassword' ] = $password
@@ -120,49 +163,47 @@ try {
120163 $getStatusParameters [' TimeoutSec' ] = $getStatusTimeoutSec
121164 }
122165
123- $existingApplication = Get-ServiceFabricComposeApplicationStatusHelper - UsePreviewAPI $usePreviewAPI - GetStatusParameters $getStatusParameters
166+ $existingApplication = Get-ServiceFabricComposeApplicationStatusHelper - ApiVersion $apiVersion - GetStatusParameters $getStatusParameters
124167 if ($existingApplication -ne $null )
125168 {
126169 Write-Host (Get-VstsLocString - Key RemovingApplication - ArgumentList $applicationName )
127- $removeParameters [' ApplicationName' ] = $applicationName
128- Remove-ServiceFabricComposeApplication @removeParameters
129170
171+ Remove-ServiceFabricComposeApplicationHelper - ApiVersion $apiVersion - RemoveParameters $removeParameters
130172 do
131173 {
132- Write-Host (Get-VstsLocString - Key CurrentStatus - ArgumentList $existingApplication.ComposeApplicationStatus )
174+ Write-Host (Get-VstsLocString - Key CurrentStatus - ArgumentList $existingApplication.Status )
133175 Start-Sleep - Seconds 3
134- $existingApplication = Get-ServiceFabricComposeApplicationStatusHelper - UsePreviewAPI $usePreviewAPI - GetStatusParameters $getStatusParameters
135-
176+ $existingApplication = Get-ServiceFabricComposeApplicationStatusHelper - ApiVersion $apiVersion - GetStatusParameters $getStatusParameters
136177 }
137178 while ($existingApplication -ne $null )
138179 Write-Host (Get-VstsLocString - Key ApplicationRemoved)
139180 }
140181
141182 Write-Host (Get-VstsLocString - Key CreatingApplication)
142- New-ServiceFabricComposeApplication @ deployParameters
183+ New-ServiceFabricComposeApplicationHelper - ApiVersion $apiVersion - DeployParameters $ deployParameters
143184
144185 Write-Host (Get-VstsLocString - Key WaitingForDeploy)
145- $newApplication = Get-ServiceFabricComposeApplicationStatusHelper - UsePreviewAPI $usePreviewAPI - GetStatusParameters $getStatusParameters
186+ $newApplication = Get-ServiceFabricComposeApplicationStatusHelper - ApiVersion $apiVersion - GetStatusParameters $getStatusParameters
146187 while (($newApplication -eq $null ) -or `
147- ($newApplication.ComposeApplicationStatus -eq ' Provisioning' ) -or `
148- ($newApplication.ComposeApplicationStatus -eq ' Creating' ))
188+ ($newApplication.Status -eq ' Provisioning' ) -or `
189+ ($newApplication.Status -eq ' Creating' ))
149190 {
150191 if ($newApplication -eq $null )
151192 {
152193 Write-Host (Get-VstsLocString - Key WaitingForDeploy)
153194 }
154195 else
155196 {
156- Write-Host (Get-VstsLocString - Key CurrentStatus - ArgumentList $newApplication.ComposeApplicationStatus )
197+ Write-Host (Get-VstsLocString - Key CurrentStatus - ArgumentList $newApplication.Status )
157198 }
158199 Start-Sleep - Seconds 3
159- $newApplication = Get-ServiceFabricComposeApplicationStatusHelper - UsePreviewAPI $usePreviewAPI - GetStatusParameters $getStatusParameters
200+ $newApplication = Get-ServiceFabricComposeApplicationStatusHelper - ApiVersion $apiVersion - GetStatusParameters $getStatusParameters
160201 }
161- Write-Host (Get-VstsLocString - Key CurrentStatus - ArgumentList $newApplication.ComposeApplicationStatus )
202+ Write-Host (Get-VstsLocString - Key CurrentStatus - ArgumentList $newApplication.Status )
162203
163- if ($newApplication.ComposeApplicationStatus -ne ' Created' )
204+ if ($newApplication.Status -ne ' Created' -and $newApplication .Status -ne ' Ready ' )
164205 {
165- Write-Error (Get-VstsLocString - Key DeployFailed - ArgumentList @ ($newApplication.ComposeApplicationStatus .ToString (), $newApplication.StatusDetails ))
206+ Write-Error (Get-VstsLocString - Key DeployFailed - ArgumentList @ ($newApplication.Status .ToString (), $newApplication.StatusDetails ))
166207 }
167208} finally {
168209 Trace-VstsLeavingInvocation $MyInvocation
0 commit comments