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;