You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metron.apache.org by rm...@apache.org on 2018/07/03 13:37:54 UTC

metron git commit: METRON-1635 Alerts UI status update doesn' t immediately show up (merrimanr) closes apache/metron#1080

Repository: metron
Updated Branches:
  refs/heads/master 097ce9503 -> 93276f87b


METRON-1635 Alerts UI status update doesn't immediately show up (merrimanr) closes apache/metron#1080


Project: http://git-wip-us.apache.org/repos/asf/metron/repo
Commit: http://git-wip-us.apache.org/repos/asf/metron/commit/93276f87
Tree: http://git-wip-us.apache.org/repos/asf/metron/tree/93276f87
Diff: http://git-wip-us.apache.org/repos/asf/metron/diff/93276f87

Branch: refs/heads/master
Commit: 93276f87b7dfb41b6fd1e6aa6d42895e422fe912
Parents: 097ce95
Author: merrimanr <me...@gmail.com>
Authored: Tue Jul 3 08:37:41 2018 -0500
Committer: rmerriman <me...@gmail.com>
Committed: Tue Jul 3 08:37:41 2018 -0500

----------------------------------------------------------------------
 .../alert-details/alert-details.component.ts    | 68 +++++++++-----------
 1 file changed, 30 insertions(+), 38 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/metron/blob/93276f87/metron-interface/metron-alerts/src/app/alerts/alert-details/alert-details.component.ts
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/src/app/alerts/alert-details/alert-details.component.ts b/metron-interface/metron-alerts/src/app/alerts/alert-details/alert-details.component.ts
index e68a8e0..2af79a8 100644
--- a/metron-interface/metron-alerts/src/app/alerts/alert-details/alert-details.component.ts
+++ b/metron-interface/metron-alerts/src/app/alerts/alert-details/alert-details.component.ts
@@ -93,20 +93,20 @@ export class AlertDetailsComponent implements OnInit {
     return false;
   }
 
-  getData(fireToggleEditor = false) {
+  getData() {
     this.alertCommentStr = '';
     this.searchService.getAlert(this.alertSourceType, this.alertId).subscribe(alertSource => {
-      this.alertSource = alertSource;
-      this.selectedAlertState = this.getAlertState(alertSource['alert_status']);
-      this.alertSources = (alertSource.metron_alert && alertSource.metron_alert.length > 0) ? alertSource.metron_alert : [alertSource];
+      this.setAlert(alertSource);
       this.setComments(alertSource['comments'] || []);
-
-      if (fireToggleEditor) {
-        this.toggleNameEditor();
-      }
     });
   }
 
+  setAlert(alertSource) {
+    this.alertSource = alertSource;
+    this.alertSources = (alertSource.metron_alert && alertSource.metron_alert.length > 0) ? alertSource.metron_alert : [alertSource];
+    this.selectedAlertState = this.getAlertState(alertSource['alert_status']);
+  }
+
   setComments(alertComments) {
     this.alertCommentsWrapper = alertComments.map(alertComment =>
         new AlertCommentWrapper(alertComment, moment(new Date(alertComment.timestamp)).fromNow()));
@@ -149,53 +149,39 @@ export class AlertDetailsComponent implements OnInit {
   }
 
   processOpen() {
-    let tAlert = new Alert();
-    tAlert.source = this.alertSource;
-
-    this.selectedAlertState = AlertState.OPEN;
-    this.updateService.updateAlertState([tAlert], 'OPEN').subscribe(results => {
-      this.getData();
-    });
+    this.updateAlertState('OPEN');
   }
 
   processNew() {
-    let tAlert = new Alert();
-    tAlert.source = this.alertSource;
-
-    this.selectedAlertState = AlertState.NEW;
-    this.updateService.updateAlertState([tAlert], 'NEW').subscribe(results => {
-      this.getData();
-    });
+    this.updateAlertState('NEW');
   }
 
   processEscalate() {
+    this.updateAlertState('ESCALATE');
+
     let tAlert = new Alert();
     tAlert.source = this.alertSource;
-
-    this.selectedAlertState = AlertState.ESCALATE;
-    this.updateService.updateAlertState([tAlert], 'ESCALATE').subscribe(results => {
-      this.getData();
-    });
     this.alertsService.escalate([tAlert]).subscribe();
   }
 
   processDismiss() {
-    let tAlert = new Alert();
-    tAlert.source = this.alertSource;
-
-    this.selectedAlertState = AlertState.DISMISS;
-    this.updateService.updateAlertState([tAlert], 'DISMISS').subscribe(results => {
-      this.getData();
-    });
+    this.updateAlertState('DISMISS');
   }
 
   processResolve() {
+    this.updateAlertState('RESOLVE');
+  }
+
+  updateAlertState(state: string) {
     let tAlert = new Alert();
     tAlert.source = this.alertSource;
 
-    this.selectedAlertState = AlertState.RESOLVE;
-    this.updateService.updateAlertState([tAlert], 'RESOLVE').subscribe(results => {
-      this.getData();
+    let previousAlertStatus = this.alertSource['alert_status'];
+    this.alertSource['alert_status'] = state;
+    this.setAlert(this.alertSource);
+    this.updateService.updateAlertState([tAlert], state).subscribe(() => {}, () => {
+      this.alertSource['alert_status'] = previousAlertStatus;
+      this.setAlert(this.alertSource);
     });
   }
 
@@ -213,8 +199,14 @@ export class AlertDetailsComponent implements OnInit {
       patchRequest.sensorType = 'metaalert';
       patchRequest.patch = [new Patch('add', '/name', this.alertName)];
 
+      let previousName = this.alertSource['name'];
+      this.alertSource['name'] = this.alertName;
       this.updateService.patch(patchRequest).subscribe(rep => {
-        this.getData(true);
+        this.toggleNameEditor();
+      }, () => {
+        this.alertSource['name'] = previousName;
+        this.alertName = previousName;
+        this.toggleNameEditor();
       });
     }
   }