This is an automated email from the ASF dual-hosted git repository. jbertram pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/activemq-artemis-console.git
commit c377c4624be42049810823ee17d15413eac1e57d Author: Andy Taylor <[email protected]> AuthorDate: Mon Dec 9 17:19:54 2024 +0000 ARTEMIS-5204 - Backups not showing in console --- .../artemis-extension/public/css/activemq.css | 4 + .../artemis-extension/artemis/artemis-service.ts | 3 + .../artemis/brokers/BrokerDiagram.tsx | 89 +++++++++++++++++++++- 3 files changed, 95 insertions(+), 1 deletion(-) diff --git a/artemis-console-extension/artemis-extension/public/css/activemq.css b/artemis-console-extension/artemis-extension/public/css/activemq.css index 211ea38..979fdea 100644 --- a/artemis-console-extension/artemis-extension/public/css/activemq.css +++ b/artemis-console-extension/artemis-extension/public/css/activemq.css @@ -57,6 +57,10 @@ svg.pf-v5-svg { fill: #c12766; } +.pf-topology__node.artemisBackupBroker.pf-m-info .pf-topology__node__background { + stroke: #82171b; + fill: #cf242a; +} .pf-topology__node.artemisAddress.pf-m-info .pf-topology__node__background { stroke: #2b326e; diff --git a/artemis-console-extension/artemis-extension/src/artemis-extension/artemis/artemis-service.ts b/artemis-console-extension/artemis-extension/src/artemis-extension/artemis/artemis-service.ts index 52fd901..85e4ed7 100644 --- a/artemis-console-extension/artemis-extension/src/artemis-extension/artemis/artemis-service.ts +++ b/artemis-console-extension/artemis-extension/src/artemis-extension/artemis/artemis-service.ts @@ -206,6 +206,9 @@ class ArtemisService { return new Promise<BrokerTopology>(async (resolve, reject) => { try { var brokerInfo = await this.getBrokerInfo(); + var brokerObjectName = await this.brokerObjectName; + const topology = await jolokiaService.execute(brokerObjectName, LIST_NETWORK_TOPOLOGY_SIG) as string; + brokerInfo.networkTopology = new BrokerNetworkTopology(JSON.parse(topology)); var brokerTopology: BrokerTopology = { broker: brokerInfo, addresses: [] diff --git a/artemis-console-extension/artemis-extension/src/artemis-extension/artemis/brokers/BrokerDiagram.tsx b/artemis-console-extension/artemis-extension/src/artemis-extension/artemis/brokers/BrokerDiagram.tsx index 2823f0f..873dc2a 100644 --- a/artemis-console-extension/artemis-extension/src/artemis-extension/artemis/brokers/BrokerDiagram.tsx +++ b/artemis-console-extension/artemis-extension/src/artemis-extension/artemis/brokers/BrokerDiagram.tsx @@ -63,6 +63,7 @@ import { Attributes } from '@hawtio/react'; import { ToolbarItem, Select, SelectOption, Button, MenuToggleElement, MenuToggle, SelectList } from '@patternfly/react-core'; import { createAddressObjectName, createQueueObjectName } from '../util/jmx'; import { ArtemisContext } from '../context'; +import { log } from '../globals'; const BadgeColors = [ @@ -143,7 +144,35 @@ const BrokerCustomNode: React.FC<CustomNodeProps & WithSelectionProps & WithDrag {...rest} > <g transform={`translate(25, 25)`}> - <Icon style={{ color: '#393F44' }} width={25} height={25}></Icon> + <Icon style={{ color: '#000000', fill: '#000000' }} width={25} height={25}></Icon> + </g> + </DefaultNode> + ); +}; + +const BrokerBackupCustomNode: React.FC<CustomNodeProps & WithSelectionProps & WithDragNodeProps & WithDndDropProps> = ({ element, onSelect, selected, ...rest }) => { + const data = element.getData(); + const selectNode = data.selectNode; + const Icon = ClusterIcon; + const badgeColors = BadgeColors.find(badgeColor => badgeColor.name === data.badge); + const { viewOptions } = element.getController().getState<ControllerState>(); + + return ( + <DefaultNode + element={element} + showStatusDecorator + badge={data.badge} + badgeColor={badgeColors?.badgeColor} + badgeTextColor={badgeColors?.badgeTextColor} + badgeBorderColor={badgeColors?.badgeBorderColor} + showLabel={viewOptions.showLabels} + className="artemisBackupBroker" + onSelect={() => selectNode(data)} + selected={selected} + {...rest} + > + <g transform={`translate(25, 25)`}> + <Icon style={{ color: '#000000', fill: '#000000' }} width={25} height={25}></Icon> </g> </DefaultNode> ); @@ -185,6 +214,9 @@ const customComponentFactory: ComponentFactory = (kind: ModelKind, type: string) case 'broker': return withDndDrop(nodeDropTargetSpec([CONNECTOR_TARGET_DROP]))( withDragNode(nodeDragSourceSpec('node', true, true))(BrokerCustomNode)); + case 'backupBroker': + return withDndDrop(nodeDropTargetSpec([CONNECTOR_TARGET_DROP]))( + withDragNode(nodeDragSourceSpec('node', true, true))(BrokerBackupCustomNode)); case 'resource': return withDndDrop(nodeDropTargetSpec([CONNECTOR_TARGET_DROP]))( withDragNode(nodeDragSourceSpec('node', true, true))(ResourceNode)); @@ -408,6 +440,61 @@ export const BrokerDiagram: React.FunctionComponent = () => { }; newBrokerEdges.push(brokerEdge); } + if(broker.backup) { + log.debug("adding backup to this live") + var backupBrokerNode: NodeModel = { + id: broker.nodeID + "backup", + type: 'backupBroker', + label: broker.backup, + width: BROKER_NODE_DIAMETER, + height: BROKER_NODE_DIAMETER, + shape: NodeShape.ellipse, + status: NodeStatus.info, + data: { + badge: 'Broker', + type: "backupBroker", + selectNode: selectNode + } + } + newBrokerNodes.push(backupBrokerNode); + if (viewOptions.showConnectors) { + var brokerEdge: EdgeModel = { + id: 'broker-edge-' + brokerTopology.broker.nodeID + "backup" + '-broker-node-' + broker.nodeID, + type: 'edge', + source: broker.nodeID, + target: broker.nodeID + "backup", + edgeStyle: EdgeStyle.default + }; + newBrokerEdges.push(brokerEdge); + } + } + } else if (broker.backup) { + log.debug("adding backup to this live") + var backupBrokerNode: NodeModel = { + id: broker.nodeID + "backup", + type: 'backupBroker', + label: broker.backup, + width: BROKER_NODE_DIAMETER, + height: BROKER_NODE_DIAMETER, + shape: NodeShape.ellipse, + status: NodeStatus.info, + data: { + badge: 'Broker', + type: "backupBroker", + selectNode: selectNode + } + } + newBrokerNodes.push(backupBrokerNode); + if (viewOptions.showConnectors) { + var brokerEdge: EdgeModel = { + id: 'broker-edge-' + brokerTopology.broker.nodeID + "backup" + '-broker-node-' + broker.nodeID, + type: 'edge', + source: brokerTopology.broker.nodeID, + target: broker.nodeID + "backup", + edgeStyle: EdgeStyle.default + }; + newBrokerEdges.push(brokerEdge); + } } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected] For further information, visit: https://activemq.apache.org/contact
