You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwhisk.apache.org by be...@apache.org on 2017/07/18 18:21:59 UTC

[incubator-openwhisk-package-cloudant] branch master updated: Handle db connection error during follow (#119)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 5970ecf  Handle db connection error during follow (#119)
5970ecf is described below

commit 5970ecfb55f7452ff672cf85cb0276c1f778f8a3
Author: Jason Peterson <ja...@us.ibm.com>
AuthorDate: Tue Jul 18 14:21:58 2017 -0400

    Handle db connection error during follow (#119)
---
 provider/lib/utils.js | 71 +++++++++++++++++++++++++++++++--------------------
 1 file changed, 43 insertions(+), 28 deletions(-)

diff --git a/provider/lib/utils.js b/provider/lib/utils.js
index 06d9d4d..38d9c1f 100644
--- a/provider/lib/utils.js
+++ b/provider/lib/utils.js
@@ -309,34 +309,49 @@ module.exports = function(
     this.setupFollow = function(seq) {
         var method = 'setupFollow';
 
-        var feed = triggerDB.follow({ since: seq, include_docs: true, filter: ddname + '/' + filter, query_params: { worker: utils.worker } });
+        try {
+            var feed = triggerDB.follow({
+                since: seq,
+                include_docs: true,
+                filter: ddname + '/' + filter,
+                query_params: {worker: utils.worker}
+            });
 
-        feed.on('change', (change) => {
-            var triggerIdentifier = change.id;
-            var doc = change.doc;
+            feed.on('change', (change) => {
+                var triggerIdentifier = change.id;
+                var doc = change.doc;
 
-            logger.info(method, 'got change for trigger', triggerIdentifier);
+                logger.info(method, 'got change for trigger', triggerIdentifier);
 
-            if (utils.triggers[triggerIdentifier]) {
-                if (doc.status && doc.status.active === false) {
-                    utils.deleteTrigger(triggerIdentifier);
+                if (utils.triggers[triggerIdentifier]) {
+                    if (doc.status && doc.status.active === false) {
+                        utils.deleteTrigger(triggerIdentifier);
+                    }
                 }
-            }
-            else {
-                //ignore changes to disabled triggers
-                if (!doc.status || doc.status.active === true) {
-                    utils.createTrigger(utils.initTrigger(doc))
-                    .then(triggerIdentifier => {
-                        logger.info(method, triggerIdentifier, 'created successfully');
-                    }).catch(err => {
-                        var message = 'Automatically disabled after receiving exception on create trigger: ' + err;
-                        utils.disableTrigger(triggerIdentifier, undefined, message);
-                        logger.error(method, 'Disabled trigger', triggerIdentifier, 'due to exception:', err);
-                    });
+                else {
+                    //ignore changes to disabled triggers
+                    if (!doc.status || doc.status.active === true) {
+                        utils.createTrigger(utils.initTrigger(doc))
+                        .then(triggerIdentifier => {
+                            logger.info(method, triggerIdentifier, 'created successfully');
+                        }).catch(err => {
+                            var message = 'Automatically disabled after receiving exception on create trigger: ' + err;
+                            utils.disableTrigger(triggerIdentifier, undefined, message);
+                            logger.error(method, 'Disabled trigger', triggerIdentifier, 'due to exception:', err);
+                        });
+                    }
                 }
-            }
-        });
-        feed.follow();
+            });
+
+            feed.on('error', function (err) {
+                logger.error(method, err);
+            });
+
+            feed.follow();
+        }
+        catch (err) {
+            logger.error(method, err);
+        }
     };
 
     this.authorize = function(req, res, next) {
@@ -423,11 +438,11 @@ module.exports = function(
                 redisClient.hgetAsync(utils.redisHash, utils.redisKey)
                 .then(activeHost => {
                     return utils.initActiveHost(activeHost);
-                    })
-                    .then(resolve)
-                    .catch(err => {
-                        reject(err);
-                    });
+                })
+                .then(resolve)
+                .catch(err => {
+                    reject(err);
+                });
             }
             else {
                 resolve();

-- 
To stop receiving notification emails like this one, please contact
['"commits@openwhisk.apache.org" <co...@openwhisk.apache.org>'].