You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2019/07/25 15:28:01 UTC
[sling-whiteboard] 04/04: Openwhisk action selection based on
annotations
This is an automated email from the ASF dual-hosted git repository.
bdelacretaz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-whiteboard.git
commit 538f7b3bbe82109a89840d20fc5d8e15ac33c9ec
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Thu Jul 25 17:27:46 2019 +0200
Openwhisk action selection based on annotations
---
serverless-microsling/lib/openwhisk-renderer.js | 41 +++++++++++++++++--------
serverless-microsling/lib/render.js | 2 +-
2 files changed, 29 insertions(+), 14 deletions(-)
diff --git a/serverless-microsling/lib/openwhisk-renderer.js b/serverless-microsling/lib/openwhisk-renderer.js
index 9097096..e5544f7 100644
--- a/serverless-microsling/lib/openwhisk-renderer.js
+++ b/serverless-microsling/lib/openwhisk-renderer.js
@@ -23,22 +23,37 @@ const getAnnotation = (act, key) => {
return annotation ? annotation.value : undefined;
}
- const renderer = {
- contentType: 'text/html_TODO',
- appliesTo : async (resourceType, extension) => {
- return new Promise(resolve => {
- openwhisk().actions.list()
- .then(actions => {
- const act = actions.find(act => {
- return resourceType == getAnnotation(act, 'sling:resourceType') && extension == getAnnotation(act, 'sling:extensions')
- })
- resolve(act);
- });
+const getAction = async (resourceType, extension) => {
+ return new Promise(resolve => {
+ var ow = openwhisk();
+ ow.actions.list()
+ .then(actions => {
+ const act = actions.find(act => {
+ return resourceType == getAnnotation(act, 'sling:resourceType') && extension == getAnnotation(act, 'sling:extensions')
+ })
+ resolve(act);
+ })
+ .catch(e => {
+ throw e;
})
+ })
+};
+
+ const renderer = {
+ contentType: 'text/html',
+ appliesTo : async (resourceType, extension) => {
+ return getAction(resourceType, extension)
},
render : (resource, action) => {
- console.log(`TODO: render using ${action}`);
+ return `TODO: render using ${action ? action.name : null}`;
},
}
-module.exports.openWhiskRenderer = renderer;
\ No newline at end of file
+function main () {
+ return new Promise(resolve => {
+ resolve(getAction('microsling/somedoc', 'html'));
+ });
+}
+
+module.exports.openWhiskRenderer = renderer;
+module.exports.main = main;
\ No newline at end of file
diff --git a/serverless-microsling/lib/render.js b/serverless-microsling/lib/render.js
index 168fb2e..b78b3c5 100644
--- a/serverless-microsling/lib/render.js
+++ b/serverless-microsling/lib/render.js
@@ -63,7 +63,7 @@ const defaultHtmlRenderer = {
}
const renderers = [
- //openWhiskRenderer,
+ openWhiskRenderer,
defaultTextRenderer,
defaultHtmlRenderer,
defaultJsonRenderer