Index: Perf.DataCollection/src/com/dhyan/nms/server/performance/datacollection/PerformanceTaskCreator.java =================================================================== --- Perf.DataCollection/src/com/dhyan/nms/server/performance/datacollection/PerformanceTaskCreator.java (revision 6018) +++ Perf.DataCollection/src/com/dhyan/nms/server/performance/datacollection/PerformanceTaskCreator.java (working copy) @@ -105,8 +105,22 @@ try { long scheduleInterval = perfTask.getScheduleinterval(); - pattern.setStarttime(System.currentTimeMillis()); + pattern.setStarttime(System.currentTimeMillis()+getTaskDelayTime()); pattern.setMinute((int) scheduleInterval / 60000); + } + catch (Exception e) + { + log.error(e); + } + return pattern; + } + + /** + * Method to get delay time of a Performance task + * @return delay time + */ + public long getTaskDelayTime() + { if (perfProperties != null) { String delayValueString = perfProperties.getProperty(DELAY_TIME_KEY); @@ -114,7 +128,7 @@ { try { - pattern.setStarttime(pattern.getStarttime() + Long.parseLong(delayValueString)); + return Long.parseLong(delayValueString); } catch (NumberFormatException ne) { @@ -122,13 +136,8 @@ } } } + return 0; } - catch (Exception e) - { - log.error(e); - } - return pattern; - } /** * Reads and returns all the Tasks for a given resourceTypeId Index: Perf.DataCollection/src/com/dhyan/nms/server/performance/datacollection/ejb/DataCollectionFacade.java =================================================================== --- Perf.DataCollection/src/com/dhyan/nms/server/performance/datacollection/ejb/DataCollectionFacade.java (revision 6018) +++ Perf.DataCollection/src/com/dhyan/nms/server/performance/datacollection/ejb/DataCollectionFacade.java (working copy) @@ -525,7 +525,7 @@ + " REPORTVIEW " + "where DCS.perftaskid = DCG.perftaskid and DCG.datacollectiongroupid = PODCGM.datacollectiongroupid and " + "PODCGM.performanceobjectid = PO.performanceobjectid and " + "DCG.datacollectiongroupid != 3 and DCS.resourceid = ? and PO.performanceobjectid = ?" - + " and REPORTVIEW.performanceobjectid = PO.performanceobjectid and REPORTVIEW.reportcategoryid " + reportCategoryId; + + " and REPORTVIEW.performanceobjectid = PO.performanceobjectid and REPORTVIEW.reportcategoryid = " + reportCategoryId; try { ArrayList derived_list = (ArrayList) this.getAllDerivedObjects(); Index: Perf.DataCollection/src/com/dhyan/nms/server/performance/datacollection/HistoricalProcessImpl.java =================================================================== --- Perf.DataCollection/src/com/dhyan/nms/server/performance/datacollection/HistoricalProcessImpl.java (revision 6018) +++ Perf.DataCollection/src/com/dhyan/nms/server/performance/datacollection/HistoricalProcessImpl.java (working copy) @@ -23,13 +23,11 @@ * @param resourcedetails Resourcedetails */ @Override - public final void processCollectedData(final Collection dynamicdataVO, final Resourcedetails resourcedetails) + public void processCollectedData(final Collection dynamicdataVO, final Resourcedetails resourcedetails) { Object[][] collectedData = null; String tableName = null; ArrayList columnNames = null; - Collection finalValues = null; - try { for (DynamicCollectedDataVO dataVO : dynamicdataVO) Index: Web.Security/WebContent/webresource/security/scripts/SecurityUserManager.js =================================================================== --- Web.Security/WebContent/webresource/security/scripts/SecurityUserManager.js (revision 6018) +++ Web.Security/WebContent/webresource/security/scripts/SecurityUserManager.js (working copy) @@ -963,7 +963,7 @@ focus_field = thisForm.password; } } - temp_error = validateConfirmPassword(thisForm.password.value, thisForm.confirmPassword.value, userManagementLocale.getText("security.userManagement.addUser.confirmPassword"), true); + temp_error = validateConfirmPassword(thisForm.password.value, thisForm.confirmPassword.value, userManagementLocale.getText("security.userManagement.message.confirmPassword"), true); if(temp_error != null) { error_mess += temp_error + "\n"; Index: Web.Fault/src/com/dhyan/nms/client/webclient/fault/struts/AlarmDetailsAction.java =================================================================== --- Web.Fault/src/com/dhyan/nms/client/webclient/fault/struts/AlarmDetailsAction.java (revision 6018) +++ Web.Fault/src/com/dhyan/nms/client/webclient/fault/struts/AlarmDetailsAction.java (working copy) @@ -31,6 +31,7 @@ import com.dhyan.nms.client.webclient.webbase.struts.WebConstants; import com.dhyan.nms.datamodel.StaleDataException; import com.dhyan.nms.server.fault.alarmmanager.AlarmConstants; +import com.dhyan.nms.server.fault.alarmmanager.AlarmManager; import com.dhyan.nms.server.fault.alarmmanager.datamodel.Alarm; import com.dhyan.nms.server.fault.alarmmanager.datamodel.Alarmannotation; import com.dhyan.nms.server.fault.alarmmanager.interfaces.AlarmSessionLocal; @@ -160,7 +161,6 @@ this.optionalfield = optionalfieldArg; } - /** * @param rowsjsonArg the rowsjson to set */ @@ -883,6 +883,7 @@ { if (response != null) { + JSONBuilder.setResponseAttributes(response); response.getWriter().write(responseString); } } @@ -892,6 +893,41 @@ * @return null * @throws Exception exception */ + public String checkCanClearAlarms() throws Exception + { + + try + { + JSONArray jsonArray = new JSONArray(getRowsjson()); + JSONObject responseJSON = new JSONObject(); + if (jsonArray.length() > 0) + { + for (int i = 0; i < jsonArray.length(); i++) + { + JSONObject jsonObject = jsonArray.getJSONObject(i); + Alarm alarmObj = getAlarmFromJSON(jsonObject); + if (AlarmManager.getInstance().isDeviceAlarm(alarmObj)) + { + responseJSON.put("errorMessage", ResourceBundleHandler.getInstance().getResource(AlarmDetailsAction.RESOURCE_BUNDLE, + "AlarmDetailsAction.alert.clearAlarm.validation", "Problem in locating Resource Bundle / Keys")); + break; + } + } + } + this.writeToResponse(responseJSON.toString()); + } + catch (Exception e) + { + AlarmDetailsAction.LOGGER.error("Problem while Clearing Alarms; Exception caused due to " + e.getMessage()); + } + return null; + } + + /** + * To clear the alarms. + * @return null + * @throws Exception exception + */ public String clearAlarm() throws Exception { try @@ -913,8 +949,8 @@ alarm_store_local.addAnnotateAlarm(alarmObj.getAlarmid(), this.getAnnotation(), security_facade_local.getUserID(alarmObj.getOwner())); } } - this.writeToResponse(JSONBuilder.OPEN_CURLY_BRACE - + JSONBuilder.prepareKeyValuePair(AlarmDetailsAction.SUCCESS, "success ") + JSONBuilder.CLOSED_CURLY_BRACE); + this.writeToResponse(JSONBuilder.OPEN_CURLY_BRACE + JSONBuilder.prepareKeyValuePair(AlarmDetailsAction.SUCCESS, "success ") + + JSONBuilder.CLOSED_CURLY_BRACE); } catch (StaleDataException se) { Index: Web.Fault/WebContent/webresource/fault/scripts/FaultScriptController.js =================================================================== --- Web.Fault/WebContent/webresource/fault/scripts/FaultScriptController.js (revision 6018) +++ Web.Fault/WebContent/webresource/fault/scripts/FaultScriptController.js (working copy) @@ -589,40 +589,65 @@ purgeAlarmsNowCallBack: function() { - if (FaultMenuHandler.purgeNowWin == null) + var conMessage; + var purgeOption=1; + if(purgeOption == 1) { - FaultMenuHandler.purgeNowWin = new Window( + conMessage = alarmpurgeintervalLocale.getText("alarmPurgeInterval.dialog.message.sureToDeleteAllClearedAlarms") + } + else { - id: 'purgeAlarmWindow', - title: alarmpurgeintervalLocale.getText("alarmPurgeInterval.window.title.purgeAlarmsNow"), - width: 390, - height: 100, - left: 350, - top: 200, - maximizable: false, - minimizable: false, - iconURL:ImageUtility.getImageURL(DNMSUtility.FAULT) + "purge_now.gif", - resizable: false, - destroyOnClose: true, - hasButton:true, - onContentLoad:function() + conMessage = alarmpurgeintervalLocale.getText("alarmPurgeInterval.dialog.message.sureToDeleteAllAlarms"); + } + JSDialog.showConfirmDialog(conMessage, { - var window = Windows.getWindow(this.id); - var helpButtonJSON = {id:'alarmPurgeNowHelpButton', title:alarmpurgeintervalLocale.getText("alarmPurgeInterval.button.name.help"), name:'alarmPurgeHelpButton', className:DNMSButton.HELP_BUTTON, handler: null}; - var okButtonJSON = {id:'alarmPurgeNowOkButton', title:alarmpurgeintervalLocale.getText("alarmPurgeInterval.button.name.ok"), name:'alarmPurgeSaveButton', className:DNMSButton.OK_BUTTON, handler: purgeAlarms.bind(this, document.alarmPurgeNowForm)}; - var cancelButtonJSON = {id:'alarmPurgeNowCancelButton', title:alarmpurgeintervalLocale.getText("alarmPurgeInterval.button.name.cancel"), name:'alarmPurgeCancelButton', className:DNMSButton.CANCEL_BUTTON, handler: closeAlarmPurge}; - window.addButton(DNMSButton.createButton(helpButtonJSON), "left"); - window.addButton(DNMSButton.createButton(okButtonJSON), "right"); - window.addButton(DNMSButton.createButton(cancelButtonJSON), "right"); + onOk : function() + { + new Ajax.Request("/fault/PurgeAlarmsNow.action", + { + onSuccess: function() + { + Windows.close('purgeAlarmWindow'); + AlarmBrowserUtil.alarm_grid['grid'].buffer.refresh(); }, - onDestroy: function() - { - FaultMenuHandler.purgeNowWin = null + postBody:'purgeNowOption=1' + }); } }); - FaultMenuHandler.purgeNowWin.show(true); - } - FaultMenuHandler.purgeNowWin.setURL('/fault/getPurgingOptins.action'); +// if (FaultMenuHandler.purgeNowWin == null) +// { +// FaultMenuHandler.purgeNowWin = new Window( +// { +// id: 'purgeAlarmWindow', +// title: alarmpurgeintervalLocale.getText("alarmPurgeInterval.window.title.purgeAlarmsNow"), +// width: 390, +// height: 100, +// left: 350, +// top: 200, +// maximizable: false, +// minimizable: false, +// iconURL:ImageUtility.getImageURL(DNMSUtility.FAULT) + "purge_now.gif", +// resizable: false, +// destroyOnClose: true, +// hasButton:true, +// onContentLoad:function() +// { +// var window = Windows.getWindow(this.id); +// var helpButtonJSON = {id:'alarmPurgeNowHelpButton', title:alarmpurgeintervalLocale.getText("alarmPurgeInterval.button.name.help"), name:'alarmPurgeHelpButton', className:DNMSButton.HELP_BUTTON, handler: null}; +// var okButtonJSON = {id:'alarmPurgeNowOkButton', title:alarmpurgeintervalLocale.getText("alarmPurgeInterval.button.name.ok"), name:'alarmPurgeSaveButton', className:DNMSButton.OK_BUTTON, handler: purgeAlarms.bind(this, document.alarmPurgeNowForm)}; +// var cancelButtonJSON = {id:'alarmPurgeNowCancelButton', title:alarmpurgeintervalLocale.getText("alarmPurgeInterval.button.name.cancel"), name:'alarmPurgeCancelButton', className:DNMSButton.CANCEL_BUTTON, handler: closeAlarmPurge}; +// window.addButton(DNMSButton.createButton(helpButtonJSON), "left"); +// window.addButton(DNMSButton.createButton(okButtonJSON), "right"); +// window.addButton(DNMSButton.createButton(cancelButtonJSON), "right"); +// }, +// onDestroy: function() +// { +// FaultMenuHandler.purgeNowWin = null +// } +// }); +// FaultMenuHandler.purgeNowWin.show(true); +// } +// FaultMenuHandler.purgeNowWin.setURL('/fault/getPurgingOptins.action'); }, purgeAlarmsNow: Index: Web.Fault/WebContent/webresource/fault/scripts/FaultTabUtility.js =================================================================== --- Web.Fault/WebContent/webresource/fault/scripts/FaultTabUtility.js (revision 6018) +++ Web.Fault/WebContent/webresource/fault/scripts/FaultTabUtility.js (working copy) @@ -348,8 +348,8 @@ var alarmid = rowJSON.rows[0].alarmid; var resourceId = rowJSON.rows[0].resourceid; var updatedTime = rowJSON.rows[0].updatedtime; - var lowerLimit = parseFloat(updatedTime) - (60 * 1000); - var upperLimit = parseFloat(updatedTime) + (60 * 1000); + var lowerLimit = parseFloat(updatedTime) - (5 * 60 * 1000); + var upperLimit = parseFloat(updatedTime) + (5 * 60 * 1000); alarmDetailView(alarmid, resourceId, lowerLimit, upperLimit); } else @@ -664,6 +664,19 @@ var rowJSON = AlarmBrowserUtil.alarm_grid['grid'].getSelectedRowsJSON(); if (rowJSON.rows) { + new Ajax.Request('/fault/checkCanClearAlarms.action', + { + method: 'get', + parameters:'rowsjson='+ Object.toJSON(rowJSON.rows), + onSuccess: function(response) + { + var responseJSON = eval('(' + response.responseText + ')'); + if (responseJSON != null && responseJSON.errorMessage != null) + { + JSDialog.showAlertDialog(responseJSON.errorMessage+""); + } + else + { JSDialog.showConfirmDialog(alarmsLocale.getText("alarms.dialog.message.wantToClearAlarms"), { onOk : function() @@ -703,6 +716,10 @@ } }); } + } + }); + + } else { showNotSelectError(); Index: Web.Fault/WebContent/webresource/fault/scripts/DNMSFault.js =================================================================== --- Web.Fault/WebContent/webresource/fault/scripts/DNMSFault.js (revision 6018) +++ Web.Fault/WebContent/webresource/fault/scripts/DNMSFault.js (working copy) @@ -498,8 +498,8 @@ { Windows.close(FaultUtil.ALARM_EDIT_WINDOW_ID); var updatedTime = errorMessage.updatedtime; - var lowerLimit = parseFloat(updatedTime) - (60 * 1000); - var upperLimit = parseFloat(updatedTime) + (60 * 1000); + var lowerLimit = parseFloat(updatedTime) - (5 * 60 * 1000); + var upperLimit = parseFloat(updatedTime) + (5 * 60 * 1000); setTimeout(function() { alarmDetailView(errorMessage.alarmid, errorMessage.resourceid, lowerLimit, upperLimit); Index: Web.Fault/WebContent/WEB-INF/struts/struts.xml =================================================================== --- Web.Fault/WebContent/WEB-INF/struts/struts.xml (revision 6018) +++ Web.Fault/WebContent/WEB-INF/struts/struts.xml (working copy) @@ -58,6 +58,10 @@ /fault/AlarmBrowser.jsp + + Index: Web.Fault/WebContent/WEB-INF/properties/AlarmDetailsAction.properties =================================================================== --- Web.Fault/WebContent/WEB-INF/properties/AlarmDetailsAction.properties (revision 6018) +++ Web.Fault/WebContent/WEB-INF/properties/AlarmDetailsAction.properties (working copy) @@ -1,3 +1,4 @@ AlarmDetailsAction.alert.unauthorized.annotation=You are not authorized to give Annotation. AlarmDetailsAction.alert.unauthorized.acknowledge=You are not authorized to acknowledge the Alarm. -AlarmDetailsAction.alert.unauthorized.acknowledgeAlarmID=You are not authorized to acknowledge alarm with id \ No newline at end of file +AlarmDetailsAction.alert.unauthorized.acknowledgeAlarmID=You are not authorized to acknowledge alarm with id +AlarmDetailsAction.alert.clearAlarm.validation= Cannot clear Device generated alarm(s). \ No newline at end of file Index: Web.Topology/WebContent/webresource/topology/scripts/TopologyMapHelper.js =================================================================== --- Web.Topology/WebContent/webresource/topology/scripts/TopologyMapHelper.js (revision 6018) +++ Web.Topology/WebContent/webresource/topology/scripts/TopologyMapHelper.js (working copy) @@ -111,10 +111,17 @@ noOfResourcePerLine = parseInt($('toInsertMapView').clientWidth / 80, 10); } catch (e) { + + } + } + if (noOfResourcePerLine < 10) + { noOfResourcePerLine = 10; } + else + { + noOfResourcePerLine = noOfResourcePerLine + 1; } - var tr = null; var noOfRows = 0; if ($('dnmsTopologyMapResourceDetailsView') != null) $('dnmsTopologyMapResourceDetailsView').remove(); Index: Web.Topology/WebContent/webresource/topology/scripts/ResourceTreeManager.js =================================================================== --- Web.Topology/WebContent/webresource/topology/scripts/ResourceTreeManager.js (revision 6018) +++ Web.Topology/WebContent/webresource/topology/scripts/ResourceTreeManager.js (working copy) @@ -457,11 +457,11 @@ if(thisForm.resourceFormId_locationDetails1.checked) { - getAddressValue(thisForm, successResourceAdd, "/topology/addResource.action", "Add"); + getLatLngValue(thisForm, successResourceAdd, "/topology/addResource.action", "Add"); } else { - getLatLngValue(thisForm, successResourceAdd, "/topology/addResource.action", "Add"); + getAddressValue(thisForm, successResourceAdd, "/topology/addResource.action", "Add"); } } else if (thisForm.operationType.value == "EDIT") @@ -609,7 +609,7 @@ var point=copyOfPoint; copyOfPoint=null; progressWindow.closeProgressWindow(); - closeEditGroupWindow(); + if (response.responseText) { var errorJson = eval('(' + response.responseText + ')'); @@ -623,6 +623,7 @@ { updateGroupLocationDetails(TopologyManager.topologyTree.getTree().getRootNode(), errorJson); TopologyManager.topologyGoogleMapControl.setCenter(point,errorJson.zoom); + closeEditGroupWindow(); }, 5); } } @@ -911,12 +912,14 @@ deleteGroup = function(paramNode) { + var groupId = null; groupId = TopologyManager.topologyTree.getEntityId(paramNode); JSDialog.showConfirmDialog(resourcegroupLocale.getText("resourceGroup.dialog.message.subgroupDeletedWantToContinue", [paramNode.getNodeText()]), { onOk : function() { + var deleteGroupProgressWindow = JSDialog.showProgressDialog(resourcegroupLocale.getText("resourceGroup.dialog.message.deletingGroup")); var parentNode = paramNode.getParentNode(); new Ajax.Request('/topology/deleteGroup.action?groupId=' + groupId, { @@ -936,16 +939,19 @@ } if (responseJSON.error != null) JSDialog.showAlertDialog(resourcegroupLocale.getText("resourceGroup.dialog.message.cannotDeleteGroup", [paramNode.getNodeText()])); + } catch (e) { } + deleteGroupProgressWindow.close(); } }); + + return true; } }); - return false; }; var editResourceWindow = null; @@ -1035,7 +1041,7 @@ } if (responseJSON.error != null) { - JSDialog.showAlertDialog(resourceLocale.getText("resource.dialog.message.cannotDeleteResource",[responseJSON.error])); + JSDialog.showAlertDialog(resourceLocale.getText("resource.dialog.message.cannotDeleteResource")); } } catch (e) Index: Web.Topology/WebContent/WEB-INF/properties/resource.properties =================================================================== --- Web.Topology/WebContent/WEB-INF/properties/resource.properties (revision 6018) +++ Web.Topology/WebContent/WEB-INF/properties/resource.properties (working copy) @@ -27,7 +27,7 @@ resource.dialog.message.zip=ZIP resource.dialog.message.noInvalidResourceId=No/Invalid Network Element Id resource.dialog.message.selectResource=Please select a Network Element -resource.dialog.message.cannotDeleteResource= {0} Could not delete selected Network Element +resource.dialog.message.cannotDeleteResource=Could not delete selected Network Element resource.dialog.message.wantToDeleteResource=Are you sure you want to delete the selected Network Element? resource.progressWindow.title.addingResourceDetails=Adding Network Element Details Index: Web.Topology/WebContent/WEB-INF/properties/resourcegroup.properties =================================================================== --- Web.Topology/WebContent/WEB-INF/properties/resourcegroup.properties (revision 6018) +++ Web.Topology/WebContent/WEB-INF/properties/resourcegroup.properties (working copy) @@ -5,6 +5,7 @@ resourceGroup.button.name.save=Save resourceGroup.button.name.cancel=Cancel +resourceGroup.dialog.message.deletingGroup = Deleting group. resourceGroup.dialog.message.validateGroupAddition = Group cannot be added. Nesting limit reached. resourceGroup.dialog.message.enterValidGroupName=Please enter a valid group name resourceGroup.dialog.message.notAllowedSelectParentGroup=You are not allowed to select the parent group Index: Web.ChassisView/src/com/dhyan/nms/client/webclient/chassisview/struts/resources/MultiChassisView.xsd =================================================================== --- Web.ChassisView/src/com/dhyan/nms/client/webclient/chassisview/struts/resources/MultiChassisView.xsd (revision 6018) +++ Web.ChassisView/src/com/dhyan/nms/client/webclient/chassisview/struts/resources/MultiChassisView.xsd (working copy) @@ -66,12 +66,12 @@ - - - - - - + + + + + + Index: Web.ChassisView/WebContent/webresource/chassisview/scripts/ChassisView.js =================================================================== --- Web.ChassisView/WebContent/webresource/chassisview/scripts/ChassisView.js (revision 6018) +++ Web.ChassisView/WebContent/webresource/chassisview/scripts/ChassisView.js (working copy) @@ -12,7 +12,7 @@ var parent_component_status = new Array(); var resourceId = ""; var resourceType = ""; -var viewType = "front"; +var viewType = "Front"; var zoom_size = 0; var chassi_table_width = 0; var chassi_table_height = 0; Index: Web.ChassisView/WebContent/resources/conf/MultiChassisView.xml =================================================================== --- Web.ChassisView/WebContent/resources/conf/MultiChassisView.xml (revision 6018) +++ Web.ChassisView/WebContent/resources/conf/MultiChassisView.xml (working copy) @@ -1,7 +1,7 @@ - + - + - + @@ -295,13 +294,13 @@ Index: Perf.PerformanceManager/src/com/dhyan/nms/server/performance/ejb/PerformanceFacade.java =================================================================== --- Perf.PerformanceManager/src/com/dhyan/nms/server/performance/ejb/PerformanceFacade.java (revision 6018) +++ Perf.PerformanceManager/src/com/dhyan/nms/server/performance/ejb/PerformanceFacade.java (working copy) @@ -172,6 +172,7 @@ { try { + pattern.setStarttime(System.currentTimeMillis()+PerformanceTaskCreator.getInstance().getTaskDelayTime()); SchedulerManager.getInstance().addTask(dataCollScheduleId, DATA_COLLECTION_SCHEDULER_ID, pattern); } catch (Exception e) Index: Web.BaseModule/WebContent/webresource/webcomponents/table/scripts/VerticalTable.js =================================================================== --- Web.BaseModule/WebContent/webresource/webcomponents/table/scripts/VerticalTable.js (revision 6018) +++ Web.BaseModule/WebContent/webresource/webcomponents/table/scripts/VerticalTable.js (working copy) @@ -161,7 +161,7 @@ getSelectedRow: function() { var cellInnerHTML=null; - if (this.previousSelectedRow != null) + if (this.previousSelectedRow != null && this.previousSelectedRow.length > 0) { cellInnerHTML=new Array(); for(i=0;i + + + + Index: Web.BaseModule/WebContent/jsp/LoadResourceBundle.jsp =================================================================== --- Web.BaseModule/WebContent/jsp/LoadResourceBundle.jsp (revision 6018) +++ Web.BaseModule/WebContent/jsp/LoadResourceBundle.jsp (working copy) @@ -111,7 +111,6 @@ - Index: dnms/resources/dbspecific/derby/schema/dnms_default_records.sql =================================================================== --- dnms/resources/dbspecific/derby/schema/dnms_default_records.sql (revision 6018) +++ dnms/resources/dbspecific/derby/schema/dnms_default_records.sql (working copy) @@ -2135,7 +2135,7 @@ INSERT INTO TASKSCHEDULER VALUES(1,'DBBACKUPSCHEDULER',2,1,4,-1,-1,-1,1); INSERT INTO TASKSCHEDULER VALUES(2,'DBBACKUPPURGESCHEDULER',2,1,5,-1,-1,-1,1); -INSERT INTO TASKSCHEDULER VALUES(3,'PURGELOGBYCOUNTSCHEDULER',1,1,6,-1,-1,-1,1); +INSERT INTO TASKSCHEDULER VALUES(3,'PURGELOGBYCOUNTSCHEDULER',2,1,6,-1,-1,-1,1); INSERT INTO TASKSCHEDULER VALUES(4,'REPORTSCHEDULER',1,1,7,-1,-1,-1,1); INSERT INTO TASKSCHEDULER VALUES(5,'PURGEREPORTSCHEDULER',1,1,8,-1,-1,-1,1); INSERT INTO TASKSCHEDULER VALUES(6,'PURGEALARMBYCOUNTSCHEDULER',1,1,10,-1,-1,-1,1); Index: dnms/resources/dbspecific/derby/schema/dnms_common.sql =================================================================== --- dnms/resources/dbspecific/derby/schema/dnms_common.sql (revision 6018) +++ dnms/resources/dbspecific/derby/schema/dnms_common.sql (working copy) @@ -12,7 +12,7 @@ version NUMERIC(18) default 1, primary key (filterid) , foreign key (filtertypeid) references FILTERTYPE (filtertypeid), - foreign key (userid) references USERDETAILS (userid) ); + foreign key (userid) references USERDETAILS (userid) on delete cascade ); CREATE table FILTERGROUP ( filtergroupid NUMERIC(15) NOT NULL, filterid NUMERIC(15) NOT NULL, Index: dnms/resources/dbspecific/mysql/schema/dnms_default_records.sql =================================================================== --- dnms/resources/dbspecific/mysql/schema/dnms_default_records.sql (revision 6018) +++ dnms/resources/dbspecific/mysql/schema/dnms_default_records.sql (working copy) @@ -2136,7 +2136,7 @@ INSERT INTO TASKSCHEDULER VALUES(1,'DBBACKUPSCHEDULER',2,1,4,-1,-1,-1,1); INSERT INTO TASKSCHEDULER VALUES(2,'DBBACKUPPURGESCHEDULER',2,1,5,-1,-1,-1,1); -INSERT INTO TASKSCHEDULER VALUES(3,'PURGELOGBYCOUNTSCHEDULER',1,1,6,-1,-1,-1,1); +INSERT INTO TASKSCHEDULER VALUES(3,'PURGELOGBYCOUNTSCHEDULER',2,1,6,-1,-1,-1,1); INSERT INTO TASKSCHEDULER VALUES(4,'REPORTSCHEDULER',1,1,7,-1,-1,-1,1); INSERT INTO TASKSCHEDULER VALUES(5,'PURGEREPORTSCHEDULER',1,1,8,-1,-1,-1,1); INSERT INTO TASKSCHEDULER VALUES(6,'PURGEALARMBYCOUNTSCHEDULER',1,1,10,-1,-1,-1,1); Index: dnms/resources/dbspecific/mysql/schema/dnms_common.sql =================================================================== --- dnms/resources/dbspecific/mysql/schema/dnms_common.sql (revision 6018) +++ dnms/resources/dbspecific/mysql/schema/dnms_common.sql (working copy) @@ -22,7 +22,7 @@ primary key (filterid), index filtertypeidindex (filtertypeid), foreign key (filtertypeid) references FILTERTYPE (filtertypeid) on delete restrict, - foreign key (userid) references USERDETAILS (userid) on delete restrict + foreign key (userid) references USERDETAILS (userid) on delete cascade )ENGINE=INNODB; --This Table holds the Grouping details for filters Index: dnms/resources/dbspecific/oracle/schema/dnms_default_records.sql =================================================================== --- dnms/resources/dbspecific/oracle/schema/dnms_default_records.sql (revision 6018) +++ dnms/resources/dbspecific/oracle/schema/dnms_default_records.sql (working copy) @@ -2135,7 +2135,7 @@ INSERT INTO TASKSCHEDULER VALUES(1,'DBBACKUPSCHEDULER',2,1,4,-1,-1,-1,1); INSERT INTO TASKSCHEDULER VALUES(2,'DBBACKUPPURGESCHEDULER',2,1,5,-1,-1,-1,1); -INSERT INTO TASKSCHEDULER VALUES(3,'PURGELOGBYCOUNTSCHEDULER',1,1,6,-1,-1,-1,1); +INSERT INTO TASKSCHEDULER VALUES(3,'PURGELOGBYCOUNTSCHEDULER',2,1,6,-1,-1,-1,1); INSERT INTO TASKSCHEDULER VALUES(4,'REPORTSCHEDULER',1,1,7,-1,-1,-1,1); INSERT INTO TASKSCHEDULER VALUES(5,'PURGEREPORTSCHEDULER',1,1,8,-1,-1,-1,1); INSERT INTO TASKSCHEDULER VALUES(6,'PURGEALARMBYCOUNTSCHEDULER',1,1,10,-1,-1,-1,1); Index: dnms/resources/dbspecific/oracle/schema/dnms_common.sql =================================================================== --- dnms/resources/dbspecific/oracle/schema/dnms_common.sql (revision 6018) +++ dnms/resources/dbspecific/oracle/schema/dnms_common.sql (working copy) @@ -26,7 +26,7 @@ version NUMBER (18) default 1, primary key (filterid) , foreign key (filtertypeid) references FILTERTYPE (filtertypeid), - foreign key (userid) references USERDETAILS (userid) ); + foreign key (userid) references USERDETAILS (userid) on delete cascade ); create table FILTERGROUP ( filtergroupid NUMBER(15) NOT NULL, filterid NUMBER(15) NOT NULL, Index: Fault.Publisher/src/com/dhyan/nms/server/fault/publisher/EmailPublisherImpl.java =================================================================== --- Fault.Publisher/src/com/dhyan/nms/server/fault/publisher/EmailPublisherImpl.java (revision 6018) +++ Fault.Publisher/src/com/dhyan/nms/server/fault/publisher/EmailPublisherImpl.java (working copy) @@ -11,6 +11,7 @@ import com.dhyan.nms.Constants; import com.dhyan.nms.server.fault.alarmmanager.AlarmFilterUtil; +import com.dhyan.nms.server.fault.alarmmanager.AlarmManager; import com.dhyan.nms.server.fault.alarmmanager.alarmstore.AlarmStore; import com.dhyan.nms.server.fault.alarmmanager.datamodel.Alarm; import com.dhyan.nms.server.fault.alarmmanager.publisher.PublisherIfc; @@ -205,10 +206,20 @@ { messageDetails.put("SOURCE COMPONENT", alarmEvent.getSourceComponent()); } + + try + { + String specification = AlarmManager.getInstance().getAlarmSpecificationType(alarmEvent); + messageDetails.put("ALARM RAISED BY", specification); + } + catch (Exception e) + { + LOG.error("Failure in Getting Alarm Event Type :" + e.getMessage()); if (alarmEvent.getEventTypeString() != null) { messageDetails.put("ALARM RAISED BY", alarmEvent.getEventTypeString()); } + } if (alarmEvent.getOwner() != null) { messageDetails.put("OWNER", alarmEvent.getOwner()); Index: Web.Chart/WebContent/webresource/chart/flex/src/Linechart.mxml =================================================================== --- Web.Chart/WebContent/webresource/chart/flex/src/Linechart.mxml (revision 6018) +++ Web.Chart/WebContent/webresource/chart/flex/src/Linechart.mxml (working copy) @@ -58,7 +58,7 @@ refreshInterval= uint(Application.application.parameters.refreshInterval); if (refreshInterval < 10000) refreshInterval=10000; this.isChartRefreshEnabled=Application.application.parameters.isChartRefreshEnabled.toString(); - this.isRealTimeChart = Application.application.parameters.isRealTimeChart.toString(); + this.isRealTimeChart = Application.application.parameters.isRealTimeChart as String; this.legendsContainer = new Canvas(); legendsContainer.x = 0; legendsContainer.y = 0; @@ -134,7 +134,7 @@ if(this.noDataLabel == null){ this.noDataLabel = ChartsUtil.addNoDataToCanvas(chartContainer); } - if (isRealTimeChart === "true") startRefreshTimer(); + if (this.isRealTimeChart === "true") startRefreshTimer(); } else { @@ -187,6 +187,7 @@ { if(refreshTimer.running) { + isLoadedFirst = false; isDataPopulated=false; loadChartData(); } @@ -239,13 +240,15 @@ { try { + chartData = new ArrayCollection(dataObject.dbValues.chartData as Array); + delete dataObject.dbValues.chartData; + linechart.dataProvider = chartData; + if(isLoadedFirst) { var legendsHeight : uint = 0; var previousXPosition : uint = 0; var previousYPosition : uint = 0; - chartData = new ArrayCollection(dataObject.dbValues.chartData as Array); - delete dataObject.dbValues.chartData; linechart.series = []; // Reset the series... var series:LineSeries=null; var displayStr:String=""; @@ -269,7 +272,7 @@ series.setStyle("radius", 3); series.setStyle("adjustedRadius", 1); series.setStyle("itemRenderer", new ClassFactory(DiamondItemRenderer)); - if (isRealTimeChart === "false") + if (this.isRealTimeChart === "false") series.setStyle("showDataEffect", interpolateData); var legendItem : LegendItem = new LegendItem({"name": series.id, legendBox:{"fillColor" : fillColorValue, "fillAlpha": 0.5}, Index: Fault.AlarmManager/src/com/dhyan/nms/server/fault/alarmmanager/ejb/AlarmSessionBean.java =================================================================== --- Fault.AlarmManager/src/com/dhyan/nms/server/fault/alarmmanager/ejb/AlarmSessionBean.java (revision 6018) +++ Fault.AlarmManager/src/com/dhyan/nms/server/fault/alarmmanager/ejb/AlarmSessionBean.java (working copy) @@ -28,6 +28,7 @@ import com.dhyan.component.audittrial.interfaces.AuditTrailFacadeLocal; import com.dhyan.component.dvl.core.DVLTableData; +import com.dhyan.component.dvl.exporter.DVLExportManager; import com.dhyan.component.dvl.exporter.DVLExporterConstants; import com.dhyan.component.dvl.exporter.DVLExporterVO; import com.dhyan.component.security.RoleConstants; @@ -81,16 +82,29 @@ private static final String SEVERITY_ID = "severityid"; private static final String SEVERITY = "severity"; private static final String SOURCE_MESSAGE = " Source:"; - private static final String DELETE_COMMONQUERY = "DELETE FROM ALARM WHERE severityid = " + AlarmConstants.CLEARED_ID; - private static final String ARCHIVE_WHERECONDITION = - " WHERE a.severityid = s.severityid AND a.eventtypeid = e.eventtypeid AND" + " rd.resourceid = a.resourceid AND a.severityid = " - + AlarmConstants.CLEARED_ID; - private static final String ARCHIVE_SELECTQUERY = - "SELECT alarmid,e.eventtype as eventtype,s.severity as severity,source,rd.resourcename as resourcename," - + "componentid,category,createdtime,updatedtime,owner,ackstatus,acktime,clearedtime,message,remedy,a.version as version " - + "FROM ALARM a,RESOURCEDETAILS rd,SEVERITY s, EVENTTYPE e"; - private static final String ARCHIVE_COMMONQUERY = ARCHIVE_SELECTQUERY + ARCHIVE_WHERECONDITION; + private static final String DELETE_COMMONQUERY = + "DELETE alm , evnt " + " FROM ALARM as alm , EVENTLOGS as evnt , EVENTALARMMAPPING as mapping" + " where alm.severityid = " + + AlarmConstants.CLEARED_ID + " AND alm.alarmid = mapping.alarmid" + " AND mapping.eventid = evnt.eventid "; + private static final String ALARM_ARCHIVE_COMMONQUERY = + "SELECT alm.alarmid as alarmid, " + + " evntype.eventtype as eventtype, svty.severity as severity, alm.source as source, resource.resourcename as resourcename, " + + " alm.componentid as componentid, alm.category as category, alm.createdtime as createdtime, alm.updatedtime as updatedtime, " + + " alm.owner as owner, alm.ackstatus as ackstatus, alm.acktime as acktime, alm.clearedtime as clearedtime, " + + " alm.message as message, alm.remedy as remedy, alm.version as version " + + " FROM ALARM as alm , EVENTTYPE as evntype , RESOURCEDETAILS as resource ,SEVERITY as svty " + " where alm.severityid = " + + AlarmConstants.CLEARED_ID + " AND resource.resourceid = alm.resourceid " + " AND evntype.eventtypeid = alm.eventtypeid " + + " AND svty.severityid =alm.severityid "; + + private static final String EVENTLOGS_ARCHIVE_COMMONQUERY = + "SELECT evnt.eventid as eventid, " + " evntype.eventtype as eventtype,svty.severity as severity,evnt.source,evnt.category, " + + " resource.resourcename as resourcename,evnt.componentid,evnt.eventtime as eventtime, " + + " evnt.message as message,evnt.remedy as remedy,evnt.version as version FROM " + + " EVENTLOGS evnt,ALARM as alm, EVENTALARMMAPPING as mapping,EVENTTYPE evntype, SEVERITY svty,RESOURCEDETAILS resource " + + " WHERE evnt.eventtypeid != 4 AND evntype.eventtypeid = evnt.eventtypeid " + + " AND evnt.severityid=svty.severityid AND resource.resourceid = evnt.resourceid " + " AND alm.alarmid = mapping.alarmid" + + " AND mapping.eventid = evnt.eventid " + " AND alm.severityid = " + AlarmConstants.CLEARED_ID; + private static final String GLOBAL = "global"; private static final String CLOSE_BRACKET = ")"; private static final String ALARM_CLEARED_MESSAGE = "Alarm Updated : Cleared - Id:"; @@ -1133,19 +1147,33 @@ @RolesAllowed("DEFAULT_ROLE_FOR_SERVER") public final void purgeAllAlarms(final boolean cleared, final DVLExporterVO exporterVO) { - String deleteQuery; - String archiveQuery; + String deleteQuery = null; + String alarmArchiveQuery = null; + String eventLogsArchiveQuery = null; if (cleared) { deleteQuery = DELETE_COMMONQUERY; - archiveQuery = ARCHIVE_COMMONQUERY; + alarmArchiveQuery = ALARM_ARCHIVE_COMMONQUERY; + eventLogsArchiveQuery = EVENTLOGS_ARCHIVE_COMMONQUERY; } - else +// else +// { + // deleteQuery = "DELETE FROM ALARM"; + // archiveQuery = ARCHIVE_SELECTQUERY + + // " WHERE a.severityid = s.severityid AND a.eventtypeid = e.eventtypeid AND rd.resourceid = a.resourceid"; +// } + DVLExporterVO exporterVOLocal = exporterVO; + if (exporterVOLocal == null) { - deleteQuery = "DELETE FROM ALARM"; - archiveQuery = ARCHIVE_SELECTQUERY + " WHERE a.severityid = s.severityid AND a.eventtypeid = e.eventtypeid AND rd.resourceid = a.resourceid"; + exporterVOLocal = new DVLExporterVO(); + exporterVOLocal.setExporterId(DVLExporterConstants.LOG_EXPORTER_ID); + exporterVOLocal.setExportType(DVLExporterConstants.WHOLEVIEW); + exporterVOLocal.setFileName(AlarmConstants.ALARM); + exporterVOLocal.setFileType(Constants.CSV_EXPORT); + exporterVOLocal.setDvlQuerryId(DVLExporterConstants.ARCHIVE_QUERY_ID); } - purge(deleteQuery, archiveQuery, -1, exporterVO); + DVLExportManager.getInstance().exportData(eventLogsArchiveQuery, -1, exporterVOLocal); + purge(deleteQuery, alarmArchiveQuery, -1, exporterVO, true); } /** @@ -1157,10 +1185,23 @@ @RolesAllowed("DEFAULT_ROLE_FOR_SERVER") public final void purgeAlarmsByInterval(final int filterId, final DVLExporterVO exporterVO, final long timeinterval) { - String deleteQuery = DELETE_COMMONQUERY + " and updatedtime <= " + (System.currentTimeMillis() - timeinterval); - String archiveQuery = ARCHIVE_COMMONQUERY + " and updatedtime <= " + (System.currentTimeMillis() - timeinterval); - purge(deleteQuery, archiveQuery, filterId, exporterVO); + + String deleteQuery = DELETE_COMMONQUERY + " AND alm.updatedtime <= " + (System.currentTimeMillis() - timeinterval); + String alarmArchiveQuery = ALARM_ARCHIVE_COMMONQUERY + " AND alm.updatedtime <= " + (System.currentTimeMillis() - timeinterval); + String eventLogsArchiveQuery = EVENTLOGS_ARCHIVE_COMMONQUERY + " AND alm.updatedtime <= " + (System.currentTimeMillis() - timeinterval); + DVLExporterVO exporterVOLocal = exporterVO; + if (exporterVOLocal == null) + { + exporterVOLocal = new DVLExporterVO(); + exporterVOLocal.setExporterId(DVLExporterConstants.LOG_EXPORTER_ID); + exporterVOLocal.setExportType(DVLExporterConstants.WHOLEVIEW); + exporterVOLocal.setFileName(AlarmConstants.ALARM); + exporterVOLocal.setFileType(Constants.CSV_EXPORT); + exporterVOLocal.setDvlQuerryId(DVLExporterConstants.ARCHIVE_QUERY_ID); } + DVLExportManager.getInstance().exportData(eventLogsArchiveQuery, -1, exporterVOLocal); + purge(deleteQuery, alarmArchiveQuery, filterId, exporterVO, true); + } /** * To purge the alarms by time interval, filter id and exporter. @@ -1171,32 +1212,116 @@ @RolesAllowed("DEFAULT_ROLE_FOR_SERVER") public final void purgeAlarmsByCount(final int filterId, final DVLExporterVO exporterVO, final long retainCount) { - String commonQuery; - String deleteQuery = null; - String archiveQuery = null; + try + { + StringBuilder deleteQuery = new StringBuilder(); + StringBuilder deleteQuery1 = new StringBuilder(); + StringBuilder alarmArchiveQuery = new StringBuilder(); + StringBuilder eventLogsArchiveQuery = new StringBuilder(); long purgeCount = getAllAlarmsCount() - retainCount; if (purgeCount < 1) { return; } - commonQuery = " order by updatedtime "; if (ServerSettings.getDatabase() == ServerSettings.MYSQL) { - deleteQuery = DELETE_COMMONQUERY + commonQuery + LIMIT + purgeCount; - archiveQuery = ARCHIVE_COMMONQUERY + LIMIT + purgeCount; + deleteQuery.append(" DELETE alm , evnt "); + deleteQuery.append(" FROM ALARM as alm , "); + deleteQuery.append("(SELECT alarmid from ALARM where severityid = " + AlarmConstants.CLEARED_ID + " ORDER BY updatedtime LIMIT " + + purgeCount + " ) as limitedAlarm ,"); + deleteQuery.append(" EVENTLOGS as evnt , EVENTALARMMAPPING as mapping "); + deleteQuery.append(" where alm.alarmid = limitedAlarm.alarmid "); + deleteQuery.append(" AND alm.alarmid = mapping.alarmid"); + deleteQuery.append(" AND mapping.eventid = evnt.eventid"); + + alarmArchiveQuery.append("SELECT alm.alarmid as alarmid, "); + alarmArchiveQuery + .append(" evntype.eventtype as eventtype, svty.severity as severity, alm.source as source, resource.resourcename as resourcename, "); + alarmArchiveQuery + .append(" alm.componentid as componentid, alm.category as category, alm.createdtime as createdtime, alm.updatedtime as updatedtime, "); + alarmArchiveQuery.append(" alm.owner as owner, alm.ackstatus as ackstatus, alm.acktime as acktime, alm.clearedtime as clearedtime, "); + alarmArchiveQuery.append(" alm.message as message, alm.remedy as remedy, alm.version as version "); + alarmArchiveQuery.append(" FROM ALARM as alm , EVENTTYPE as evntype , RESOURCEDETAILS as resource ,SEVERITY as svty, "); + alarmArchiveQuery.append(" (SELECT alarmid from ALARM where severityid = " + AlarmConstants.CLEARED_ID + " ORDER BY updatedtime LIMIT " + + purgeCount + " ) as limitedAlarm "); + alarmArchiveQuery.append(" WHERE resource.resourceid = alm.resourceid "); + alarmArchiveQuery.append(" AND evntype.eventtypeid = alm.eventtypeid "); + alarmArchiveQuery.append(" AND svty.severityid =alm.severityid "); + alarmArchiveQuery.append(" AND alm.alarmid = limitedAlarm.alarmid "); + + eventLogsArchiveQuery.append("SELECT evnt.eventid as eventid, "); + eventLogsArchiveQuery.append(" evntype.eventtype as eventtype,svty.severity as severity,evnt.source,evnt.category, "); + eventLogsArchiveQuery.append(" resource.resourcename as resourcename,evnt.componentid,evnt.eventtime as eventtime, "); + eventLogsArchiveQuery.append(" evnt.message as message,evnt.remedy as remedy,evnt.version as version FROM "); + eventLogsArchiveQuery.append(" EVENTLOGS evnt, EVENTALARMMAPPING as mapping,EVENTTYPE evntype, SEVERITY svty,RESOURCEDETAILS resource, "); + eventLogsArchiveQuery.append(" (SELECT alarmid from ALARM where severityid = " + AlarmConstants.CLEARED_ID + " ORDER BY updatedtime LIMIT " + + purgeCount + " ) as limitedAlarm "); + eventLogsArchiveQuery.append(" WHERE evnt.eventtypeid != 4 AND evntype.eventtypeid = evnt.eventtypeid "); + eventLogsArchiveQuery.append(" AND evnt.severityid=svty.severityid AND resource.resourceid = evnt.resourceid "); + eventLogsArchiveQuery.append(" AND limitedAlarm.alarmid = mapping.alarmid"); + eventLogsArchiveQuery.append(" AND mapping.eventid = evnt.eventid "); } else if (ServerSettings.getDatabase() == ServerSettings.ORACLE) { - deleteQuery = - "DELETE FROM ALARM where alarmid IN (SELECT alarmid FROM (SELECT * FROM ALARM order by updatedtime ) WHERE rownum <= " + purgeCount - + CLOSE_BRACKET + " and severityid = " + AlarmConstants.CLEARED_ID; - archiveQuery = - ARCHIVE_SELECTQUERY + " where alarmid IN (SELECT alarmid FROM (SELECT * FROM ALARM order by updatedtime ) WHERE rownum <= " + purgeCount - + CLOSE_BRACKET + " and a.severityid = " + AlarmConstants.CLEARED_ID - + " and a.severityid=s.severityid and a.eventtypeid = e.eventtypeid and a.resourceid = rd.resourceid"; + + deleteQuery.append(" DELETE FROM EVENTLOGS where eventid IN "); + deleteQuery.append(" (SELECT evnt.eventid FROM ALARM alm , "); + deleteQuery.append("(SELECT alarmid from ALARM where severityid = " + AlarmConstants.CLEARED_ID + " AND rownum <= " + purgeCount + + " ORDER BY updatedtime) limitedAlarm ,"); + deleteQuery.append(" EVENTLOGS evnt , EVENTALARMMAPPING mapping "); + deleteQuery.append(" where alm.alarmid = limitedAlarm.alarmid "); + deleteQuery.append(" AND alm.alarmid = mapping.alarmid AND evnt.eventid=mapping.eventid)"); + + deleteQuery1.append("DELETE FROM ALARM where severityid = 1 AND rownum <= 2 ORDER BY updatedtime"); + alarmArchiveQuery.append(" SELECT alm.alarmid as alarmid, "); + alarmArchiveQuery.append(" evntype.eventtype as eventtype, svty.severity as severity, alm.source as source, r.resourcename as resourcename, "); + alarmArchiveQuery + .append(" alm.componentid as componentid, alm.category as category, alm.createdtime as createdtime, alm.updatedtime as updatedtime, "); + alarmArchiveQuery.append(" alm.owner as owner, alm.ackstatus as ackstatus, alm.acktime as acktime, alm.clearedtime as clearedtime, "); + alarmArchiveQuery.append(" alm.message as message, alm.remedy as remedy, alm.version as version "); + alarmArchiveQuery.append(" FROM ALARM alm , EVENTTYPE evntype , RESOURCEDETAILS r ,SEVERITY svty, "); + alarmArchiveQuery.append(" (SELECT alarmid from ALARM where severityid = " + AlarmConstants.CLEARED_ID + " AND rownum <= " + purgeCount + + " ORDER BY updatedtime) limitedAlarm "); + alarmArchiveQuery.append(" WHERE r.resourceid = alm.resourceid "); + alarmArchiveQuery.append(" AND evntype.eventtypeid = alm.eventtypeid "); + alarmArchiveQuery.append(" AND svty.severityid =alm.severityid "); + alarmArchiveQuery.append(" AND alm.alarmid = limitedAlarm.alarmid "); + + eventLogsArchiveQuery.append("SELECT evnt.eventid as eventid, "); + eventLogsArchiveQuery.append(" evntype.eventtype as eventtype,svty.severity as severity,evnt.source,evnt.category, "); + eventLogsArchiveQuery.append(" r.resourcename as resourcename,evnt.componentid,evnt.eventtime as eventtime, "); + eventLogsArchiveQuery.append(" evnt.message as message,evnt.remedy as remedy,evnt.version as version FROM "); + eventLogsArchiveQuery.append(" EVENTLOGS evnt, EVENTALARMMAPPING mapping,EVENTTYPE evntype, SEVERITY svty,RESOURCEDETAILS r, "); + eventLogsArchiveQuery.append(" (SELECT alarmid from ALARM where severityid "); + eventLogsArchiveQuery.append(" = " + AlarmConstants.CLEARED_ID + " AND rownum <= " + purgeCount); + eventLogsArchiveQuery.append(" ORDER BY updatedtime) limitedAlarm "); + eventLogsArchiveQuery.append(" WHERE evnt.eventtypeid != 4 AND evntype.eventtypeid = evnt.eventtypeid "); + eventLogsArchiveQuery.append(" AND evnt.severityid=svty.severityid AND r.resourceid = evnt.resourceid "); + eventLogsArchiveQuery.append(" AND limitedAlarm.alarmid = mapping.alarmid"); + eventLogsArchiveQuery.append(" AND mapping.eventid = evnt.eventid "); } - purge(deleteQuery, archiveQuery, filterId, exporterVO); + DVLExporterVO exporterVOLocal = exporterVO; + if (exporterVOLocal == null) + { + exporterVOLocal = new DVLExporterVO(); + exporterVOLocal.setExporterId(DVLExporterConstants.LOG_EXPORTER_ID); + exporterVOLocal.setExportType(DVLExporterConstants.WHOLEVIEW); + exporterVOLocal.setFileName(AlarmConstants.ALARM); + exporterVOLocal.setFileType(Constants.CSV_EXPORT); + exporterVOLocal.setDvlQuerryId(DVLExporterConstants.ARCHIVE_QUERY_ID); } + DVLExportManager.getInstance().exportData(eventLogsArchiveQuery.toString(), -1, exporterVOLocal); + purge(deleteQuery.toString(), alarmArchiveQuery.toString(), filterId, exporterVO, true); + if (ServerSettings.getDatabase() == ServerSettings.ORACLE) + { + purge(deleteQuery1.toString(), alarmArchiveQuery.toString(), filterId, exporterVO, false); + } + } + catch (Exception e) + { + LOG.error("ERROR in purgeAlarmsByCount due to , " + e.getMessage()); + } + } /** * To fetch the alarm count @@ -1265,7 +1390,7 @@ return false; } - private void purge(final String purgingQuery, final String archivingQuery, final int filterId, final DVLExporterVO exporterVO) + private void purge(final String purgingQuery, final String archivingQuery, final int filterId, final DVLExporterVO exporterVO, final boolean isArchive) { DVLExporterVO exporterVOLocal = exporterVO; @@ -1286,9 +1411,8 @@ exporterVOLocal.setFileType(Constants.CSV_EXPORT); exporterVOLocal.setDvlQuerryId(DVLExporterConstants.ARCHIVE_QUERY_ID); } - messObject.setExporterVO(exporterVOLocal); - Thread thread = new Thread(new PurgeAndArchiveOperation(messObject, true)); + Thread thread = new Thread(new PurgeAndArchiveOperation(messObject, isArchive)); thread.start(); } Index: Fault.AlarmManager/src/com/dhyan/nms/server/fault/alarmmanager/AlarmManager.java =================================================================== --- Fault.AlarmManager/src/com/dhyan/nms/server/fault/alarmmanager/AlarmManager.java (revision 6018) +++ Fault.AlarmManager/src/com/dhyan/nms/server/fault/alarmmanager/AlarmManager.java (working copy) @@ -28,6 +28,11 @@ import com.dnms.source.com.dhyan.nms.server.fault.resources.alarmcorreltion.Matchingfields; import com.dnms.source.com.dhyan.nms.server.fault.resources.alarmpublish.Alarmpublish; import com.dnms.source.com.dhyan.nms.server.fault.resources.alarmpublish.AlarmpublishDocument; +import com.dnms.source.com.dhyan.nms.server.fault.resources.classificationdetails.AlarmClassification; +import com.dnms.source.com.dhyan.nms.server.fault.resources.classificationdetails.AlarmClassificationDocument; +import com.dnms.source.com.dhyan.nms.server.fault.resources.classificationdetails.Alarmspecification; +import com.dnms.source.com.dhyan.nms.server.fault.resources.classificationdetails.FieldDetails; +import com.dnms.source.com.dhyan.nms.server.fault.resources.classificationdetails.MappingDetails; public final class AlarmManager { @@ -41,6 +46,7 @@ private String remedyHandling; private ArrayList publishFieldList = null; private boolean publishClearedAlarms = false; + private Alarmspecification[] alarmSpecList = null; /** * No-args constructor. All the member variables are initialized. @@ -54,6 +60,7 @@ loadAlarmCorrelator(); parseAlarmCorrelation(); loadPublishersFields(); + parseAlarmClassification(); } /** @@ -95,6 +102,129 @@ } } + private void parseAlarmClassification() + { + try + { + AlarmClassificationDocument document = + AlarmClassificationDocument.Factory.parse(AlarmManager.class.getResource("resources/AlarmClassification.xml")); + if (document != null) + { + AlarmClassification alarm_classification = document.getAlarmClassification(); + alarmSpecList = alarm_classification.getAlarmspecificationArray(); + } + } + catch (Exception e) + { + LOG.error("Exception occured while reading alarmcorrelationfieldmapping.xml file" + e.getMessage()); + } + } + + /** + * Method to retrieve trap details based on given alarm information. + * @param alarmDetails alarmDetails + * @return Trap + * @throws Exception Exception + */ + public boolean isDeviceAlarm(final Alarm alarmDetails) throws Exception + { + try + { + if (alarmSpecList != null && alarmSpecList.length > 0) + { + for (Alarmspecification alarm_value : alarmSpecList) + { + if (alarm_value.getType().trim().equalsIgnoreCase("DEVICE")) + { + return isMatchingAlarmDetails(alarm_value.getMappingDetailsArray(), alarmDetails); + } + } + } + else + { + throw new Exception("Problem in getting alarm specification details. Classification details not found"); + } + } + catch (Exception e) + { + LOG.error("Exception occured while getting TrapDetails " + e.getMessage()); + } + return false; + } + + /** + * Method to retrieve trap details based on given alarm information. + * @param alarmDetails alarmDetails + * @return Trap + * @throws Exception Exception + */ + public String getAlarmSpecificationType(final Alarm alarmDetails) throws Exception + { + try + { + if (alarmSpecList != null && alarmSpecList.length > 0) + { + boolean isMatch = false; + for (Alarmspecification alarm_value : alarmSpecList) + { + isMatch = isMatchingAlarmDetails(alarm_value.getMappingDetailsArray(), alarmDetails); + if (isMatch) + { + return alarm_value.getDisplayName(); + } + } + } + else + { + throw new Exception("Problem in getting alarm specification details. Classification details not found"); + } + } + catch (Exception e) + { + LOG.error("Exception occured while getting TrapDetails " + e.getMessage()); + } + return null; + } + + private boolean isMatchingAlarmDetails(final MappingDetails[] mappingFields, final Alarm alarmDetails) + { + if (mappingFields != null && mappingFields.length > 0) + { + MappingDetails mapping_field = mappingFields[0]; + boolean isFieldMapped = true; + String expectedValue = null; + String actualObject = null; + for (FieldDetails field_list : mapping_field.getFieldDetailsArray()) + { + expectedValue = field_list.getValue(); + actualObject = alarmDetails.get(field_list.getName()); + if (expectedValue == null || actualObject == null) + { + isFieldMapped = false; + break; + } + if (field_list.getOperation().toString().equalsIgnoreCase("EQUALS")) + { + if (!expectedValue.trim().equalsIgnoreCase(actualObject.toString())) + { + isFieldMapped = false; + break; + } + } + else + { + if (expectedValue.trim().equalsIgnoreCase(actualObject.toString())) + { + isFieldMapped = false; + break; + } + } + } + return isFieldMapped; + } + return false; + } + private AbstractAlarmCorrelator getAlarmCorrelatorIfc(final String correlatorClassName) { AbstractAlarmCorrelator correlatorIfc = null; Index: Fault.AlarmManager/src/com/dhyan/nms/server/fault/alarmmanager/resources/AlarmClassification.xsd =================================================================== --- Fault.AlarmManager/src/com/dhyan/nms/server/fault/alarmmanager/resources/AlarmClassification.xsd (revision 0) +++ Fault.AlarmManager/src/com/dhyan/nms/server/fault/alarmmanager/resources/AlarmClassification.xsd (revision 6048) @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Property changes on: Fault.AlarmManager/src/com/dhyan/nms/server/fault/alarmmanager/resources/AlarmClassification.xsd ___________________________________________________________________ Name: svn:mime-type + text/plain Index: Fault.AlarmManager/src/com/dhyan/nms/server/fault/alarmmanager/resources/AlarmClassification.xml =================================================================== --- Fault.AlarmManager/src/com/dhyan/nms/server/fault/alarmmanager/resources/AlarmClassification.xml (revision 0) +++ Fault.AlarmManager/src/com/dhyan/nms/server/fault/alarmmanager/resources/AlarmClassification.xml (revision 6048) @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Property changes on: Fault.AlarmManager/src/com/dhyan/nms/server/fault/alarmmanager/resources/AlarmClassification.xml ___________________________________________________________________ Name: svn:mime-type + text/plain Index: Web.Performance/WebContent/webresource/dashboard/scripts/DashboardConfigurator.js =================================================================== --- Web.Performance/WebContent/webresource/dashboard/scripts/DashboardConfigurator.js (revision 6018) +++ Web.Performance/WebContent/webresource/dashboard/scripts/DashboardConfigurator.js (working copy) @@ -298,7 +298,7 @@ } } this.setScrollerPosition(defaultOption); - setTimeout(function(){this.loadDashboard()}.bind(this), 150); + setTimeout(function(){this.loadDashboard();}.bind(this), 150); } catch(e) { @@ -468,7 +468,7 @@ { try { - this.stopRealTimeDataCollection(); + //this.stopRealTimeDataCollection(); this.slots = new Array(); this.drawSlots(); this.initDashboardLoader(); @@ -1690,12 +1690,12 @@ { postParam += "&filterCondition=" + $('slot_filter_selector_' + slotPosition[i]).value; } - if ($('slot_aggregate_selector_'+ slotPosition[i]) != null) - { + //if ($('slot_aggregate_selector_'+ slotPosition[i]) != null) + //{ //postParam += "&aggregateType=" + $('slot_aggregate_selector_'+ slotPosition[i]).value; postParam += "&aggregateType=3"; + //} } - } if ($('dashboardCategory').value == 2) { postParam += "&refreshInterval=" + $('slot_refreshInterval_'+ slotPosition[i]).value;