class Inspec::Resources::IisAppPool
Public Class Methods
new(pool_name)
click to toggle source
# File lib/inspec/resources/iis_app_pool.rb, line 22 def initialize(pool_name) @pool_name = pool_name @pool_path = "IIS:\\AppPools\\#{@pool_name}" end
Public Instance Methods
enable32bit()
click to toggle source
# File lib/inspec/resources/iis_app_pool.rb, line 35 def enable32bit iis_app_pool[:e32b] end
exists?()
click to toggle source
# File lib/inspec/resources/iis_app_pool.rb, line 75 def exists? !!iis_app_pool[:pool_name] end
max_processes()
click to toggle source
# File lib/inspec/resources/iis_app_pool.rb, line 43 def max_processes iis_app_pool[:processes] end
pipeline_mode()
click to toggle source
# File lib/inspec/resources/iis_app_pool.rb, line 39 def pipeline_mode iis_app_pool[:mode] end
pool_name()
click to toggle source
# File lib/inspec/resources/iis_app_pool.rb, line 27 def pool_name iis_app_pool[:pool_name] end
runtime_version()
click to toggle source
# File lib/inspec/resources/iis_app_pool.rb, line 31 def runtime_version iis_app_pool[:version] end
timeout()
click to toggle source
# File lib/inspec/resources/iis_app_pool.rb, line 47 def timeout iis_app_pool[:timeout] end
timeout_days()
click to toggle source
# File lib/inspec/resources/iis_app_pool.rb, line 51 def timeout_days iis_app_pool[:timeout_days] end
timeout_hours()
click to toggle source
# File lib/inspec/resources/iis_app_pool.rb, line 55 def timeout_hours iis_app_pool[:timeout_hours] end
timeout_minutes()
click to toggle source
# File lib/inspec/resources/iis_app_pool.rb, line 59 def timeout_minutes iis_app_pool[:timeout_minutes] end
timeout_seconds()
click to toggle source
# File lib/inspec/resources/iis_app_pool.rb, line 63 def timeout_seconds iis_app_pool[:timeout_seconds] end
to_s()
click to toggle source
# File lib/inspec/resources/iis_app_pool.rb, line 79 def to_s "IIS App Pool '#{@pool_name}'" end
user_identity_type()
click to toggle source
# File lib/inspec/resources/iis_app_pool.rb, line 67 def user_identity_type iis_app_pool[:user_identity_type] end
username()
click to toggle source
# File lib/inspec/resources/iis_app_pool.rb, line 71 def username iis_app_pool[:username] end
Private Instance Methods
iis_app_pool()
click to toggle source
# File lib/inspec/resources/iis_app_pool.rb, line 85 def iis_app_pool @iis_app_pool ||= begin # We use `-Compress` here to avoid a bug in PowerShell # It does not affect validity of the output, only the representation # See: https://github.com/inspec/inspec/pull/3842 script = <<~EOH Import-Module WebAdministration If (Test-Path '#{@pool_path}') { Get-Item '#{@pool_path}' | Select-Object * | ConvertTo-Json -Compress } 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: 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 end