Calling a script include from a module, how to pass parameters?
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-12-2024 03:28 AM
Dear Community,
To return the hosts running a DB instance, I'm calling a script include from a module.
It calls this SI
var FilterDBRunningHosts = Class.create();
FilterDBRunningHosts.prototype = {
filterHosts: function() {
// Query all db instances
var instance = new GlideRecord("cmdb_ci_db_instance");
//var instance = new GlideRecord("cmdb_ci_db_postgresql_instance");
instance.query();
var runsOnSysIds = [];
// loop through instances
while (instance.next()) {
// find parents
var relationshipGr = new GlideRecord('cmdb_rel_ci');
relationshipGr.addQuery('parent',instance.sys_id);
relationshipGr.addQuery('type','60bc4e22c0a8010e01f074cbe6bd73c3');
relationshipGr.query();
var childCiSysIds = [];
// push sys.ids
while (relationshipGr.next()) {
childCiSysIds.push(relationshipGr.child.sys_id.toString());
}
var ciGr = new GlideRecord('cmdb_ci');
ciGr.addQuery('sys_id', 'IN', childCiSysIds);
ciGr.query();
//gs.log('CI count: ' + ciGr.getRowCount());
// push sys.ids
while (ciGr.next()) {
runsOnSysIds.push(ciGr.sys_id.toString());
}
}
//gs.log(runsOnSysIds);
return runsOnSysIds;
}
};
And returns me all sys_id of the servers 🙂
Now I'm trying to enhance this Si to use .any CMDB subclass of cmdb_ci_db_instance passed as parameter.
But seems the parameters is not/badly transmitted
filterHostsAny2: function(db_class) {
//var instance = new GlideRecord("cmdb_ci_db_instance");
var instance = new GlideRecord(db_class);
instance.query();
// init empty array
var runsOnSysIds = [];
// loop through instances
while (instance.next()) {
// find parents
var relationshipGr = new GlideRecord('cmdb_rel_ci');
relationshipGr.addQuery('parent', instance.sys_id);
relationshipGr.addQuery('type', '60bc4e22c0a8010e01f074cbe6bd73c3');
relationshipGr.query();
var childCiSysIds = [];
while (relationshipGr.next()) {
childCiSysIds.push(relationshipGr.child.sys_id.toString());
}
var ciGr = new GlideRecord('cmdb_ci');
ciGr.addQuery('sys_id', 'IN', childCiSysIds);
ciGr.query();
while (ciGr.next()) {
runsOnSysIds.push(ciGr.sys_id.toString());
}
}
//return runsOnSysIds;
return db_class;
}
(db_class returns "undefined")
Does this call works too?
How to pass a parameter efficiently to the script include?
Ma ny thanks in advance foryour advises!
Cedric
0 REPLIES 0