You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2022/10/21 13:58:19 UTC

[brooklyn-ui] 10/24: update active tasks and workflows more often

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

heneveld pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brooklyn-ui.git

commit d14c56c011d2d31565d9c67b3ad3b5b3b6cbcafe
Author: Alex Heneveld <al...@cloudsoft.io>
AuthorDate: Thu Oct 6 14:54:05 2022 +0100

    update active tasks and workflows more often
---
 .../inspect/activities/activities.controller.js    | 23 ----------------------
 .../inspect/activities/detail/detail.controller.js |  9 +++------
 .../providers/api-observer-interceptor.provider.js |  6 +++++-
 ui-modules/utils/utils/momentp.js                  |  1 +
 4 files changed, 9 insertions(+), 30 deletions(-)

diff --git a/ui-modules/app-inspector/app/views/main/inspect/activities/activities.controller.js b/ui-modules/app-inspector/app/views/main/inspect/activities/activities.controller.js
index 39f0622b..3e561ee8 100644
--- a/ui-modules/app-inspector/app/views/main/inspect/activities/activities.controller.js
+++ b/ui-modules/app-inspector/app/views/main/inspect/activities/activities.controller.js
@@ -86,7 +86,6 @@ function ActivitiesController($scope, $state, $stateParams, $log, $timeout, enti
                     newActivity.isWorkflowOldReplay = wft.workflowId !== wft.taskId;
                 });
             });
-            newActivitiesMap['extra'] = makeTaskStubMock("Extra workflow", "extra", applicationId, entityId);
 
             vm.activitiesMap = newActivitiesMap;
             vm.activities = Object.values(vm.activitiesMap);
@@ -166,25 +165,3 @@ export function makeTaskStubFromWorkflowRecord(wf, wft) {
         ],
     };
 };
-
-// for testing only
-export function makeTaskStubMock(name, id, applicationId, entityId) {
-    return {
-        id,
-        displayName: name,
-        entityId: entityId,
-        isError: true,
-        currentStatus: "Unavailable",
-        submitTimeUtc: Date.now()-5000,
-        startTimeUtc: Date.now()-4000,
-        endTimeUtc: Date.now()-1000,
-        tags: [
-            "WORKFLOW",
-            {
-                workflowId: 'extra',
-                applicationId: applicationId,
-                entityId: entityId,
-            },
-        ],
-    };
-}
diff --git a/ui-modules/app-inspector/app/views/main/inspect/activities/detail/detail.controller.js b/ui-modules/app-inspector/app/views/main/inspect/activities/detail/detail.controller.js
index b8dfc022..a106bc04 100644
--- a/ui-modules/app-inspector/app/views/main/inspect/activities/detail/detail.controller.js
+++ b/ui-modules/app-inspector/app/views/main/inspect/activities/detail/detail.controller.js
@@ -19,7 +19,7 @@
 import {HIDE_INTERSTITIAL_SPINNER_EVENT} from 'brooklyn-ui-utils/interstitial-spinner/interstitial-spinner';
 import template from "./detail.template.html";
 import modalTemplate from './kilt.modal.template.html';
-import {makeTaskStubFromWorkflowRecord, makeTaskStubMock} from "../activities.controller";
+import {makeTaskStubFromWorkflowRecord} from "../activities.controller";
 
 export const detailState = {
     name: 'main.inspect.activities.detail',
@@ -92,6 +92,7 @@ function DetailController($scope, $state, $stateParams, $log, $uibModal, $timeou
                 }
                 if (!vm.actions.workflowReplays.length) delete vm.actions['workflowReplays'];
 
+                if (vm.model.workflow.data.status === 'RUNNING') wResponse.interval(1000);
                 observers.push(wResponse.subscribe((wResponse2)=> {
                     // change the workflow object so widgets get refreshed
                     vm.model.workflow = { ...vm.model.workflow, data: wResponse2.data };
@@ -139,6 +140,7 @@ function DetailController($scope, $state, $stateParams, $log, $uibModal, $timeou
             }
 
             vm.error = undefined;
+            if (!vm.model.activity.endTimeUtc || vm.model.activity.endTimeUtc<0) response.interval(1000);
             observers.push(response.subscribe((response)=> {
                 vm.model.activity = response.data;
                 vm.error = undefined;
@@ -171,11 +173,6 @@ function DetailController($scope, $state, $stateParams, $log, $uibModal, $timeou
 
             }).catch(error2 => {
                 $log.debug("ID "+activityId+" does not correspond to workflow either", error2);
-
-                // vm.error = $sce.trustAsHtml('Mock data for workflow task <b>' + _.escape(activityId) + '</b>.');
-                //
-                // vm.model.activity = makeTaskStubMock("Extra workflow task", "extra", applicationId, entityId);
-                // vm.model.workflow.tag = findWorkflowTag(vm.model.activity);
             });
         });
 
diff --git a/ui-modules/utils/providers/api-observer-interceptor.provider.js b/ui-modules/utils/providers/api-observer-interceptor.provider.js
index 2720b663..a5ab9f4b 100644
--- a/ui-modules/utils/providers/api-observer-interceptor.provider.js
+++ b/ui-modules/utils/providers/api-observer-interceptor.provider.js
@@ -48,9 +48,13 @@ export function apiObserverInterceptorProvider() {
 
             function doDriveBy(response, error = false) {
                 if (response.config.hasOwnProperty(OBSERVABLE) && response.config[OBSERVABLE]) {
+                    response.clock = clock;
+                    response.interval = (interval) => {
+                        response.clock = Observable.interval(interval);
+                    }
                     response.subscribe = (next, error, complete)=> {
                         if (!OBSERVER_CACHE.has(response.config.url)) {
-                            OBSERVER_CACHE.set(response.config.url, clock.mapTo(coldObservableFactory(response.config)).exhaust().share());
+                            OBSERVER_CACHE.set(response.config.url, response.clock.mapTo(coldObservableFactory(response.config)).exhaust().share());
                         }
                         return OBSERVER_CACHE.get(response.config.url).subscribe(next, error, complete);
                     }
diff --git a/ui-modules/utils/utils/momentp.js b/ui-modules/utils/utils/momentp.js
index d8691736..a0beb714 100644
--- a/ui-modules/utils/utils/momentp.js
+++ b/ui-modules/utils/utils/momentp.js
@@ -22,6 +22,7 @@
 import {capitalize, rounded} from "./general";
 
 export class MomentPrecise {
+    // means all time-ago round to 5s which is a nicer UX than constantly updating (even if occasionally misleading)
     precisionForFromNow = 5000;
     summaryForBelowPrecisionThreshhold = "a few seconds";
     capitalized = false;