Name
sn_data_discovery.DiscoveryJobUtil
Description
This api can be used to validate for data discovey jobs.
Script
var DiscoveryJobUtil = Class.create();
DiscoveryJobUtil.prototype = {
/*
* Method validates if a jub with the same name already exsts
* @param jobName
*/
jobIsPresent: function(jobName) {
var jobRecord = new GlideRecord("sn_data_discovery_job_history");
jobRecord.addQuery("name", jobName);
jobRecord.query();
return jobRecord.next();
},
/*
* Method validates if job is active
* @param jobName
*/
jobInActiveState: function(jobName) {
var jobRecord = new GlideRecord("sn_data_discovery_job_history");
jobRecord.addQuery("state", "IN", "working,quiescent,pausing,paused,cancelling");
jobRecord.addQuery("name", jobName);
jobRecord.query();
return jobRecord.next();
},
/*
* Populate dp_primary_reference entries for a privacyConfig and dataClass
* @sysparm privacyConfigId dp_configuration sys_id
* @sysparm dataClassid data_classification sys_id
*/
activeJobIsPresent: function() {
var jobRecord = new GlideRecord("sn_data_discovery_job_history");
jobRecord.addQuery("state", "IN", "working,quiescent,pausing,paused,cancelling");
jobRecord.query();
return jobRecord.next();
},
isActivePatternPresent: function() {
var jobRecord = new GlideRecord("sn_data_discovery_active_data_pattern");
jobRecord.query();
return jobRecord.next();
},
isTargetTablePresent: function() {
var jobRecord = new GlideRecord("sn_data_discovery_target_table");
jobRecord.query();
return jobRecord.next();
},
isJobCancelled: function(jobName) {
var jobRecord = new GlideRecord("sn_data_discovery_job_history");
jobRecord.addQuery("state", "IN", "cancelled,cancelling");
jobRecord.addQuery("name", jobName);
jobRecord.query();
return jobRecord.next();
},
isAnyJobActive: function() {
var jobRecord = new GlideRecord("sn_data_discovery_job_history");
jobRecord.addQuery("state", "IN", "working,quiescent,pausing,paused");
jobRecord.query();
return jobRecord.next();
},
validateJob: function(jobName) {
if (isActivePatternPresent() && isTargetTablePresent() && !isJobCancelled(jobName) && !isAnyJobActive()) {
return true;
} else {
gs.info("Unable to schedule the job");
}
},
/*
* Verifies if dataPattern is active.
*/
isPatternActive: function(dataPattern) {
var jobRecord = new GlideRecord("sn_data_discovery_active_data_pattern");
jobRecord.addQuery("data_pattern", dataPattern);
jobRecord.query();
var next = jobRecord.next();
return next;
},
/**
* Verifies if dataPattern was used at least once.
*/
isPatternUsed: function(dataPattern) {
var jobRecord = new GlideRecord("sn_data_discovery_finding");
jobRecord.addQuery("data_pattern", dataPattern);
jobRecord.query();
return jobRecord.next();
},
type: 'DiscoveryJobUtil'
};
Sys ID
4a7ad9fe539ce110ca4eddeeff7b1232