You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwhisk.apache.org by ja...@apache.org on 2019/11/20 17:10:26 UTC

[openwhisk-package-kafka] branch master updated: Allow feed to be deleted if trigger does not exist (#359)

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

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


View the commit online:
https://github.com/apache/openwhisk-package-kafka/commit/b6e1d0d736cb074f5c33d4f154565e9088bb8e37

The following commit(s) were added to refs/heads/master by this push:
     new b6e1d0d  Allow feed to be deleted if trigger does not exist (#359)
b6e1d0d is described below

commit b6e1d0d736cb074f5c33d4f154565e9088bb8e37
Author: James Dubee <jw...@us.ibm.com>
AuthorDate: Wed Nov 20 12:10:20 2019 -0500

    Allow feed to be deleted if trigger does not exist (#359)
---
 action/kafkaFeedWeb.js      | 12 ++++++------
 action/lib/common.js        | 10 +++++++---
 action/messageHubFeedWeb.js | 12 ++++++------
 3 files changed, 19 insertions(+), 15 deletions(-)

diff --git a/action/kafkaFeedWeb.js b/action/kafkaFeedWeb.js
index fb46096..1886107 100644
--- a/action/kafkaFeedWeb.js
+++ b/action/kafkaFeedWeb.js
@@ -47,7 +47,7 @@ function main(params) {
                     // do these in parallel!
                     return Promise.all([
                         db.ensureTriggerIsUnique(validatedParams.triggerName),
-                        verifyTriggerAuth(validatedParams.triggerURL, params.authKey)
+                        verifyTriggerAuth(validatedParams.triggerURL, params.authKey, true)
                     ]);
                 })
                 .then(() => {
@@ -82,7 +82,7 @@ function main(params) {
         } else if (params.__ow_method === "get") {
             const triggerURL = common.getTriggerURL(params.endpoint, params.triggerName);
 
-            return verifyTriggerAuth(triggerURL, params.authKey)
+            return verifyTriggerAuth(triggerURL, params.authKey, true)
                 .then(() => {
                     db = new Database(params.DB_URL, params.DB_NAME);
                     return db.getTrigger(params.triggerName);
@@ -112,7 +112,7 @@ function main(params) {
         } else if (params.__ow_method === "put") {
             const triggerURL = common.getTriggerURL(params.endpoint, params.triggerName);
 
-            return verifyTriggerAuth(triggerURL, params.authKey)
+            return verifyTriggerAuth(triggerURL, params.authKey, true)
                 .then(() => {
                     db = new Database(params.DB_URL, params.DB_NAME);
                     return db.getTrigger(params.triggerName);
@@ -142,7 +142,7 @@ function main(params) {
         } else if (params.__ow_method === "delete") {
             const triggerURL = common.getTriggerURL(params.endpoint, params.triggerName);
 
-            return verifyTriggerAuth(triggerURL, params.authKey)
+            return verifyTriggerAuth(triggerURL, params.authKey, false)
                 .then(() => {
                     db = new Database(params.DB_URL, params.DB_NAME);
                     return db.deleteTrigger(params.triggerName);
@@ -195,9 +195,9 @@ function validateParameters(rawParams) {
     return promise;
 }
 
-function verifyTriggerAuth(triggerURL, apiKey) {
+function verifyTriggerAuth(triggerURL, apiKey, rejectNotFound) {
     var auth = apiKey.split(':');
-    return common.verifyTriggerAuth(triggerURL, { user: auth[0], pass: auth[1] });
+    return common.verifyTriggerAuth(triggerURL, { user: auth[0], pass: auth[1] }, rejectNotFound);
 }
 
 exports.main = main;
diff --git a/action/lib/common.js b/action/lib/common.js
index e55d22b..e154d13 100644
--- a/action/lib/common.js
+++ b/action/lib/common.js
@@ -38,7 +38,7 @@ function getTriggerURL(endpoint, triggerName) {
     return url;
 }
 
-function verifyTriggerAuth(triggerURL, auth) {
+function verifyTriggerAuth(triggerURL, auth, rejectNotFound) {
     var options = {
         method: 'GET',
         url: triggerURL,
@@ -52,8 +52,12 @@ function verifyTriggerAuth(triggerURL, auth) {
 
     return request(options)
         .catch(err => {
-            console.log(`Trigger auth error: ${JSON.stringify(err)}`);
-            return Promise.reject({ authError: 'You are not authorized for this trigger.'});
+            if (err.statusCode && err.statusCode === 404 && !rejectNotFound) {
+                return Promise.resolve()
+            } else {
+                console.log(`Trigger auth error: ${JSON.stringify(err)}`);
+                return Promise.reject({ authError: 'You are not authorized for this trigger.'});
+            }
         });
 }
 
diff --git a/action/messageHubFeedWeb.js b/action/messageHubFeedWeb.js
index 779e700..e1fb9d8 100644
--- a/action/messageHubFeedWeb.js
+++ b/action/messageHubFeedWeb.js
@@ -50,7 +50,7 @@ function main(params) {
                     // do these in parallel!
                     return Promise.all([
                         db.ensureTriggerIsUnique(validatedParams.triggerName),
-                        verifyTriggerAuth(validatedParams.triggerURL, params.authKey, params.isIamKey, params.iamUrl),
+                        verifyTriggerAuth(validatedParams.triggerURL, params.authKey, params.isIamKey, params.iamUrl, true),
                         checkMessageHubCredentials(validatedParams)
                     ]);
                 })
@@ -86,7 +86,7 @@ function main(params) {
         } else if (params.__ow_method === "get") {
             const triggerURL = common.getTriggerURL(params.endpoint, params.triggerName);
 
-            return verifyTriggerAuth(triggerURL, params.authKey, params.isIamKey, params.iamUrl)
+            return verifyTriggerAuth(triggerURL, params.authKey, params.isIamKey, params.iamUrl, true)
                 .then(() => {
                     db = new Database(params.DB_URL, params.DB_NAME);
                     return db.getTrigger(params.triggerName);
@@ -119,7 +119,7 @@ function main(params) {
         } else if (params.__ow_method === "put") {
             const triggerURL = common.getTriggerURL(params.endpoint, params.triggerName);
 
-            return verifyTriggerAuth(triggerURL, params.authKey, params.isIamKey, params.iamUrl)
+            return verifyTriggerAuth(triggerURL, params.authKey, params.isIamKey, params.iamUrl, true)
                 .then(() => {
                     db = new Database(params.DB_URL, params.DB_NAME);
                     return db.getTrigger(params.triggerName);
@@ -149,7 +149,7 @@ function main(params) {
         } else if (params.__ow_method === "delete") {
             const triggerURL = common.getTriggerURL(params.endpoint, params.triggerName);
 
-            return verifyTriggerAuth(triggerURL, params.authKey, params.isIamKey, params.iamUrl)
+            return verifyTriggerAuth(triggerURL, params.authKey, params.isIamKey, params.iamUrl, false)
                 .then(() => {
                     db = new Database(params.DB_URL, params.DB_NAME);
                     return db.deleteTrigger(params.triggerName);
@@ -293,12 +293,12 @@ function checkMessageHubCredentials(params) {
         });
 }
 
-function verifyTriggerAuth(triggerURL, apiKey, isIamKey, iamUrl) {
+function verifyTriggerAuth(triggerURL, apiKey, isIamKey, iamUrl, rejectNotFound) {
     if (isIamKey === true) {
         return new itm({ 'iamApikey': apiKey, 'iamUrl': iamUrl }).getToken().then( token => common.verifyTriggerAuth(triggerURL, { bearer: token }));
     } else {
         var auth = apiKey.split(':');
-        return common.verifyTriggerAuth(triggerURL, { user: auth[0], pass: auth[1] });
+        return common.verifyTriggerAuth(triggerURL, { user: auth[0], pass: auth[1] }, rejectNotFound);
     }
 }