From 37808b1b775f986744f9d34de5fe60c14d00c7fa Mon Sep 17 00:00:00 2001 From: Alexander Matyushentsev Date: Thu, 25 Oct 2018 09:46:06 -0700 Subject: [PATCH] Fix loading logs when ui and workflow are in different namespace --- VERSION | 1 + scripts/build_docker.sh | 6 +++++- src/api/app.ts | 8 +++++--- 3 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 VERSION diff --git a/VERSION b/VERSION new file mode 100644 index 00000000..7fe52d36 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +v2.2.1 diff --git a/scripts/build_docker.sh b/scripts/build_docker.sh index 43563225..b666c6d8 100755 --- a/scripts/build_docker.sh +++ b/scripts/build_docker.sh @@ -1,8 +1,12 @@ #!/bin/bash +CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" +GIT_COMMIT=`git rev-parse --short HEAD` +VERSION=`cat ${CURRENT_DIR}/../VERSION` + set -e -TAG=${IMAGE_TAG:-'latest'} +TAG=${IMAGE_TAG:-"$VERSION-$GIT_COMMIT"} docker build --build-arg ARGO_VERSION=${TAG} -t ${IMAGE_NAMESPACE:-`whoami`}/argoui:${TAG} . diff --git a/src/api/app.ts b/src/api/app.ts index 396ee6f6..f9ea1bb4 100644 --- a/src/api/app.ts +++ b/src/api/app.ts @@ -101,18 +101,20 @@ export function create( async (req, res) => serve(res, () => (forceNamespaceIsolation ? crd.ns(namespace) : crd.ns(req.params.namespace)).workflows.get(req.params.name))); app.get('/api/workflows/live', async (req, res) => { + const ns = getNamespace(req); + let updatesSource = new Observable((observer: Observer) => { const labelSelector = getWorkflowLabelSelector(req); - let stream = crd.ns(req.params.namespace).workflows.getStream({ qs: { watch: true, labelSelector: labelSelector.join(',') } }); + let stream = (ns ? crd.ns(ns) : crd).workflows.getStream({ qs: { watch: true, labelSelector: labelSelector.join(',') } }); stream.on('end', () => observer.complete()); stream.on('error', (e) => observer.error(e)); stream.on('close', () => observer.complete()); stream = stream.pipe(new JSONStream()); stream.on('data', (data) => data && observer.next(data)); }); - if (forceNamespaceIsolation || req.query.namespace) { + if (ns) { updatesSource = updatesSource.filter((change) => { - return change.object.metadata.namespace === forceNamespaceIsolation ? namespace : req.query.namespace; + return change.object.metadata.namespace === ns; }); } if (req.query.name) {