Skip to content

Commit

Permalink
fabric implementation of #840 so we can query all containers with cam…
Browse files Browse the repository at this point in the history
…el in them and create a unified diagram
  • Loading branch information
jstrachan committed Dec 13, 2013
1 parent 1de2563 commit bbb0feb
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 12 deletions.
24 changes: 12 additions & 12 deletions hawtio-web/src/main/webapp/app/camel/js/fabricDiagram.ts
Expand Up @@ -261,8 +261,8 @@ module Camel {
});

if (isFmc) {
// TODO query all the containers with camel; then for each container query the mbeans...
//Core.register(jolokia, $scope, {type: 'exec', mbean: Fabric.mqManagerMBean, operation: "loadBrokerStatus()"}, onSuccess(onBrokerData));
var fields = ["id", "alive", "parentId", "profileIds", "versionId", "provisionResult", "jolokiaUrl", "jmxDomains"];
Fabric.getContainersFields(jolokia, fields, onFabricContainerData);
} else {
// lets just use the current stuff from the workspace
$scope.$watch('workspace.tree', function () {
Expand All @@ -275,34 +275,27 @@ module Camel {
}

function reloadLocalJmxTree() {
console.log("reloading the camel nodes locally!!!");

var domainName = Camel.jmxDomain;

var localContainer = {
jolokia: jolokia
};
$scope.activeContainers = {
"local": localContainer
};

redrawGraph();
}


function onBrokerData(response) {
function onFabricContainerData(response) {
if (response) {
var responseJson = angular.toJson(response.value);
var responseJson = angular.toJson(response);
if ($scope.responseJson === responseJson) {
return;
}

$scope.responseJson = responseJson;

$scope.brokers = response.value;

var containersToDelete = $scope.activeContainers || {};
$scope.activeContainers = {};
$scope.activeContainers = (response || {}).filter(c => c.jmxDomains.any(Camel.jmxDomain));

// query containers which have camel...
redrawGraph();
Expand All @@ -315,6 +308,13 @@ module Camel {
// TODO delete any nodes from dead containers in containersToDelete
angular.forEach($scope.activeContainers, (container, id) => {
var containerJolokia = container.jolokia;
if (!containerJolokia) {
var jolokiaUrl = container["jolokiaUrl"];
if (jolokiaUrl) {
var url = Core.useProxyIfExternal(jolokiaUrl);
containerJolokia = Fabric.createJolokia(url);
}
}
if (containerJolokia) {
onContainerJolokia(containerJolokia, container);
} else {
Expand Down
11 changes: 11 additions & 0 deletions hawtio-web/src/main/webapp/app/fabric/js/fabricHelpers.ts
Expand Up @@ -998,6 +998,17 @@ module Fabric {
return answer.filter({root: true}).map(v => v["id"]);
}

/**
* Queries the given fields on the contianers in the fabric invoking the given function or returning the results if the fn is null
* @param jolokia
* @param fields
* @param fn
* @return the result if fn is null
*/
export function getContainersFields(jolokia, fields, fn = null) {
return jolokia.execute(Fabric.managerMBean, "containers(java.util.List)", fields, onSuccess(fn));
}

export function getOpenShiftDomains(workspace ,jolokia, serverUrl, login, password, fn = null, onError = null) {
if (hasOpenShiftFabric(workspace) && serverUrl && login && password) {
var options = onSuccess(fn, {error: onError});
Expand Down

0 comments on commit bbb0feb

Please sign in to comment.