Name
sn_itom_pde.ParsePatternsToGetCommands
Description
This script populates the Allow-List for all infrastructure and application patterns
Script
var ParsePatternsToGetCommands = Class.create();
ParsePatternsToGetCommands.prototype = {
initialize: function() {
},
fetchAll: function() {
var ga = new GlideRecord('sa_pattern');
var cmds = [];
ga.addQuery('cpattern_type', 1).addOrCondition('cpattern_type', 3);
ga.query();
while (ga.next()) {
this.getCommandsFromSharedLibrariesInsidePattern(ga.sys_id+'');
this.getCommandsFromExtensions(ga.sys_id+'');
}
},
getCommandsFromSharedLibrariesInsidePattern: function(sys_id){
var ga = new GlideRecord('pd_pattern_to_shared_library_mapping');
var parse = new PANParsePatternForCommands();
var lib = [];
var parentOS = '';
lib.push(sys_id);
while(lib.length > 0){
var parentId = lib.pop();
if(parentOS == '')
parentOS = parse.getOSClass(parentId);
else
parse.setOSClass(parentOS);
parse.parsePattern(parentId);
ga.addQuery('parent',parentId);
ga.query();
while(ga.next()){
lib.push(ga.pattern+'');
}
}
},
getCommandsFromExtensions: function(sys_id){
var gx = new GlideRecord('pd_pattern_to_shared_library_mapping');
var gy = new GlideRecord('sa_pattern_extension');
var parse = new PANParsePatternForCommands();
var ext = [];
var parentOS = '';
gy.addQuery('pattern', sys_id);
gy.query();
while(gy.next()){
ext.push(gy.extension+'');
while(ext.length>0){
var library = ext.pop();
if(parentOS == '')
parentOS = parse.getOSClass(sys_id);
else
parse.setOSClass(parentOS);
parse.parsePattern(library);
gx.addQuery('parent',library);
gx.query();
while(gx.next()){
ext.push(gx.pattern+'');
}
}
}
},
type: 'ParsePatternsToGetCommands'
};
Sys ID
9df93634479691507cb2e977746d43f6