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:

insight-discovery-3.0.4.obr

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 TypeCommand Result Type
WMIQueryWMIQueryResult
WMIRegValue

WMIRegValueResult

WMIRegValueList

WMIRegValueListResult

WMIExecuteWMIExecuteResult
PowerShellExecutePowerShellExecuteResult
SSHExecuteSSHExecuteResult
SNMP_GETSNMPExecuteResult
SNMP_WALKSNMPExecuteResult
VIMObjectVIMCommandResult


If you have custom patterns please update them with the following usage:

SSH Provider

Before we parsed command result directly to string like

Before
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

After
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)

Before
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.

Before
ManagementObjectCollection results = (ManagementObjectCollection)parameters[0];
After
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:

Before
List<ExtendedInformation> input = (List<ExtendedInformation>)parameters[0];
After
SNMPExecuteResult commandResult = (SNMPExecuteResult)parameters[0];

VIM Provider


VimCommandResult is implementation of List<EntityViewBase>

Before
 List<EntityViewBase> input = (List<EntityViewBase>)parameters[0];
After
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.



  • No labels