Assign ipAdEntIfIndex to SNMP interface

Input:
[
{
"{#SNMPINDEX}": "192.168.49.2",
"{#IPADENTIFINDEX}": "9"
},
{
"{#SNMPINDEX}": "9",
"{#IFOPERSTATUS}": "1",
"{#IFADMINSTATUS}": "1",
"{#IFALIAS}": "",
"{#IFNAME}": "ether7",
"{#IFDESCR}": "ether7",
"{#IFTYPE}": "6"
}
]
Preprocessing:
var values = JSON.parse(value);
var ipadentifindexes = [];
var snmpindexes = {};
var result = [];
var snmpindex, ipadentifindex, entry;

for (var i = 0; i < values.length; i++) {
  if ('{#SNMPINDEX}' in values[i]) {
    snmpindex = values[i]['{#SNMPINDEX}'];
    snmpindexes[snmpindex] = values[i];
  }

  if ('{#IPADENTIFINDEX}' in values[i]) {
    ipadentifindexes.push({value: values[i]['{#IPADENTIFINDEX}'], '{#SNMPINDEX}': values[i]['{#SNMPINDEX}']});
  }
}

for (var i = 0; i < ipadentifindexes.length; i++) {
  if (ipadentifindexes[i].value in snmpindexes) {
    entry = snmpindexes[ipadentifindexes[i].value];
    result.push({
      '{#IPADDRESS}': ipadentifindexes[i]['{#SNMPINDEX}'],
      '{#SNMPINDEX}': entry['{#SNMPINDEX}'],
      '{#IFOPERSTATUS}': entry['{#IFOPERSTATUS}'],
    '{#IFADMINSTATUS}': entry['{#IFADMINSTATUS}'],
    '{#IFALIAS}': entry['{#IFALIAS}'],
    '{#IFNAME}': entry['{#IFNAME}'],
    '{#IFDESCR}': entry['{#IFDESCR}'],
    '{#IFTYPE}': entry['{#IFTYPE}']
    });
  }
}

return JSON.stringify(result);
Output:
[
{
"{#IPADDRESS}": "192.168.49.2",
"{#SNMPINDEX}": "9",
"{#IFOPERSTATUS}": "1",
"{#IFADMINSTATUS}": "1",
"{#IFALIAS}": "",
"{#IFNAME}": "ether7",
"{#IFDESCR}": "ether7",
"{#IFTYPE}": "6"
}
]

No comments: