'use strict';
|
|
|
|
function JobAgentGenerator(id) {
|
|
// execute super constructor
|
|
eve.Agent.call(this, id);
|
|
this.rpc = this.loadModule('rpc', this.rpcFunctions);
|
|
this.connect(eve.system.transports.getAll());
|
|
}
|
|
|
|
// extend the eve.Agent prototype
|
|
JobAgentGenerator.prototype = Object.create(eve.Agent.prototype);
|
|
JobAgentGenerator.prototype.constructor = AgentGenerator;
|
|
|
|
// define RPC functions, preferably in a separated object to clearly distinct
|
|
// exposed functions from local functions.
|
|
JobAgentGenerator.prototype.rpcFunctions = {};
|
|
|
|
|
|
JobAgentGenerator.prototype.rpcFunctions.createJob = function(params) {
|
|
var jobAgentName = params.type;
|
|
if (jobList[jobAgentName] === undefined) {
|
|
jobList[jobAgentName] = new JobAgent(jobAgentName);
|
|
|
|
graph2dGroups.add([
|
|
{
|
|
id: jobAgentName+'_pred_duration_std_lower',
|
|
content: "prediction",
|
|
className: 'prediction_std',
|
|
options: {drawPoints:false}
|
|
},
|
|
{
|
|
id: jobAgentName+'_pred_durationWithPause_std_lower',
|
|
content: "predWithPause",
|
|
className: 'prediction_std',
|
|
options: {drawPoints:false}
|
|
},
|
|
{
|
|
id: jobAgentName+'_pred_durationWithStartup_std_lower',
|
|
content: "predWithStartup",
|
|
className: 'prediction_std',
|
|
options: {drawPoints:false}
|
|
},
|
|
{
|
|
id: jobAgentName+'_pred_durationWithBoth_std_lower',
|
|
content: "predWithBoth",
|
|
className: 'prediction_std',
|
|
options: {drawPoints:false}
|
|
},
|
|
{
|
|
id: jobAgentName+'_pred_duration_std_higher',
|
|
content: "prediction",
|
|
className: 'prediction_std',
|
|
options: {drawPoints:false}
|
|
},
|
|
{
|
|
id: jobAgentName+'_pred_durationWithPause_std_higher',
|
|
content: "predWithPause",
|
|
className: 'prediction_std',
|
|
options: {drawPoints:false}
|
|
},
|
|
{
|
|
id: jobAgentName+'_pred_durationWithStartup_std_higher',
|
|
content: "predWithStartup",
|
|
className: 'prediction_std',
|
|
options: {drawPoints:false}
|
|
},
|
|
{
|
|
id: jobAgentName+'_pred_durationWithBoth_std_higher',
|
|
content: "predWithBoth",
|
|
className: 'prediction_std',
|
|
options: {drawPoints:false}
|
|
},{
|
|
id: jobAgentName+'_pred_duration_original',
|
|
content: "prediction",
|
|
className: 'prediction_original'
|
|
},
|
|
{
|
|
id: jobAgentName+'_pred_durationWithPause_original',
|
|
content: "predWithPause",
|
|
className: 'prediction_original'
|
|
},
|
|
{
|
|
id: jobAgentName+'_pred_durationWithStartup_original',
|
|
content: "predWithStartup",
|
|
className: 'prediction_original'
|
|
},
|
|
{
|
|
id: jobAgentName+'_pred_durationWithBoth_original',
|
|
content: "predWithBoth",
|
|
className: 'prediction_original'
|
|
},
|
|
{
|
|
id: jobAgentName+'_pred_duration',
|
|
content: "prediction",
|
|
className: 'prediction'
|
|
},
|
|
{
|
|
id: jobAgentName+'_pred_durationWithPause',
|
|
content: "predWithPause",
|
|
className: 'prediction'
|
|
},
|
|
{
|
|
id: jobAgentName+'_pred_durationWithStartup',
|
|
content: "predWithStartup",
|
|
className: 'prediction'
|
|
},
|
|
{
|
|
id: jobAgentName+'_pred_durationWithBoth',
|
|
content: "predWithBoth",
|
|
className: 'prediction'
|
|
},
|
|
{
|
|
id: jobAgentName+'_duration',
|
|
content: "duration",
|
|
className: 'duration'
|
|
},
|
|
{
|
|
id: jobAgentName+'_durationWithPause',
|
|
content: "durationWithPause",
|
|
className: 'duration'
|
|
},
|
|
{
|
|
id: jobAgentName+'_durationWithStartup',
|
|
content: "durationWithStartup",
|
|
className: 'duration'
|
|
},
|
|
{
|
|
id: jobAgentName+'_durationWithBoth',
|
|
content: "durationWithBoth",
|
|
className: 'duration'
|
|
}
|
|
]);
|
|
var visibilityUpdate = {};
|
|
//visibilityUpdate[jobAgentName+'_pred'] = false;
|
|
//visibilityUpdate[jobAgentName+'_predWithPause'] = false;
|
|
//visibilityUpdate[jobAgentName+'_predWithStartup'] = false;
|
|
//visibilityUpdate[jobAgentName+'_predWithBoth'] = false;
|
|
//visibilityUpdate[jobAgentName+'_duration'] = false;
|
|
//visibilityUpdate[jobAgentName+'_durationWithPause'] = false;
|
|
//visibilityUpdate[jobAgentName+'_durationWithStartup'] = false;
|
|
//visibilityUpdate[jobAgentName+'_durationWithBoth'] = false;
|
|
graph2d.setOptions({groups:{visible:visibilityUpdate}});
|
|
refreshJobs();
|
|
}
|
|
};
|
|
|
|
JobAgentGenerator.prototype.rpcFunctions.returnJobAddress = function(params) {
|
|
var instanceId = params.instanceId;
|
|
var hasJob = false;
|
|
for (var jobAgentName in jobList) {
|
|
if (jobList.hasOwnProperty(jobAgentName)) {
|
|
hasJob = jobList[jobAgentName].hasJob(instanceId);
|
|
if (hasJob == true) {
|
|
return jobAgentName;
|
|
}
|
|
}
|
|
}
|
|
return "doesNotExist";
|
|
};
|
|
|
|
JobAgentGenerator.prototype.getAllJobNames = function() {
|
|
var list = [];
|
|
for (var jobAgentName in jobList) {
|
|
if (jobList.hasOwnProperty(jobAgentName)) {
|
|
list.push(jobAgentName);
|
|
}
|
|
}
|
|
return list;
|
|
};
|