Sample payload for VMware software install records
Summarize
Summary of Sample payload for VMware software install records
This document provides a detailed example of how to use the VMware publisher pack with ServiceNow’s Integration and Reconciliation Engine (IRE) REST API to populate theVMware Discovered License key consumption [sampvmwarelicensekeyusage]table. It guides ServiceNow customers through sending software install records discovered from third-party sources into the ServiceNow CMDB and license consumption tables, enabling accurate tracking of VMware license usage tied to specific configuration items (CIs).
Show less
Key Steps for ServiceNow Customers
- Enable Scheduled Jobs: Ensure the property
com.snc.samp.ire.datasource.integrationis enabled for scheduled jobs in the Properties page to support third-party Datasource Integration Framework processing. - Create a License Key Record: Send a payload to the IRE REST API to create a license key in the
sampvmwarelicensekeytable. Capture the returnedsysidof this license key for subsequent operations. - Query CI sysids: Use the Enhanced IRE API to query the sysids of CIs (e.g., servers, vCenter instances) that consume the license key. These sysids are essential to link license usage to the correct assets.
- Create License Usage Records: Post payloads containing the license key sysid, usage rights, and CI sysids to the
sampvmwarelicensekeyusagetable to register software install consumption. - Run Scheduled Job: Execute the scheduled job named SAM- Update Software Usage to process and populate the consumption table with up-to-date software install records.
Practical Use of Payloads
The provided sample JSON payloads demonstrate how to specify the CI types, such as cmdbcivcenter (vCenter servers) and cmdbciwinserver (Windows servers), with relevant attributes like product version, license key, and usage rights. Relations between CIs are also defined (e.g., "Runs on").
Response bodies show how to extract key identifiers, including:
- License key sysid: From the
relatedSysIdsfield after license key creation. - CI sysid: Obtained via Enhanced IRE API queries by matching attributes such as server names.
These identifiers are critical to link license usage data accurately within ServiceNow.
Why This Matters
By following this approach, ServiceNow customers can integrate third-party software discovery data seamlessly, maintain accurate records of VMware license consumption, and ensure compliance with licensing agreements. It enables proactive software asset management by providing precise visibility into which CIs consume VMware licenses and how many rights are used versus owned.
A sample payload for VMware publisher pack that populates the VMware Discovered License key consumption [samp_vmware_license_key_usage] table with software install records from third-party discovery sources.
- Send a payload to create a license key in the VMware Discovered License key [samp_vmware_license_key] table.
- From the response body of the payload, copy the sys ID of the new license key and paste it in a text editor for later use.
- Use the Enhanced IRE API to query the sys IDs of the CIs that use the new license key.
- From the response body, copy the sys IDs of the CIs and paste them in a text editor for later use.
- Send a payload with the sys ID of the license key and the sys ID of the CIs.
- Run the schedule job, SAM- Update Software Usage to populate the VMware Discovered License key consumption [samp_vmware_license_key_usage] table with the software install records.
Request Body
{ 'items': [
{'className':'cmdb_ci_vcenter',
'related': [
{
className:'samp_vmware_license_key',
values:{
'cost_unit':'cpuPackage',
'edition':'esxEnterprisePlus.vram',
'features':'autodeploy,das,dpvmotion',
'license_key':'SYDOJ-28J5Q-78X48-0NC24-REKAR',
'product_name':'VMware vSphere 5 Enterprise Plus',
'product_version':'5.0',
'rights_owned':'8',
'rights_used':'6'
}
}
],
'values': {
'name':'VCenter Ref 1A'
}
},
{
'className':'cmdb_ci_win_server',
'values': {'name':'VirtualMachine-WS2'
}
}
],
'relations':[{
'type':'Runs on::Runs',
'parent':0,
'child':1
}]
}
Response Body
{
"result": {
"items": [
{
"className": "cmdb_ci_vcenter",
"operation": "INSERT",
"sysId": "8fb47793e7cc10107aea07d8d2f6a93a",
"relatedSysIds": [
"cbb47793e7cc10107aea07d8d2f6a93f"
],
"relatedItems": [
{
"className": "samp_vmware_license_key",
"sysId": "cbb47793e7cc10107aea07d8d2f6a93f",
"markers": [],
"inputIndices": [
{
"mainIndex": 0,
"subIndex": 0
}
]
}
],
"additionalRelatedItems": [],
"identifierEntrySysId": "Unknown",
"identificationAttempts": [
{
"attributes": [
"name"
],
"identifierName": "VMWare VCenter Ref CI",
"attemptResult": "NO_MATCH",
"searchOnTable": "cmdb_ci_vcenter",
"hybridEntryCiAttributes": []
}
],
"errorCount": 0,
"markers": [],
"inputIndices": [
0
]
},
{
"className": "cmdb_ci_win_server",
"operation": "UPDATE",
"sysId": "30ccb31ddbe7720087b9fd441d961992",
"identifierEntrySysId": "556eb250c3400200d8d4bea192d3ae92",
"identificationAttempts": [
{
"attributes": [
"serial_number",
"serial_number_type"
],
"identifierName": "Hardware Rule",
"attemptResult": "SKIPPED",
"searchOnTable": "cmdb_serial_number",
"hybridEntryCiAttributes": []
},
{
"attributes": [
"serial_number"
],
"identifierName": "Hardware Rule",
"attemptResult": "SKIPPED",
"searchOnTable": "cmdb_ci_hardware",
"hybridEntryCiAttributes": []
},
{
"attributes": [
"name"
],
"identifierName": "Hardware Rule",
"attemptResult": "MATCHED",
"searchOnTable": "cmdb_ci_hardware",
"hybridEntryCiAttributes": []
}
],
"errorCount": 0,
"markers": [],
"inputIndices": [
1
]
}
],
"additionalCommittedItems": [],
"relations": [
{
"className": "cmdb_rel_ci",
"operation": "INSERT",
"sysId": "43b47793e7cc10107aea07d8d2f6a940",
"identifierEntrySysId": "Unknown",
"errorCount": 0,
"markers": [],
"inputIndices": [
0
]
}
],
"additionalCommittedRelations": []
}
}
From this we get the samp_vmware_license_key sys id
"relatedSysIds": [
"cbb47793e7cc10107aea07d8d2f6a93f"
]
-- Obtaining the CI sys id (POST)
role: sam_admin
https://k8s0057813-node1.thunder.lab3.service-now.com/api/now/identifyreconcile/queryEnhanced?sysparm_data_source=ServiceNow
Request Body
{ 'items': [ {'className':'cmdb_ci_win_server', 'values': {'name':'Server-WS11'} }]}
Response Body
{
"result": {
"items": [
{
"className": "cmdb_ci_win_server",
"operation": "UPDATE",
"sysId": "99ccb31ddbe7720087b9fd441d9619da",
"identifierEntrySysId": "556eb250c3400200d8d4bea192d3ae92",
"identificationAttempts": [
{
"identifierName": "Hardware Rule",
"attemptResult": "SKIPPED",
"attributes": [
"serial_number",
"serial_number_type"
],
"searchOnTable": "cmdb_serial_number",
"hybridEntryCiAttributes": []
},
{
"identifierName": "Hardware Rule",
"attemptResult": "SKIPPED",
"attributes": [
"serial_number"
],
"searchOnTable": "cmdb_ci_hardware",
"hybridEntryCiAttributes": []
},
{
"identifierName": "Hardware Rule",
"attemptResult": "MATCHED",
"attributes": [
"name"
],
"searchOnTable": "cmdb_ci_hardware",
"hybridEntryCiAttributes": []
}
],
"markers": [],
"inputIndices": [
0
],
"mergedPayloadIds": [],
"errorCount": 0
}
],
"additionalCommittedItems": [],
"relations": [],
"additionalCommittedRelations": []
}
}
where "sysId": "99ccb31ddbe7720087b9fd441d9619da" is the sys id of the ci/used_by
// create usage table
POST
https://k8s0057813-node1.thunder.lab3.service-now.com/api/now/table/samp_vmware_license_key_usage?sysparm_fields=sys_id
{"license_key":"cbb47793e7cc10107aea07d8d2f6a93f","rights_used":"1","used_by":"99ccb31ddbe7720087b9fd441d9619da"}| Element | Value | Description |
|---|---|---|
| className | cmdb_ci_vcenter | Name of the table related [samp_vmware_license_key] table |
| className | samp_vmware_license_key | Name of the table where the license key is created. |
| className | cmdb_ci_win_server | The name of the Windows server table |
| name | VirtualMachine-WS2 | Name of the Windows server virtual machine. |