Skip to content

Commit d29a964

Browse files
authored
Users/sachinma/retry while creating diff package (#8783) (#8784)
Adding retrying for all cluster operations while creating a diff package.
1 parent 6271cc9 commit d29a964

File tree

14 files changed

+71
-20
lines changed

14 files changed

+71
-20
lines changed

Tasks/Common/ServiceFabricHelpers/SFOperations.ps1

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ $SF_Operations = @{
77
TestApplicationPackage = 'TestApplicationPackage';
88
GetApplication = 'GetApplication';
99
GetApplicationType = 'GetApplicationType';
10+
GetServiceType = 'GetServiceType';
11+
GetServiceManifest = 'GetServiceManifest';
1012
GetClusterManifest = 'GetClusterManifest';
1113
RemoveApplication = 'RemoveApplication';
1214
UnregisterApplicationType = 'UnregisterApplicationType';

Tasks/ServiceFabricDeployV1/Create-DiffPackage.psm1

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ function New-DiffPackage
1515

1616
# Load utility functions
1717
. "$PSScriptRoot\utilities.ps1"
18+
. "$PSScriptRoot\ServiceFabricSDK\Utilities.ps1"
1819
Import-Module $PSScriptRoot\ps_modules\ServiceFabricHelpers
1920
Import-Module $PSScriptRoot\ps_modules\PowershellHelpers
2021

@@ -23,7 +24,7 @@ function New-DiffPackage
2324
$applicationTypeName = $localAppManifestXml.ApplicationManifest.ApplicationTypeName
2425
$localAppTypeVersion = $localAppManifestXml.ApplicationManifest.ApplicationTypeVersion
2526

26-
$app = Get-ServiceFabricApplication -ApplicationName $ApplicationName
27+
$app = Get-ServiceFabricApplicationAction -ApplicationName $ApplicationName
2728

2829
# If $app is null, it means the application does not exist in the cluster. Diff Package is equal to Full Package. Use Full Package to do deployment
2930
if (!$app -or $app.ApplicationTypeName -ne $applicationTypeName)
@@ -50,7 +51,7 @@ function New-DiffPackage
5051
$diffPackagePath = New-Item -ItemType Directory -Path $diffPackagePath -Force
5152

5253
# Get the service types from the cluster
53-
$serviceTypes = Get-ServiceFabricServiceType -ApplicationTypeName $applicationTypeName -ApplicationTypeVersion $clusterAppTypeVersion
54+
$serviceTypes = Get-ServiceFabricServiceTypeAction -ApplicationTypeName $applicationTypeName -ApplicationTypeVersion $clusterAppTypeVersion
5455
# Pack the service manifest names into an array
5556
$clusterServiceManifestNames = $serviceTypes.ServiceManifestName
5657

@@ -68,7 +69,7 @@ function New-DiffPackage
6869
$clusterServiceManifestByName = @{}
6970
foreach ($clusterServiceManifestName in $clusterServiceManifestNames)
7071
{
71-
$clusterServiceManifestContent = Get-ServiceFabricServiceManifest -ApplicationTypeName $applicationTypeName -ApplicationTypeVersion $clusterAppTypeVersion -ServiceManifestName $clusterServiceManifestName
72+
$clusterServiceManifestContent = Get-ServiceFabricServiceManifestAction -ApplicationTypeName $applicationTypeName -ApplicationTypeVersion $clusterAppTypeVersion -ServiceManifestName $clusterServiceManifestName
7273
$clusterServiceManifestByName[$clusterServiceManifestName] = [XML]$clusterServiceManifestContent
7374
}
7475

Tasks/ServiceFabricDeployV1/ServiceFabricSDK/Utilities.ps1

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,43 @@ function Get-ServiceFabricApplicationAction
235235
$getApplicationParams['ApplicationName'] = $ApplicationName
236236
}
237237

238-
return Get-ServiceFabricApplication @getApplicationParams
238+
return Invoke-ActionWithDefaultRetries -Action { Get-ServiceFabricApplication @getApplicationParams } `
239+
-RetryMessage (Get-VstsLocString -Key SFSDK_RetryingGetApplication)
240+
}
241+
242+
function Get-ServiceFabricServiceTypeAction
243+
{
244+
Param (
245+
[string]
246+
$ApplicationTypeName,
247+
248+
[string]
249+
$ApplicationTypeVersion
250+
)
251+
252+
$global:operationId = $SF_Operations.GetServiceType
253+
254+
return Invoke-ActionWithDefaultRetries -Action { Get-ServiceFabricServiceType -ApplicationTypeName $ApplicationTypeName -ApplicationTypeVersion $ApplicationTypeVersion } `
255+
-RetryMessage (Get-VstsLocString -Key SFSDK_RetryingGetServiceType)
256+
}
257+
258+
function Get-ServiceFabricServiceManifestAction
259+
{
260+
Param (
261+
[string]
262+
$ApplicationTypeName,
263+
264+
[string]
265+
$ApplicationTypeVersion,
266+
267+
[string]
268+
$ServiceManifestName
269+
)
270+
271+
$global:operationId = $SF_Operations.GetServiceManifest
272+
273+
return Invoke-ActionWithDefaultRetries -Action { Get-ServiceFabricServiceManifest -ApplicationTypeName $ApplicationTypeName -ApplicationTypeVersion $ApplicationTypeVersion -ServiceManifestName $ServiceManifestName } `
274+
-RetryMessage (Get-VstsLocString -Key SFSDK_RetryingGetServiceManifest)
239275
}
240276

241277
function Get-ServiceFabricApplicationUpgradeAction
@@ -989,7 +1025,8 @@ function Get-ServiceFabricApplicationActionOldSdk
9891025
$getApplicationParams['ApplicationName'] = $ApplicationName
9901026
}
9911027

992-
$apps = Get-ServiceFabricApplication @getApplicationParams
1028+
$apps = Invoke-ActionWithDefaultRetries -Action { Get-ServiceFabricApplication @getApplicationParams } `
1029+
-RetryMessage (Get-VstsLocString -Key SFSDK_RetryingGetApplication)
9931030
if($ApplicationTypeName)
9941031
{
9951032
$apps = $apps | Where-Object { $_.ApplicationTypeName -eq $ApplicationTypeName }

Tasks/ServiceFabricDeployV1/Strings/resources.resjson/en-US/resources.resjson

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,9 @@
139139
"loc.messages.SFSDK_ApplicationHealth": "Getting application health:",
140140
"loc.messages.SFSDK_RetryingUpgradeApplication": "Retrying application upgrade..",
141141
"loc.messages.SFSDK_RetryingGetApplicationUpgrade": "Getting application upgrade status...",
142+
"loc.messages.SFSDK_RetryingGetApplication": "Getting application from the cluster...",
143+
"loc.messages.SFSDK_RetryingGetServiceType": "Getting service type from the cluster...",
144+
"loc.messages.SFSDK_RetryingGetServiceManifest": "Getting service manifest from the cluster...",
142145
"loc.messages.SFSDK_RetryingTestClusterConnection": "Testing connection to cluster..",
143146
"loc.messages.SFSDK_RetryingTestAppPackage": "Testing application package..",
144147
"loc.messages.SFSDK_RetryingGetClusterManifest": "Getting cluster manifest..",

Tasks/ServiceFabricDeployV1/Tests/AadDeploy.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ Register-Mock Get-ItemProperty { $regKeyObj } -- -Path "HKLM:\SOFTWARE\Microsoft
9191
Register-Mock Get-ApplicationNameFromApplicationParameterFile { $appName } -- "$PSScriptRoot\data\ApplicationParameters.xml"
9292

9393
# Indicate that the application does not exist on cluster
94-
Register-Mock Get-ServiceFabricApplication { $null } -- -ApplicationName $appName
94+
Register-Mock Get-ServiceFabricApplicationAction { $null } -- -ApplicationName $appName
9595

9696
$publishArgs = @("-ApplicationParameterFilePath:", "$PSScriptRoot\data\ApplicationParameters.xml", "-OverwriteBehavior:", $overwriteBehavior, "-ApplicationPackagePath:", $applicationPackagePath, "-ErrorAction:", "Stop", "-Action:", "RegisterAndCreate")
9797
Register-Mock Publish-NewServiceFabricApplication -Arguments $publishArgs

Tasks/ServiceFabricDeployV1/Tests/CertDeploy.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ Register-Mock Get-ApplicationManifestPath { $applicationManifestPath } -- -Appli
6666
Register-Mock Get-OverridenApplicationParameters { $applicationParameter } -- -ApplicationManifestPath $applicationManifestPath
6767

6868
# Indicate that the application does not exist on cluster
69-
Register-Mock Get-ServiceFabricApplication { $null } -- -ApplicationName $appName
69+
Register-Mock Get-ServiceFabricApplicationAction { $null } -- -ApplicationName $appName
7070
$publishArgs = @("-Action:", "RegisterAndCreate", "-ApplicationPackagePath:", $applicationPackagePath, "-OverwriteBehavior:", $overwriteBehavior, "-ApplicationParameter:", $applicationParameter, "-ErrorAction:", "Stop", "-ApplicationParameterFilePath:", "$PSScriptRoot\data\ApplicationParameters.xml")
7171
Register-Mock Publish-NewServiceFabricApplication -Arguments $publishArgs
7272

Tasks/ServiceFabricDeployV1/Tests/CertDeployWithDocker.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ Register-Mock Get-ItemProperty { $regKeyObj } -- -Path "HKLM:\SOFTWARE\Microsoft
8585
Register-Mock Get-ApplicationNameFromApplicationParameterFile { $appName } -- "$PSScriptRoot\data\ApplicationParameters.xml"
8686

8787
# Indicate that the application does not exist on cluster
88-
Register-Mock Get-ServiceFabricApplication { $null } -- -ApplicationName $appName
88+
Register-Mock Get-ServiceFabricApplicationAction { $null } -- -ApplicationName $appName
8989
$publishArgs = @("-ApplicationParameterFilePath:", "$PSScriptRoot\data\ApplicationParameters.xml", "-OverwriteBehavior:", $overwriteBehavior, "-ApplicationPackagePath:", $applicationPackagePath, "-ErrorAction:", "Stop", "-Action:", "RegisterAndCreate")
9090
Register-Mock Publish-NewServiceFabricApplication -Arguments $publishArgs
9191

Tasks/ServiceFabricDeployV1/Tests/CertDeployWithDockerMultiThumbprint.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ Register-Mock Get-ItemProperty { $regKeyObj } -- -Path "HKLM:\SOFTWARE\Microsoft
9090
Register-Mock Get-ApplicationNameFromApplicationParameterFile { $appName } -- "$PSScriptRoot\data\ApplicationParameters.xml"
9191

9292
# Indicate that the application does not exist on cluster
93-
Register-Mock Get-ServiceFabricApplication { $null } -- -ApplicationName $appName
93+
Register-Mock Get-ServiceFabricApplicationAction { $null } -- -ApplicationName $appName
9494
$publishArgs = @("-ApplicationParameterFilePath:", "$PSScriptRoot\data\ApplicationParameters.xml", "-OverwriteBehavior:", $overwriteBehavior, "-ApplicationPackagePath:", $applicationPackagePath, "-ErrorAction:", "Stop", "-Action:", "RegisterAndCreate")
9595
Register-Mock Publish-NewServiceFabricApplication -Arguments $publishArgs
9696

Tasks/ServiceFabricDeployV1/Tests/CreateDiffPkg.ps1

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,8 @@ $app = @{
8787
"ApplicationTypeName" = $applicationTypeName;
8888
"ApplicationTypeVersion" = $applicationTypeVersion
8989
}
90-
Register-Mock Get-ServiceFabricApplication { $app } -- -ApplicationName $appName
90+
91+
Register-Mock Get-ServiceFabricApplicationAction { $app } -- -ApplicationName $appName
9192
$publishArgs = @("-ApplicationParameterFilePath:", "$PSScriptRoot\data\ApplicationParameters.xml", "-OverwriteBehavior:", $overwriteBehavior, "-ApplicationPackagePath:", $diffPackagePath, "-ErrorAction:", "Stop", "-Action:", "RegisterAndCreate")
9293
Register-Mock Publish-NewServiceFabricApplication -Arguments $publishArgs
9394

@@ -138,11 +139,11 @@ $serviceManifest4 = '<ServiceManifest Name="Stateless4Pkg" Version="1.0.0">' +
138139
'</ServiceManifest>'
139140

140141
Register-Mock Test-ServiceFabricApplicationPackage {$true} -- -ApplicationPackagePath $applicationPackagePath
141-
Register-Mock Get-ServiceFabricServiceType {$serviceTypes} -- -ApplicationTypeName $applicationTypeName -ApplicationTypeVersion $applicationTypeVersion
142-
Register-Mock Get-ServiceFabricServiceManifest {$serviceManifest1} -- -ApplicationTypeName $applicationTypeName -ApplicationTypeVersion $applicationTypeVersion -ServiceManifestName "Stateless1Pkg"
143-
Register-Mock Get-ServiceFabricServiceManifest {$serviceManifest2} -- -ApplicationTypeName $applicationTypeName -ApplicationTypeVersion $applicationTypeVersion -ServiceManifestName "Stateless2Pkg"
144-
Register-Mock Get-ServiceFabricServiceManifest {$serviceManifest3} -- -ApplicationTypeName $applicationTypeName -ApplicationTypeVersion $applicationTypeVersion -ServiceManifestName "Stateless3Pkg"
145-
Register-Mock Get-ServiceFabricServiceManifest {$serviceManifest4} -- -ApplicationTypeName $applicationTypeName -ApplicationTypeVersion $applicationTypeVersion -ServiceManifestName "Stateless4Pkg"
142+
Register-Mock Get-ServiceFabricServiceTypeAction {$serviceTypes} -- -ApplicationTypeName $applicationTypeName -ApplicationTypeVersion $applicationTypeVersion
143+
Register-Mock Get-ServiceFabricServiceManifestAction {$serviceManifest1} -- -ApplicationTypeName $applicationTypeName -ApplicationTypeVersion $applicationTypeVersion -ServiceManifestName "Stateless1Pkg"
144+
Register-Mock Get-ServiceFabricServiceManifestAction {$serviceManifest2} -- -ApplicationTypeName $applicationTypeName -ApplicationTypeVersion $applicationTypeVersion -ServiceManifestName "Stateless2Pkg"
145+
Register-Mock Get-ServiceFabricServiceManifestAction {$serviceManifest3} -- -ApplicationTypeName $applicationTypeName -ApplicationTypeVersion $applicationTypeVersion -ServiceManifestName "Stateless3Pkg"
146+
Register-Mock Get-ServiceFabricServiceManifestAction {$serviceManifest4} -- -ApplicationTypeName $applicationTypeName -ApplicationTypeVersion $applicationTypeVersion -ServiceManifestName "Stateless4Pkg"
146147

147148
Register-Mock Copy-Item {} -LiteralPath $appManifestPath $appManifestDiffPath -Force
148149
Register-Mock Test-Path { $true } -- -LiteralPath $codePkg1

Tasks/ServiceFabricDeployV1/Tests/NoAuthDeploy.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ Register-Mock Get-ItemProperty { $regKeyObj } -- -Path "HKLM:\SOFTWARE\Microsoft
5050
Register-Mock Get-ApplicationNameFromApplicationParameterFile { $appName } -- "$PSScriptRoot\data\ApplicationParameters.xml"
5151

5252
# Indicate that the application does not exist on cluster
53-
Register-Mock Get-ServiceFabricApplication { $null } -- -ApplicationName $appName
53+
Register-Mock Get-ServiceFabricApplicationAction { $null } -- -ApplicationName $appName
5454
$publishArgs = @("-ApplicationParameterFilePath:", "$PSScriptRoot\data\ApplicationParameters.xml", "-OverwriteBehavior:", $overwriteBehavior, "-ApplicationPackagePath:", $applicationPackagePath, "-ErrorAction:", "Stop", "-Action:", "RegisterAndCreate")
5555
Register-Mock Publish-NewServiceFabricApplication -Arguments $publishArgs
5656

0 commit comments

Comments
 (0)