Name
global.MLRequestSchedule
Description
No description available
Script
var MLRequestSchedule = Class.create();
MLRequestSchedule.prototype = {
initialize: function() {
this.solutionDefReference = "ml_capability_definition";
},
deleteExistingCapabilityTrainingRequestSchedule: function(sysId) {
this.deleteExistingTrainingRequestSchedule(sysId, {
'solutionDefField': this.solutionDefReference
});
},
deleteExistingTrainingRequestSchedule: function(sysId, options) {
var solutionDefField = (options && options['solutionDefField']) || "solution_definition";
var solution = new GlideRecord("ml_training_request_schedule");
solution.addQuery(solutionDefField, sysId);
solution.deleteMultiple();
},
deleteExistingUpdateRequestSchedule: function(sysId) {
var solDef = new MLGroupbyUtils().getGlideRecord(sysId);
var solution = new GlideRecord("sysauto_script");
solution.addQuery("name", sysId).addOrCondition("name", solDef.solution_name);
solution.deleteMultiple();
},
insertCapabilityTrainingRequestSchedule: function(sysId, label, trainingFrequency) {
this.insertTrainingRequestSchedule(sysId, label, trainingFrequency, {
'solutionDefField': this.solutionDefReference
});
},
insertTrainingRequestSchedule: function(sysId, label, trainingFrequency, options) {
var solutionDefField = (options && options['solutionDefField']) || "solution_definition";
var skipFirstRun = (options && JSUtil.toBoolean(options['skipFirstRun'])) || false;
var solution = new GlideRecord("ml_training_request_schedule");
solution.initialize();
solution.setValue("name", label);
solution.setValue(solutionDefField, sysId);
if (trainingFrequency === "run_once") {
solution.setValue("run_type", "once");
} else {
var days = trainingFrequency.split('_')[1];
var runPeriod = days + " 00:00:00";
solution.setValue("run_type", "periodically");
solution.setValue("run_period", runPeriod);
if (skipFirstRun) {
var nextRunTime = new GlideDateTime();
nextRunTime.addDaysLocalTime(days);
solution.setValue("run_start", nextRunTime);
}
}
solution.insert();
},
insertRunonceUpdateRequestSchedule: function(sysId, name) {
var solution = new GlideRecord("sysauto_script");
solution.initialize();
solution.setValue("name", name);
solution.setValue("script", "new global.MLUpdater().update(\"" + name + "\");");
solution.setValue("run_type", "once");
solution.insert();
},
insertUpdateRequestSchedule: function(sysId, name, updateFrequency) {
var solution = new GlideRecord("sysauto_script");
solution.initialize();
solution.setValue("name", name);
solution.setValue("script", "new global.MLUpdater().update(\"" + name + "\");");
solution.setValue("run_type", "periodically");
solution.setValue("run_as", "88aad6c5c73003005f1b78d48b9763a5");
var intervaltype = updateFrequency.split('_')[2];
if (intervaltype === "update") {
this.deleteExistingUpdateRequestSchedule(sysId);
} else {
if (intervaltype === "minute" || intervaltype === "minutes") {
var minutes = "00:" + updateFrequency.split('_')[1] + ":00";
solution.setValue("run_period", minutes);
} else if (intervaltype === "hour" || intervaltype === "hours") {
var hours = updateFrequency.split('_')[1] + ":00:00";
solution.setValue("run_period", hours);
} else if (intervaltype === "day" || intervaltype === "days") {
var days = updateFrequency.split('_')[1] + " 00:00:00";
solution.setValue("run_period", days);
}
solution.insert();
}
},
isCapabilitySolutionCurrentlyTraining: function(solutionDefinitionId) {
return this.isSolutionCurrentlyTraining(solutionDefinitionId, {
'solutionDefField': this.solutionDefReference
});
},
isSolutionCurrentlyTraining: function(solutionDefintionId, options) {
if (JSUtil.nil(solutionDefintionId)) {
return false;
}
var solutionDefField = (options && options['solutionDefField']) || "solution_definition";
var gr = new GlideRecord('ml_solution');
gr.addQuery(solutionDefField, solutionDefintionId);
gr.orderByDesc('sys_created_on');
gr.query();
if (gr.next() &&
(gr.state == 'waiting_for_training' ||
gr.state == 'training_request_received' ||
gr.state == 'fetching_files_for_training' ||
gr.state == 'training_solution' ||
gr.state == 'preparing_data' ||
gr.state == 'uploading_solution') &&
gs.getProperty('glide.platform_ml.override_training_lock') == 'false') {
in_training = true;
} else
in_training = false;
return in_training;
},
type: 'MLRequestSchedule'
};
Sys ID
63f97a9d3b223200956c47b334efc455