Name
global.CloneProfileUtil
Description
Defines utility methods for clone profile configuration.
Script
var CloneProfileUtil = Class.create();
CloneProfileUtil.prototype = {
initialize: function() {
},
type: 'CloneProfileUtil'
};
/**
* Duplicates the clone profile. Duplicates the relationships with clone profiles too.
* @param sourceProfile
* @param targetProfile
*/
CloneProfileUtil.duplicateProfile = function(sourceProfile, targetProfile) {
if(gs.nil(sourceProfile) || gs.nil(targetProfile))
return;
// Copying Exclusion List
var profileExclusionGr = new GlideRecord('clone_profile_exclusions');
profileExclusionGr.addQuery('profile', sourceProfile);
profileExclusionGr.query();
while(profileExclusionGr.next()) {
profileExclusionGr.setValue('profile', targetProfile);
profileExclusionGr.insert();
}
// Copying Preserver List
var profilePreserverGr = new GlideRecord('clone_profile_preservers');
profilePreserverGr.addQuery('profile', sourceProfile);
profilePreserverGr.query();
while(profilePreserverGr.next()) {
profilePreserverGr.setValue('profile', targetProfile);
profilePreserverGr.insert();
}
// Copying Cleanup Scripts List
var profileCleanupScriptGr = new GlideRecord('clone_profile_cleanup_scripts');
profileCleanupScriptGr.addQuery('profile', sourceProfile);
profileCleanupScriptGr.query();
while(profileCleanupScriptGr.next()) {
profileCleanupScriptGr.setValue('profile', targetProfile);
profileCleanupScriptGr.insert();
}
};
/**
* Gets the default clone profile.
* @return cloneProfileGr GlideRecord
*/
CloneProfileUtil.getDefaultProfile = function() {
var cloneProfileGr = new GlideRecord('clone_profile');
cloneProfileGr.addQuery('default_profile', true);
cloneProfileGr.query();
if(cloneProfileGr.next())
return cloneProfileGr;
return '';
};
/**
* Builds the default profile configuration.
* @param profileSysId String
*/
CloneProfileUtil.buildDefaultProfileConfig = function(profileSysId) {
if(gs.nil(profileSysId))
return;
CloneProfileUtil.buildDefaultPreserverList(profileSysId);
CloneProfileUtil.buildDefaultExclusionList(profileSysId);
CloneProfileUtil.buildDefaultCleanupScriptList(profileSysId);
};
/**
* Builds the default profile preservers list.
* @param profileSysId String
*/
CloneProfileUtil.buildDefaultPreserverList = function(profileSysId) {
if(gs.nil(profileSysId))
return;
var clonePreserverGr = new GlideRecord(CloneConstants.tableName.CLONE_DATA_PRESERVER);
clonePreserverGr.addQuery('include_in_system_clone', true);
clonePreserverGr.addQuery('default', false);
clonePreserverGr.query();
while(clonePreserverGr.next())
CloneProfileUtil.createProfilePreserver(profileSysId, clonePreserverGr.getValue('sys_id'));
};
/**
* Builds the default profile exclusions list.
* @param profileSysId String
*/
CloneProfileUtil.buildDefaultExclusionList = function(profileSysId) {
if(gs.nil(profileSysId))
return;
var cloneExclusionGr = new GlideRecord(CloneConstants.tableName.CLONE_DATA_EXCLUSION);
cloneExclusionGr.addQuery('include_in_system_clone', true);
cloneExclusionGr.addQuery('default', false);
cloneExclusionGr.query();
while(cloneExclusionGr.next())
CloneProfileUtil.createProfileExclusion(profileSysId, cloneExclusionGr.getValue('sys_id'));
};
/**
* Builds the default profile cleanup scripts list.
* @param profileSysId String
*/
CloneProfileUtil.buildDefaultCleanupScriptList = function(profileSysId) {
if(gs.nil(profileSysId))
return;
var cleanupScriptGr = new GlideRecord(CloneConstants.tableName.CLONE_CLEANUP_SCRIPT);
cleanupScriptGr.addQuery('include_in_system_clone', true);
cleanupScriptGr.addQuery('default', false);
cleanupScriptGr.query();
while(cleanupScriptGr.next())
CloneProfileUtil.createProfileCleanupScript(profileSysId, cleanupScriptGr);
};
/**
* Creates the profile and preserver relationship.
* @param profile String
* @param preserver String
*/
CloneProfileUtil.createProfilePreserver = function(profile, preserver) {
var profilePreserverGr = new GlideRecord(CloneConstants.tableName.CLONE_PROFILE_PRESERVER);
profilePreserverGr.initialize();
profilePreserverGr.setValue('profile', profile);
profilePreserverGr.setValue('preserver', preserver);
profilePreserverGr.insert();
};
/**
* Creates the profile and exclusion relationship.
* @param profile String
* @param exclusion String
*/
CloneProfileUtil.createProfileExclusion = function(profile, exclusion) {
var profileExclusionGr = new GlideRecord(CloneConstants.tableName.CLONE_PROFILE_EXCLUSION);
profileExclusionGr.initialize();
profileExclusionGr.setValue('profile', profile);
profileExclusionGr.setValue('exclusion', exclusion);
profileExclusionGr.insert();
};
/**
* Creates the profile and cleanup scripts relationship.
* @param profile String
* @param cleanupscriptGr GlideRecord
*/
CloneProfileUtil.createProfileCleanupScript = function(profile, cleanupScriptGr) {
var profileCleanupScriptGr = new GlideRecord(CloneConstants.tableName.CLONE_PROFILE_CLEANUP_SCRIPT);
profileCleanupScriptGr.initialize();
profileCleanupScriptGr.setValue('profile', profile);
profileCleanupScriptGr.setValue('cleanup_script', cleanupScriptGr.getValue('sys_id'));
profileCleanupScriptGr.setValue('order', cleanupScriptGr.getValue('order'));
profileCleanupScriptGr.setValue('active', cleanupScriptGr.getValue('active'));
profileCleanupScriptGr.insert();
};
Sys ID
00c74fc13b1333001b420896c3efc4f2