Requirements
For the Discovery Tool you need to use at least the .Net Framework 4.7.2 and Insight 8.1
The Discovery 3.x Integration Module:
Download Discovery 3.x
Please make sure that you are testing the Discovery 3.x in a non-production environment!
And that you have altered your custom pattern files.
FAQ for the Upgrade
1- Do I need to remove all existing Object Types and create from scratch?
No, you can keep your existing Object Types. You can add new Object Types and Attributes manually (please find them below on this page). Or you can use the Inspect Configuration feature in your Import Configuration.
2- Do I need to remove my Import Configuration and create from scratch?
No, you can use the existing Import configuration. Please make sure that you created the new Object Types and Attributes listed below.
3- Can I use my existing Scan Settings?
Yes, you can use your existing Scan Settings.
4- Does the new release have a performance impact (i.e. higher system requirements)?
No, Insight Discovery creates a negligible load on the server running the application.
Pattern to void
In Discovery 3 the logic for the Pattern files has changed in the following way.
Previously each pattern has returned an Object or a List with particular informations based on the use case and the internal logic as merged the "new" Information with the previous fetched data.
For example the Pattern to get the Hostname for a Linux System:
In Discovery 2 the pattern has created a new HostInfo-Object and added the Hostname-Attribute from the result to that object.
In Discovery 3 the pattern is reusing the HostInfo-Object that is initial created on the start of the scan and enrich the Hostname-Attribute from the result.
That means that the "merge" logic has removed and the full transparency of data is moved to the pattern execution.
New Command Result
In Discovery 3 version every Pattern Process Type has a Command Result implementation.
Process Type | Command Result Type |
---|---|
WMIQuery | WMIQueryResult |
WMIRegValue | WMIRegValueResult |
WMIRegValueList | WMIRegValueListResult |
WMIExecute | WMIExecuteResult |
PowerShellExecute | PowerShellExecuteResult |
SSHExecute | SSHExecuteResult |
SNMP_GET | SNMPExecuteResult |
SNMP_WALK | SNMPExecuteResult |
VIMObject | VIMCommandResult |
If you have custom patterns please update them with the following usage:
SSH Provider
Before we parsed command result directly to string like
string input = (string)parameters[0];
Now we parse it to SSHExecuteResult which has command result default Interfaces(clickable and redirect user on part of the page where are Interfaces (LogResult, IsNullOrEmpty..)) like this
SSHExecuteResult sshExecuteResult = (SSHExecuteResult)parameters[0];
SshExecuteResult is a custom implementation of string and if we want to use string methods we can parse SshExecuteResult to string.
string commandResult = sshExecuteResult;
WMI Provider
Since there are multiple result types, every single one of them will have its own implementation:
WmiExecuteResult class which is the same as SSH(custom string implementation)
WMIExecuteResult result = (WMIExecuteResult)parameters[0];
WmiPowerShellResult class which is also a string result:
PowerShellExecuteResult result = (PowerShellExecuteResult)parameters[0];
WmiQueryResult class which is List of Dictionaries.
ManagementObjectCollection results = (ManagementObjectCollection)parameters[0];
WMIQueryResult commandResult = (WMIQueryResult)parameters[0];
WmiRegistryListResult which is a list of strings
WmiRegistryResult which is a list of objects
SNMP Provider
SnmpExecuteResult class is the implementation of Dictionary<string, object>
Before it was:
List<ExtendedInformation> input = (List<ExtendedInformation>)parameters[0];
SNMPExecuteResult commandResult = (SNMPExecuteResult)parameters[0];
VIM Provider
VimCommandResult is implementation of List<EntityViewBase>
List<EntityViewBase> input = (List<EntityViewBase>)parameters[0];
VIMCommandResult commandResult = (VIMCommandResult)parameters[0];
Default Interfaces
Per default, the new CommandResult Classes has useful functions that you can use
IsNullOrEmpty() - Checks if object is null or empty
LogResult() - Log Command with result objects (explanation how to pass log level)
New Object Types
- User
- Group
New Object Attributes
Device
- Type
- Model
- Serial Number
- Vendor
Database
- Instance Name
- Port
Download Discovery 3.x
Please make sure that you are testing the Discovery 3.x in a non-production environment!
And that you have altered your custom pattern files.