Name
sn_agent.AgentVersionFieldStyle
Description
No description available
Script
var AgentVersionFieldStyle = Class.create();
AgentVersionFieldStyle.prototype = {
initialize: function(record) {
this.agentVersion = gs.getProperty('sn_agent.agent_version');
this.record = record;
},
isValid: function() {
if (this.record.getTableName() == "sn_agent_ci_extended_info")
return this.record.getValue("agent_version") == this.agentVersion;
if (this.record.getTableName() == "sn_agent_cmdb_ci_agent" && this.record.isValidField("agent_extended_info"))
return this.record.agent_extended_info.agent_version == this.agentVersion;
return false;
},
type: 'AgentVersionFieldStyle'
};
AgentVersionFieldStyle.getAccfVersion = function() {
var devMode = gs.getProperty('sn_agent.dev_mode', 'false');
var accfVersion = "";
if (devMode.toUpperCase() == "TRUE")
accfVersion = gs.getProperty('sn_agent.agent_snapshot_version');
else
accfVersion = gs.getProperty('sn_agent.agent_version');
return accfVersion;
};
AgentVersionFieldStyle.getAgentVersion = function(accfVer,shouldReplaceSubVersion, replaceWith) {
// If need to replace: replace last digit with replaceWith
if (shouldReplaceSubVersion) {
var arrVer = accfVer.split(/\./);
if (arrVer[2])
arrVer[2] = replaceWith;
accfVer = arrVer.join('.')
}
return accfVer;
};
/*
This method makes sure to return the correct agent version per ACC-F version.
ACC-F store app version 2.6.2 will return agent version 2.6.0
and 2.8.1 to return 2.8.2
*/
AgentVersionFieldStyle.getAgentVersionFinal = function() {
// ACC-F Store app and agent installation versions should match
// This map maps the excpetions between the ACC-F release version and the agent installation version.
var accStoreAppToAgentVersion = {
"2.10.2": "2.10.1"
};
var accfVer = AgentVersionFieldStyle.getAccfVersion();
if (accStoreAppToAgentVersion[accfVer])
return accStoreAppToAgentVersion[accfVer];
// assume same version
return accfVer;
};
/*
Just like compareTo in Java.
version1 == version2 : The method returns 0.
version1 > version2 : The method returns a positive value.
version1 < version2 : The method returns a negative value.
*/
AgentVersionFieldStyle.agentVersionCompareTo = function(version1, version2, skipSubVersion) {
var version1Arr = version1.split('.');
var version2Arr = version2.split('.');
if (version1Arr.length !=3 && version1Arr.length != version2Arr.length)
return -1; // agentVersion is bigger than ACC-F Version
version1Arr[0] = Number(version1Arr[0]);
version2Arr[0] = Number(version2Arr[0]);
if (!isNaN(version1Arr[0]) && isNaN(version2Arr[0]))
return 1;
if (isNaN(version1Arr[0]) && !isNaN(version2Arr[0]))
return -1;
// Comparing major first
if (version1Arr[0] > version2Arr[0])
return 1;
if (version1Arr[0] < version2Arr[0])
return -1;
version1Arr[1] = Number(version1Arr[1]);
version2Arr[1] = Number(version2Arr[1]);
if (!isNaN(version1Arr[1]) && isNaN(version2Arr[1]))
return 1;
if (isNaN(version1Arr[1]) && !isNaN(version2Arr[1]))
return -1;
// Comparing minor
if (version1Arr[1] > version2Arr[1])
return 1;
if (version1Arr[1] < version2Arr[1])
return -1;
if (skipSubVersion)
return 0;
// Checking the last digit
version1Arr[2] = Number(version1Arr[2]);
version2Arr[2] = Number(version2Arr[2]);
if (!isNaN(version1Arr[2]) && isNaN(version2Arr[2]))
return 1;
if (isNaN(version1Arr[2]) && !isNaN(version2Arr[2]))
return -1;
// Comparing sub version
if (version1Arr[2] > version2Arr[2])
return 1;
if (version1Arr[2] < version2Arr[2])
return -1;
return 0;
};
/*
Just like compareTo in Java.
Assuming ACC-F Version is s1 and the input agentVersion is s2
s1 == s2 : The method returns 0.
s1 > s2 : The method returns a positive value.
s1 < s2 : The method returns a negative value.
*/
AgentVersionFieldStyle.agentVersionCompareToAccVersion = function(agentVersion, skipSubVersion) {
return AgentVersionFieldStyle.agentVersionCompareTo(AgentVersionFieldStyle.getAccfVersion(), agentVersion, skipSubVersion);
};
AgentVersionFieldStyle.isAgentVersionLowerThanAccfVersion = function(agentVersion, skipSubVersion) {
if (AgentVersionFieldStyle.agentVersionCompareToAccVersion(agentVersion, skipSubVersion) > 0)
return true;
return false;
};
AgentVersionFieldStyle.isLatestAgentVersion = function(agentVersion, skipSubVersion) {
if (AgentVersionFieldStyle.agentVersionCompareTo(agentVersion, AgentVersionFieldStyle.getAgentVersionFinal(), skipSubVersion) > -1)
return true;
return false;
};
Sys ID
0c3cdeaf537a0010c113ddeeff7b124a