Feature: Add Proxy Server support for web calls
Also re-arranges web content by using old content from lib/web into lib/webserver, while new lib/web contains the proxy configuration.
Feature: Add debug output for Get-IcingaWindowsInformation calls to EventLog
Adds support to write all objects collected by `Get-IcingaWindowsInformation` into the Windows EventLog in case the debug output for the Icinga PowerShell Framework is enabled.
Experimental: Adds code caching for faster framework loading
## Current Situation
Currently the entire Framework is taking a huge amount of time to load the files. This causes several issues:
* Slow loading increases the runtime of checks
* High CPU usage for the initial loading of the Framework
* High CPU usage over a longer period of time, cause more impcact on the systems
## Possible solutions
### Add caching
To reduce the impact for the Framework loading, we could add a cache file containing all Cmdlets, Enums and Functions allowing us to import file on initialization instead of having of to search for all `.psm1` files and load them one by one
### Use Nested Modules for PowerShell Plugins
PowerShell plugins right now are using `Use-IcingaPlugins` which searchs for all `.psm1` files inside the plugin folder to load them. We should use `NestedModules` here, as the overall impact is lower. On Framework side we can't do this how ever without loading times to explode. Plugins are tracked [at issue #87 here](https://github.com/Icinga/icinga-powershell-plugins/pull/87)
## Current Status
**Mitigated**
## Usage
You can enable/disable this feature by using `Enable-IcingaFrameworkCodeCache` and `Disable-IcingaFrameworkCodeCache`. Updating the cache is done with `Write-IcingaFrameworkCodeCache`
Fix: Array handling for ValidateSet and array rendering for config generator
Empty arrays will now properly be rendered as empty array with @()instead of $null. In addition the config renderer now also supports ValidateSet for array entries
Empty arrays will now properly be rendered as empty array with @()
instead of $null. In addition the config renderer now also supports
ValidateSet for array entries
Feature: Adds support to add/remove/test Wmi permissions
You can now use 'Add-IcingaWmiPermissions' to add permissions for a specific user and namespace and remove them with
'Remove-IcingaWmiPermissions'
Fix: SSL creation on reconfigure might fail if naming changed from upper/lower case
Fixes an issue while changing the hostname between upper/lower case which might cause unwanted exceptions on one hand but also required manual signing of requests on the CA master as the signing process was not completed
Bugfix: Handle multiple network interfaces on discovery and add support for Windows 2008 R2
* Fixes issue on hosts with mulitple interfaces that provide virtual interfaces, causing problems on Director Self-Service creation
* Adds support for Windows 2008 R2
* Fixes issue on hosts with mulitple interfaces that provide virtual
interfaces, causing problems on Director Self-Service creation
* Adds support for Windows 2008 R2
Tests if a specific WMI class including the Namespace can be accessed
and returns status codes for possible errors/exceptions taht might
occure. Returns binary operator values for easier comparison. In case
no errors occured it will return $TestIcingaWindowsInfoEnums.TestIcingaWindowsInfo.Ok
Because the script analyzer often complains that we can always use the
function open brace on the same line as the function name, which is not
the case, I finally decided to correct this today. I set the attribute
OnSameLine to False and disabled the check for space before open Brace.
Feature: Add generic Cmdlet to convert Icinga Thresholds
Adds Cmdlet `Convert-IcingaPluginThresholds` as generic approach to convert Icinga Thresholds with units to the lowest unit of this type.
Fix: Version fetching for not loaded modules is impossible
Fixes version fetching for not loaded modules during upgrades/plugin calls with `Get-IcingaPowerShellModuleVersion`
Bugfix: Fixing value overflow on Convert-Bytes Cmdlet
Fixes an issue while converting data size values from any other datatype to bytes which will cause an overflow and might result in issues during comparison.