IBM SVC Discovery with custom probe and sensor and IRE rules

devpc
Tera Contributor

Hi everyone, I need to discover some IBM SVC and I've created a new probe, since the OOTB CIM probes won't work,  with these parameters:
Class = Probe, ECC queue topic = sshcommand, ECC queue name = lsmdiskgrp -nohdr -delim , (from IBM doc) and allow_unsupported_shells is setted as true in probe parameters.

In order to discover these storage I've created a new Behaviour with a new Port Probe which use SSH Scanner and UNIX classification, this port Probe trigger the lsmdiskgrp Probe.

I've also created a new sensor with this script:

new DiscoverySensor({
    process: function(result) {
        var output = result.output.trim();
        output = output.replace(/\(Shell is not in supported shell list\)/g, "").trim();
	output = output.replace(/,{3,}/g, ',').trim();
        var rows = output.split("\n");

        gs.log("Parsing output: " + output);

        for (var i = 0; i < rows.length; i++) {
            var row = rows[i].trim();
            var values = row.split(",");

            gs.log("Parsing row " + i + ' row = ' + row + ", Name=" + values[1] + ", Size=" + values[5] + ", Free=" + values[7]);

            var gr = new GlideRecord('cmdb_ci_storage_pool');
            gr.addQuery("name", values[1]);
            gr.query();

            if (gr.next()) {
                gr.setValue("pool_id", values[1]);
                gr.setValue("size", values[5]);
                gr.setValue("free_space", values[7]);
                gr.update();
            } else {
                gr.initialize();
                gr.setValue("name", values[1]);
                gr.setValue("pool_id", values[1]);
                gr.setValue("size", values[5]);
                gr.setValue("free_space", values[7]);
                gr.insert();
            }
        }
    },

    type: "DiscoverySensor"
});

where the result.output in the payload is

 

<?xml version="1.0" encoding="UTF-8"?><results probe_time="1145" result_code="0"><result><output>0,FS9500_MOA1_FCM4,online,16,746,300.00TB,1024,81.24TB,263.18TB,214.37TB,218.31TB,87,80,auto,balanced,no,0.00MB,0.00MB,0.00MB,0,FS9500_MOA1_FCM4,0,0.00MB,parent,yes,none,,,1,MOB,no,0.00MB,0.00MB,0.00MB,0.00MB,0.00MB,,,
 (Shell is not in supported shell list)</output></result><parameters><parameter name="agent" value="mid.server.xxxxxxxx"/><parameter name="used_by_runbook" value="true"/><parameter name="glide.xmlhelper.trim.enable" value="true"/><parameter name="signature" value=""/><parameter name="source" value="10.xx.yy.zz"/><parameter name="skip_sensor" value="true"/><parameter name="command_to_run" value="lsmdiskgrp -nohdr -delim ,"/><parameter name="sys_id" value="53ef552a8790e290b5f433770cbb3545"/><parameter name="from_host" value=""/><parameter name="sys_created_on" value="2025-03-18 08:29:37"/><parameter name="sys_domain" value="global"/><parameter name="used_by_discovery" value="true"/><parameter name="state" value="ready"/><parameter name="probe_name" value="Pool storage"/><parameter name="response_to" value=""/><parameter name="from_sys_id" value=""/><parameter name="priority" value="0"/><parameter name="agent_correlator" value=""/><parameter name="use_snc_ssh" value="true"/><parameter name="probe" value="404345f24780e694f6b9fedbd36d4361"/><parameter name="processed" value=""/><parameter name="error_string" value=""/><parameter name="sequence" value="195a85f5de80000001"/><parameter name="name" value="lsmdiskgrp -nohdr -delim ,"/><parameter name="topic" value="SSHCommand"/><parameter name="allow_unsupported_shells" value="true"/><parameter name="queue" value="output"/><parameter name="ecc_queue" value="53ef552a8790e290b5f433770cbb3545"/><parameter name="credential_id" value="17cd04b087675610b5f433770cbb3528"/></parameters></results>

Name and Pool ID field are correctly populated, but size and free space are someway protected and I can't write on them. 

devpc_0-1742286869514.png

I think only Discovery can populate those 2 fields, so how can I use IRE rules with custom probe and sensor? I've tried to integrate some OOTB Sensor Script but it doesn't seem to work. The IRE will be also helpful in order to create relationship between different components


 

devpc_3-1742287314018.png
devpc_4-1742287335266.png

devpc_5-1742287359417.png

 

 

 

 

2 REPLIES 2

Doci1
Kilo Sage

Hi @devpc , what an interesting use case! I think for now I cannot help you with the IRE, but I am curious what kind of SVC or IBM SAN you would like to discvover? We have some discovered... 

devpc
Tera Contributor

Hi, unfortunately I don't know which model are they. i've tried following some other post in the community like Solved: IBM SVC Discovery - ServiceNow Community or Discovery Experience with IBM Storage - Page 7 - ServiceNow Community but they won't bring me far. I've tried using SLP & CIM probe but with no luck. I'm trying to use the IdentificationEngineScriptableApi - Global but no luck either 😥