golden sinppet to protect Zabbix LLD

el:
var json = JSON.parse(value);

result = json.map(function (el) {
	return {
		'{#SNMPINDEX}': el['{#SNMPINDEX}']
	};
});

return JSON.stringify(result);
sort JSON:
function sortJson(obj) {
  if (Object.prototype.toString.call(obj) === '[object Object]') {
    var sortedObj = {};
    var keys = [];
    for (var key in obj) {
      if (obj.hasOwnProperty(key)) {
        keys.push(key);
      }
    }
    keys.sort();
    for (var i = 0; i < keys.length; i++) {
      var k = keys[i];
      sortedObj[k] = sortJson(obj[k]);
    }
    return sortedObj;
  } else if (Object.prototype.toString.call(obj) === '[object Array]') {
    var sortedArray = [];
    for (var j = 0; j < obj.length; j++) {
      sortedArray.push(sortJson(obj[j]));
    }
    return sortedArray.sort(function (a, b) {
      return JSON.stringify(a) > JSON.stringify(b) ? 1 : -1;
    });
  } else {
    return obj;
  }
}

return JSON.stringify(sortJson(JSON.parse(value)));
0:
var json = JSON.parse(value);

result = json.map(function (el) {
	return {
		'local': el.local,
		'port': el.port
	};
});

return JSON.stringify(result);
1:
var filesystems = JSON.parse(value);

result = filesystems.map(function (filesystem) {
	return {
		'dskPath': filesystem.dskPath,
		'dskDevice': filesystem.dskDevice,
		'index': filesystem['{#SNMPINDEX}']
	};
});

return JSON.stringify(result);
2:
var json = JSON.parse(value);

var result = json.map(function (el) {
    return {
        metadata: {
            name: el.metadata.name
        }
    };
});

return JSON.stringify(result);
Output will be:
[{"metadata": {"name":"scheduler"}},{"metadata": {"name":"controller-manager"}},{"metadata": {"name":"etcd-0"}}]
3:
var json = JSON.parse(value);

var result = json.map(function (el) {
    return {
        labels: {
            node: el.labels.node
        }
    };
});

return JSON.stringify(result);
4:
var json = JSON.parse(value);

var result = json.map(function (el) {
    return {
        labels: {
            namespace: el.labels.namespace,
            pod: el.labels.pod
        }
    };
});

return JSON.stringify(result);
5:
var json = JSON.parse(value);

var result = json.map(function (el) {
    return {
        labels: {
            namespace: el.labels.namespace,
            cronjob: el.labels.cronjob
        }
    };
});

return JSON.stringify(result);

No comments: