From b11029adca11ef9ce15714e0b3cb47d468e4c0e2 Mon Sep 17 00:00:00 2001 From: Nicolas Landais Date: Fri, 20 May 2016 20:31:46 -0400 Subject: [PATCH] Fix problem with 'restarted' state not restarting the apppool when it is in running state (#1451) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix problem with 'restarted' state not restarting the apppool when it is in running state * Implemeting code review comments Comment from previous commit “You basically want to start the pool if it's stopped and requested state is started or restarted, otherwise if requested state is restarted, restart it.” This commit implements the behavior stated in the PR comment --- windows/win_iis_webapppool.ps1 | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/windows/win_iis_webapppool.ps1 b/windows/win_iis_webapppool.ps1 index 858a151f2a3..4172dc2f336 100644 --- a/windows/win_iis_webapppool.ps1 +++ b/windows/win_iis_webapppool.ps1 @@ -90,10 +90,18 @@ try { Stop-WebAppPool -Name $name -ErrorAction Stop $result.changed = $TRUE } - if ((($state -eq 'started') -and ($pool.State -eq 'Stopped')) -or ($state -eq 'restarted')) { + if ((($state -eq 'started') -and ($pool.State -eq 'Stopped'))) { Start-WebAppPool -Name $name -ErrorAction Stop $result.changed = $TRUE } + if ($state -eq 'restarted') { + switch ($pool.State) + { + 'Stopped' { Start-WebAppPool -Name $name -ErrorAction Stop } + default { Restart-WebAppPool -Name $name -ErrorAction Stop } + } + $result.changed = $TRUE + } } } catch { Fail-Json $result $_.Exception.Message @@ -112,4 +120,4 @@ if ($pool) $pool.Attributes | ForEach { $result.info.attributes.Add($_.Name, $_.Value)}; } -Exit-Json $result +Exit-Json $result \ No newline at end of file