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

Offical Documentation

Official Docs: