Merge pull request #7886 from chrishoffman/win_service

Bugfix and better error propagation for win_service module
This commit is contained in:
Michael DeHaan 2014-06-22 11:24:49 -05:00
commit 558f4d7b1a
2 changed files with 22 additions and 7 deletions

View file

@ -61,12 +61,12 @@ author: Chris Hoffman
EXAMPLES = '''
# Restart a service
win_service:
name: ncover
name: spooler
state: restarted
# Set service startup mode to auto and ensure it is started
win_service:
name: ncover
name: spooler
start_mode: auto
state: started
'''

View file

@ -46,7 +46,7 @@ If ($params.start_mode) {
$svcName = $params.name
$svc = Get-Service -Name $svcName -ErrorAction SilentlyContinue
If (-not $svc) {
Fail-Json $result "Service not installed"
Fail-Json $result "Service '$svcName' not installed"
}
If ($startMode) {
@ -60,15 +60,30 @@ If ($startMode) {
If ($state) {
If ($state -eq "started" -and $svc.Status -ne "Running") {
Start-Service -Name $svcName
try {
Start-Service -Name $svcName -ErrorAction Stop
}
catch {
Fail-Json $result $_.Exception.Message
}
Set-Attr $result "changed" $true;
}
ElseIf ($state -eq "stopped" -and $svcName -ne "Stopped") {
Stop-Service -Name $svcName
ElseIf ($state -eq "stopped" -and $svc.Status -ne "Stopped") {
try {
Stop-Service -Name $svcName -ErrorAction Stop
}
catch {
Fail-Json $result $_.Exception.Message
}
Set-Attr $result "changed" $true;
}
ElseIf ($state -eq "restarted") {
Restart-Service -Name $svcName
try {
Restart-Service -Name $svcName -ErrorAction Stop
}
catch {
Fail-Json $result $_.Exception.Message
}
Set-Attr $result "changed" $true;
}
}