From 58cfa8f0b11be1f7f5c6b6b247c074df972c6e97 Mon Sep 17 00:00:00 2001 From: Heikki Halmet Date: Fri, 15 Feb 2019 13:28:47 +0200 Subject: [PATCH] Provisioning: Help script for removing items MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sometimes items are locked (access denied) so we need to have function which waits and retry until removing is possible. Task-number: QTQAINFRA-2806 Change-Id: I09055c45c0e439ed1a20eb575ee79b7ca22c5745 (cherry picked from commit 76c80866af78274eeb973ab38ad7b44f216b1a1e) Reviewed-by: Tony Sarajärvi --- coin/provisioning/common/windows/helpers.ps1 | 19 +++++++++++++++++++ .../provisioning/common/windows/vc_redist.ps1 | 3 +-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/coin/provisioning/common/windows/helpers.ps1 b/coin/provisioning/common/windows/helpers.ps1 index 71a63217..ee3a4038 100644 --- a/coin/provisioning/common/windows/helpers.ps1 +++ b/coin/provisioning/common/windows/helpers.ps1 @@ -160,3 +160,22 @@ function isProxyEnabled { function getProxy { return (Get-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings').proxyServer } + +function Remove { + + Param ( + [string]$Path = $(BadParam("a path")) + ) + Write-Host "Removing $Path" + $i = 0 + While ( Test-Path($Path) ){ + Try{ + remove-item -Force -Recurse -Path $Path -ErrorAction Stop + }catch{ + $i +=1 + if ($i -eq 5) {exit 1} + Write-Verbose "$Path locked, trying again in 5" + Start-Sleep -seconds 5 + } + } +} diff --git a/coin/provisioning/common/windows/vc_redist.ps1 b/coin/provisioning/common/windows/vc_redist.ps1 index c356ca2c..d939011f 100644 --- a/coin/provisioning/common/windows/vc_redist.ps1 +++ b/coin/provisioning/common/windows/vc_redist.ps1 @@ -57,5 +57,4 @@ Download $externalUrl $internalUrl $package Verify-Checksum $package $sha1 Write-Host "Installing $package..." Run-Executable $package "/q" -Write-Host "Remove $package..." -Remove-Item -Force -Path $package +Remove $package