Skip to content

Commit

Permalink
Fixes #3418 ('iis_app_pool should not exist' error)
Browse files Browse the repository at this point in the history
Signed-off-by: David Alexander <opensource@thelonelyghost.com>
  • Loading branch information
TheLonelyGhost authored and jerryaldrichiii committed Jan 22, 2019
1 parent 4713968 commit ddf024d
Showing 1 changed file with 20 additions and 10 deletions.
30 changes: 20 additions & 10 deletions lib/resources/iis_app_pool.rb
Expand Up @@ -87,29 +87,39 @@ def to_s
def iis_app_pool
return @cache unless @cache.nil?

command = "Import-Module WebAdministration; Get-Item '#{@pool_path}' | Select-Object * | ConvertTo-Json"
cmd = inspec.command(command)
script = <<-EOH
Import-Module WebAdministration
If (Test-Path '#{@pool_path}') {
Get-Item '#{@pool_path}' | Select-Object * | ConvertTo-Json
} Else {
Write-Host '{}'
}
EOH
cmd = inspec.powershell(script)

begin
pool = JSON.parse(cmd.stdout)
rescue JSON::ParserError => _e
raise Inspec::Exceptions::ResourceFailed, 'Unable to parse app pool JSON'
end

process_model = pool.fetch('processModel', {})
idle_timeout = process_model.fetch('idleTimeout', {})

# map our values to a hash table
@cache = {
pool_name: pool['name'],
version: pool['managedRuntimeVersion'],
e32b: pool['enable32BitAppOnWin64'],
mode: pool['managedPipelineMode'],
processes: pool['processModel']['maxProcesses'],
timeout: "#{pool['processModel']['idleTimeout']['Hours']}:#{pool['processModel']['idleTimeout']['Minutes']}:#{pool['processModel']['idleTimeout']['Seconds']}",
timeout_days: pool['processModel']['idleTimeout']['Days'],
timeout_hours: pool['processModel']['idleTimeout']['Hours'],
timeout_minutes: pool['processModel']['idleTimeout']['Minutes'],
timeout_seconds: pool['processModel']['idleTimeout']['Seconds'],
user_identity_type: pool['processModel']['identityType'],
username: pool['processModel']['userName'],
processes: process_model['maxProcesses'],
timeout: "#{idle_timeout['Hours']}:#{idle_timeout['Minutes']}:#{idle_timeout['Seconds']}",
timeout_days: idle_timeout['Days'],
timeout_hours: idle_timeout['Hours'],
timeout_minutes: idle_timeout['Minutes'],
timeout_seconds: idle_timeout['Seconds'],
user_identity_type: process_model['identityType'],
username: process_model['userName'],
}
end
# rubocop:enable Metrics/AbcSize
Expand Down

0 comments on commit ddf024d

Please sign in to comment.