How are software uninstall-install reconciled against cmdb_sam_sw_install table by discovery

Dhanraj Poojari
Mega Guru

When a software is uninstalled or installed on a server & next discovery scan executes on this CI. How is the corresponding record in the cmdb_sam_sw_install table reconciled and records added / deleted.

Note - We have Software Asset Mgmt (Pro) activated

When checked under the discovery logs(ECC queue) we could not locate any triggered pattern that collects software installation entries. We checked the "Windows - Installed Software" sensor and it doesn't seem to handle updates into cmdb_sam_sw_install either.

 

Can anyone clarify what process handles record management for the cmdb_sam_sw_install table. Or is this something that is protected and native to the product?

 

Edited : Just to clarify that this question is not related to software license harvesting or software model management. Below simple example to explain my question better,

Day x - CI has 25 software installations displayed in CMDB under "Software Installation" related list

Day x+2  - Two days later, server team performs few un-installation on the server 

Day x+5 - Discovery executes and it finds 23 software installation on the server

Now we would like to know

1 - what process deletes the additional two software installation records on the CI

2 - is this process real time (part of some pattern or probe) or is it a scheduled job ?

 

1 ACCEPTED SOLUTION

Dhanraj Poojari
Mega Guru

Pasting the feedback from tech support . From this response it seems like an internal java code processes data reconciliation on the Software Installs table 

 

The Windows - Installed Software" sensor calls the below line : this.addToRelatedList('cmdb_ci_spkg', filteredPackages, '', ''); https://<instance>.service-now.com/nav_to.do?uri=discovery_sensor.do?sys_id=df4bcfab0a0a0ba5007f09a96a434b74

addtoRelatedlist function is implemented in the DiscoverySensor script include

In the DiscoverySensor script include, we call the process function in the DiscoveryReconciler Script include and pass the table name "cmdb_ci_spkg" as a parameter. https://<instance>.service-now.com/nav_to.do?uri=sys_script_include.do?sys_id=4fa2ef960a0a0ba500d0ac5d968efa2d

In the DiscoveryReconciler script include, we have the below code snippet :

if (tableName == 'cmdb_ci_spkg')

{ var cmsoft = new GlideappCMDBSoftwareHelper(this.cmdbGr);

cmsoft.reconcile(obj.data);

So the above code calls the java class GlideappCMDBSoftwareHelper and the function reconcile which is responsible for populating the cmdb_sam_software_install table.

View solution in original post

7 REPLIES 7

Ashutosh Munot1
Kilo Patron
Kilo Patron

Hi,

If you got your answer and satisfied with response please mark my response as correct so others can find it easily and get benefit from it.


Thanks,
Ashutosh

Dhanraj Poojari
Mega Guru

Pasting the feedback from tech support . From this response it seems like an internal java code processes data reconciliation on the Software Installs table 

 

The Windows - Installed Software" sensor calls the below line : this.addToRelatedList('cmdb_ci_spkg', filteredPackages, '', ''); https://<instance>.service-now.com/nav_to.do?uri=discovery_sensor.do?sys_id=df4bcfab0a0a0ba5007f09a96a434b74

addtoRelatedlist function is implemented in the DiscoverySensor script include

In the DiscoverySensor script include, we call the process function in the DiscoveryReconciler Script include and pass the table name "cmdb_ci_spkg" as a parameter. https://<instance>.service-now.com/nav_to.do?uri=sys_script_include.do?sys_id=4fa2ef960a0a0ba500d0ac5d968efa2d

In the DiscoveryReconciler script include, we have the below code snippet :

if (tableName == 'cmdb_ci_spkg')

{ var cmsoft = new GlideappCMDBSoftwareHelper(this.cmdbGr);

cmsoft.reconcile(obj.data);

So the above code calls the java class GlideappCMDBSoftwareHelper and the function reconcile which is responsible for populating the cmdb_sam_software_install table.

Did you get a response on how the cmdb_sam_sw_install is reconciled ?

What is the key used to reconcile the software installation table ?