You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwhisk.apache.org by cs...@apache.org on 2018/03/10 03:47:31 UTC

[incubator-openwhisk-package-alarms] branch master updated: redundant provider not being notified to remove expired trigger (#137)

This is an automated email from the ASF dual-hosted git repository.

csantanapr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-openwhisk-package-alarms.git


The following commit(s) were added to refs/heads/master by this push:
     new f0c2990  redundant provider not being notified to remove expired trigger (#137)
f0c2990 is described below

commit f0c2990e065062be9c7f68c6b6a962897e04721e
Author: Jason Peterson <ja...@us.ibm.com>
AuthorDate: Fri Mar 9 22:47:29 2018 -0500

    redundant provider not being notified to remove expired trigger (#137)
---
 provider/lib/sanitizer.js | 39 +++++++++++++++++++++++++++++++++++++++
 provider/lib/utils.js     |  5 ++---
 2 files changed, 41 insertions(+), 3 deletions(-)

diff --git a/provider/lib/sanitizer.js b/provider/lib/sanitizer.js
index 8f8cd26..cb173d2 100644
--- a/provider/lib/sanitizer.js
+++ b/provider/lib/sanitizer.js
@@ -143,4 +143,43 @@ module.exports = function(logger, triggerDB, uriHost) {
         });
     };
 
+    this.deleteTriggerFeed = function(triggerID) {
+        var method = 'deleteTriggerFeed';
+
+        return new Promise(function(resolve, reject) {
+            triggerDB.get(triggerID, function (err, existing) {
+                if (!err) {
+                    if (!existing.status || existing.status.active === true) {
+                        var updatedTrigger = existing;
+                        var status = {
+                            'active': false,
+                            'dateChanged': Date.now(),
+                            'reason': {'kind': 'AUTO', 'statusCode': undefined, 'message': `Marked for deletion`}
+                        };
+                        updatedTrigger.status = status;
+
+                        triggerDB.insert(updatedTrigger, triggerID, function (err) {
+                            if (err) {
+                                reject(err);
+                            }
+                            else {
+                                resolve(triggerID);
+                            }
+                        });
+                    }
+                }
+                else {
+                    reject(err);
+                }
+            });
+        })
+        .then(triggerID => {
+            sanitizer.deleteTriggerFromDB(triggerID, 0);
+        })
+        .catch(err => {
+            logger.error(method, triggerID, 'an error occurred while deleting the trigger feed', err);
+        });
+
+    };
+
 };
diff --git a/provider/lib/utils.js b/provider/lib/utils.js
index ba38adf..a4d5072 100644
--- a/provider/lib/utils.js
+++ b/provider/lib/utils.js
@@ -182,10 +182,9 @@ module.exports = function(logger, triggerDB, redisClient) {
         var triggerIdentifier = dataTrigger.triggerID;
         if (dataTrigger.date) {
             if (dataTrigger.deleteAfterFire && dataTrigger.deleteAfterFire !== 'false') {
-                utils.stopTrigger(triggerIdentifier);
 
                 //delete trigger feed from database
-                utils.sanitizer.deleteTriggerFromDB(triggerIdentifier, 0);
+                utils.sanitizer.deleteTriggerFeed(triggerIdentifier);
 
                 //check if trigger and all associated rules should be deleted
                 if (dataTrigger.deleteAfterFire === 'rules') {
@@ -194,7 +193,7 @@ module.exports = function(logger, triggerDB, redisClient) {
                 else {
                     var auth = dataTrigger.apikey.split(':');
                     utils.sanitizer.deleteTrigger(dataTrigger, auth, 0)
-                    .then((info) => {
+                    .then(info => {
                         logger.info(method, triggerIdentifier, info);
                     })
                     .catch(err => {

-- 
To stop receiving notification emails like this one, please contact
csantanapr@apache.org.