Name
global.FlowConnectorHelper
Description
Netflow connector helper functions
Script
var FlowConnectorHelper = Class.create();
FlowConnectorHelper.prototype = {
PROBE_NAME:"Flow Connector Probe",
initialize: function() {
},
// go over all the connectors that need to run now and execute them
schedule: function() {
var cgr = new GlideRecord('sa_flow_connector');
cgr.addActiveQuery();
var qc = cgr.addNullQuery('next_run_time');
qc.addOrCondition('next_run_time', '<', new GlideDateTime());
cgr.query();
gs.print('flow connectors that need to run: ' + cgr.getRowCount());
while (cgr.next()) {
this.next(cgr);
// Get the full record
this.writeToECC(cgr.sys_id, cgr.sys_class_name);
}
},
next: function(cgr) {
// increase the next connector run time
var gdt = new GlideDateTime();
gdt.addSeconds(cgr.schedule);
cgr.next_run_time = gdt;
cgr.update();
},
// send ecc queue message for FlowProbe to execute the connector
writeToECC: function(sysId, className) {
var cgr = new GlideRecord(className);
if (!cgr.get(sysId)) {
gs.error("Did not find connector");
return false;
}
var agent = cgr.mid.name;
var probe = SncProbe.get(this.PROBE_NAME);
probe.setSource('Schedule');
probe.setName(cgr.name);
probe.addParameter('script', cgr.javascript_to_run.name);
var fields = cgr.getFields();
for (var i = 0; i < fields.size(); ++i) {
var fieldName = fields.get(i).getName();
var value = cgr.getValue(fieldName);
probe.addParameter(fieldName, value);
}
var eccId = probe.create(agent);
gs.print('sent probe for ' + className + ':' + sysId + ' ecc queue message: ' + eccId);
return eccId;
},
/*
findAgent: function() {
var gr = new GlideRecord('ecc_agent');
gr.addQuery('status', 'Up');
gr.addQuery('validated', true);
gr.query();
if (gr.next())
return gr.name;
return '';
},
*/
type: 'FlowConnectorHelper'
};
Sys ID
440bf678c303120039a3553a81d3ae54