{
    "collectionMethod": "script",
    "searchKeywords": "",
    "description": "Manually maps the store router to all the collectors in the general devices ABG.",
    "appliesTo": "",
    "collectionAttrs": "{\"scriptgroovy\":\"/*******************************************************************************\\r\\n * © 2007-2020 - LogicMonitor, Inc. All rights reserved.\\r\\n ******************************************************************************/\\r\\n\\r\\nimport groovy.json.JsonOutput\\r\\n\\r\\n// List of edges in (type,from,to) format\\r\\ndef edges = []\\r\\n\\r\\ndef keyNamespace = hostProps.get(hostProps.get(\\\"topo.namespace\\\", \\\"\\\"), \\\"\\\")\\r\\ndef keyBlacklist = hostProps.get(\\\"topo.blacklist\\\", \\\"\\\").tokenize(\\\",\\\")\\r\\ndef currentCollector = hostProps.get(\\\"system.collectorid\\\")\\r\\ndef eris = hostProps.get(\\\"predef.externalResourceID\\\")\\r\\ndef matcher = eris =~ /([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})/\\r\\ndef eri = matcher[0][0]\\r\\n\\r\\n// Register edge from <ERI 1> to <ERI 2>\\r\\n// registerEdge(\\\"NETWORK\\\", \\\"<ERI 1>\\\", \\\"<ERI 2>\\\", edges) \\r\\n/*\\r\\nregisterEdge(\\\"NETWORK\\\", eri, \\\"lmcid_27\\\", edges) \\r\\nregisterEdge(\\\"NETWORK\\\", \\\"lmcid_27\\\", eri, edges) \\r\\nregisterEdge(\\\"NETWORK\\\", eri, \\\"lmcid_34\\\", edges) \\r\\nregisterEdge(\\\"NETWORK\\\", \\\"lmcid_34\\\", eri, edges) \\r\\nregisterEdge(\\\"NETWORK\\\", eri, \\\"lmcid_35\\\", edges) \\r\\nregisterEdge(\\\"NETWORK\\\", \\\"lmcid_35\\\", eri, edges) \\r\\nregisterEdge(\\\"NETWORK\\\", eri, \\\"lmcid_36\\\", edges) \\r\\nregisterEdge(\\\"NETWORK\\\", \\\"lmcid_36\\\", eri, edges) \\r\\nregisterEdge(\\\"NETWORK\\\", eri, \\\"lmcid_43\\\", edges) \\r\\nregisterEdge(\\\"NETWORK\\\", \\\"lmcid_43\\\", eri, edges) \\r\\nregisterEdge(\\\"NETWORK\\\", eri, \\\"lmcid_44\\\", edges) \\r\\nregisterEdge(\\\"NETWORK\\\", \\\"lmcid_44\\\", eri, edges) \\r\\nregisterEdge(\\\"NETWORK\\\", eri, \\\"lmcid_45\\\", edges) \\r\\nregisterEdge(\\\"NETWORK\\\", \\\"lmcid_45\\\", eri, edges) \\r\\nregisterEdge(\\\"NETWORK\\\", eri, \\\"lmcid_46\\\", edges) \\r\\nregisterEdge(\\\"NETWORK\\\", \\\"lmcid_46\\\", eri, edges) \\r\\nregisterEdge(\\\"NETWORK\\\", eri, \\\"lmcid_47\\\", edges) \\r\\nregisterEdge(\\\"NETWORK\\\", \\\"lmcid_47\\\", eri, edges) \\r\\nregisterEdge(\\\"NETWORK\\\", eri, \\\"lmcid_48\\\", edges) \\r\\nregisterEdge(\\\"NETWORK\\\", \\\"lmcid_48\\\", eri, edges) \\r\\nregisterEdge(\\\"NETWORK\\\", eri, \\\"lmcid_49\\\", edges) \\r\\nregisterEdge(\\\"NETWORK\\\", \\\"lmcid_49\\\", eri, edges) \\r\\nregisterEdge(\\\"NETWORK\\\", eri, \\\"lmcid_50\\\", edges) \\r\\nregisterEdge(\\\"NETWORK\\\", \\\"lmcid_50\\\", eri, edges) \\r\\nregisterEdge(\\\"NETWORK\\\", eri, \\\"lmcid_51\\\", edges) \\r\\nregisterEdge(\\\"NETWORK\\\", \\\"lmcid_51\\\", eri, edges) \\r\\nregisterEdge(\\\"NETWORK\\\", eri, \\\"lmcid_53\\\", edges) \\r\\nregisterEdge(\\\"NETWORK\\\", \\\"lmcid_53\\\", eri, edges) \\r\\nregisterEdge(\\\"NETWORK\\\", eri, \\\"lmcid_55\\\", edges) \\r\\nregisterEdge(\\\"NETWORK\\\", \\\"lmcid_55\\\", eri, edges) \\r\\nregisterEdge(\\\"NETWORK\\\", eri, \\\"lmcid_56\\\", edges) \\r\\nregisterEdge(\\\"NETWORK\\\", \\\"lmcid_56\\\", eri, edges) \\r\\nregisterEdge(\\\"NETWORK\\\", eri, \\\"lmcid_58\\\", edges) \\r\\nregisterEdge(\\\"NETWORK\\\", \\\"lmcid_58\\\", eri, edges) \\r\\nregisterEdge(\\\"NETWORK\\\", eri, \\\"lmcid_59\\\", edges) \\r\\nregisterEdge(\\\"NETWORK\\\", \\\"lmcid_59\\\", eri, edges) \\r\\nregisterEdge(\\\"NETWORK\\\", eri, \\\"lmcid_60\\\", edges) \\r\\nregisterEdge(\\\"NETWORK\\\", \\\"lmcid_60\\\", eri, edges) \\r\\nregisterEdge(\\\"NETWORK\\\", eri, \\\"lmcid_61\\\", edges) \\r\\nregisterEdge(\\\"NETWORK\\\", \\\"lmcid_61\\\", eri, edges) \\r\\nregisterEdge(\\\"NETWORK\\\", eri, \\\"lmcid_82\\\", edges) \\r\\nregisterEdge(\\\"NETWORK\\\", \\\"lmcid_82\\\", eri, edges) \\r\\nregisterEdge(\\\"NETWORK\\\", eri, \\\"lmcid_84\\\", edges) \\r\\nregisterEdge(\\\"NETWORK\\\", \\\"lmcid_84\\\", eri, edges) \\r\\n*/\\r\\n// map collectors to switch\\r\\n//registerEdge(\\\"NETWORK\\\", eri, \\\"lmcid_\\\" + currentCollector, edges) \\r\\nregisterEdge(\\\"NETWORK\\\", \\\"lmcid_\\\" + currentCollector, eri, edges)\\r\\n\\r\\n// use for new collectors \\r\\n//registerEdge(\\\"NETWORK\\\", eri, \\\"\\\", edges) \\r\\n//registerEdge(\\\"NETWORK\\\", \\\"\\\", eri, edges) \\r\\n\\r\\n\\r\\nprintln generateTopology(edges, keyNamespace, keyBlacklist)\\r\\n\\r\\nreturn 0\\r\\n\\r\\n// Function to register topology edges\\r\\ndef registerEdge(edge_type, from_obj, to_obj, edges) {\\r\\n\\r\\n    from_obj = from_obj.replace(\\\",\\\", \\\"_\\\")\\r\\n    to_obj = to_obj.replace(\\\",\\\", \\\"_\\\")\\r\\n\\r\\n    edges.add([edge_type, from_obj, to_obj])\\r\\n}\\r\\n\\r\\n/**\\r\\n * Helper function to generate and output topology\\r\\n * @param edges\\r\\n * @param namespace\\r\\n * @param blacklist\\r\\n * @return jSON topology\\r\\n */\\r\\ndef generateTopology(List edges, String namespace, List blacklist) {\\r\\n\\r\\n\\t// empty arrays to fill later.\\r\\n    def topoEdges = []\\r\\n    def topoVertices = []\\r\\n\\r\\n    edges.unique()\\r\\n\\r\\n    edges.each { edge ->\\r\\n\\r\\n        def edge_type = edge[0]\\r\\n        def from_key = edge[1]\\r\\n        def to_key = edge[2]\\r\\n\\r\\n        if (blacklist.contains(from_key)) {\\r\\n            if (debug) println \\\"Avoiding ${edge} because ${from_key} is in blacklist\\\"\\r\\n            return\\r\\n        }\\r\\n        if (blacklist.contains(to_key)) {\\r\\n            if (debug) println \\\"Avoiding ${edge} because ${to_key} is in blacklist\\\"\\r\\n            return\\r\\n        }\\r\\n\\r\\n        if (namespace) {\\r\\n            from_key = \\\"${namespace}::${from_key}\\\"\\r\\n            to_key = \\\"${namespace}::${to_key}\\\"\\r\\n        }\\r\\n\\r\\n        topoEdges << [\\\"type\\\": edge_type, \\\"from\\\": from_key, \\\"to\\\": to_key]\\r\\n    }\\r\\n\\r\\n    def topology = [:]\\r\\n    topology[\\\"vertices\\\"] = topoVertices\\r\\n    topology[\\\"edges\\\"] = topoEdges\\r\\n\\r\\n    def json = JsonOutput.toJson(topology)\\r\\n    return JsonOutput.prettyPrint(json)\\r\\n}\",\"linuxscript\":\"\",\"linuxcmdline\":\"\",\"scripttype\":\"embed\",\"windowscmdline\":\"\",\"manualConnections\":\"\",\"windowsscript\":\"\",\"properties\":\"\"}",
    "type": 9,
    "technicalNotes": "NOTE:  If any new collectors are added a registerEdge for the new collector needs to be added to the script.  The below example would add the registerEdge for collector #27\n\nregisterEdge(\"NETWORK\", eri, \"lmcid_27\", edges) \nregisterEdge(\"NETWORK\", \"lmcid_27\", eri, edges)\n\nAny new collectors will also need to be added to the RCA - General Devices",
    "version": 1710834418,
    "registryMetadata": {
        "currentUuid": "3_PNbuFPTSivxnQ7_oz-rw",
        "originalUuid": "3_PNbuFPTSivxnQ7_oz-rw",
        "locatorId": "",
        "authorCompanyUuid": "63d50f8e-fd04-48da-8915-5899e31e7ab0",
        "registryVersion": "1.0.0",
        "checksum": "08c91ea6fb96e2d431c2e6044302cd98",
        "namespace": "",
        "registryId": ""
    },
    "collectionIntervalSec": 43200,
    "name": "collector_to_entrypoint_toposource",
    "id": 5441,
    "group": ""
}
