http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/c24cddee/console/test/mock/entities.py ---------------------------------------------------------------------- diff --git a/console/test/mock/entities.py b/console/test/mock/entities.py new file mode 100644 index 0000000..b20538d --- /dev/null +++ b/console/test/mock/entities.py @@ -0,0 +1,358 @@ +#!/usr/bin/env python +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +import json +from proton import generate_uuid +import collections + +class Schema(object): + schema = {} + + @staticmethod + def i(entity, attribute): + return Schema.schema[entity]["attributeNames"].index(attribute) + + @staticmethod + def type(entity): + return Schema.schema[entity]["fullyQualifiedType"] + + @staticmethod + def init(): + with open("topologies/schema.json") as fp: + data = json.load(fp) + for entity in data["entityTypes"]: + Schema.schema[entity] = {"attributeNames": [], + "fullyQualifiedType": data["entityTypes"][entity]["fullyQualifiedType"]} + for attribute in data["entityTypes"][entity]["attributes"]: + Schema.schema[entity]["attributeNames"].append(attribute) + Schema.schema[entity]["attributeNames"].append("type") + +class SparseList(list): + ''' + from http://stackoverflow.com/questions/1857780/sparse-assignment-list-in-python + ''' + def __setitem__(self, index, value): + missing = index - len(self) + 1 + if missing > 0: + self.extend([None] * missing) + list.__setitem__(self, index, value) + def __getitem__(self, index): + try: return list.__getitem__(self, index) + except IndexError: return None + +class Entity(object): + def __init__(self, name): + self.name = name + self.value = SparseList() + self.settype() + + def setval(self, attribute, value): + self.value[Schema.i(self.name, attribute)] = value + + def settype(self): + self.setval("type", Schema.type(self.name)) + + def setZero(self, attributes): + for attribute in attributes: + self.setval(attribute, 0) + + def getval(self, attr): + return self.value[Schema.i(self.name, attr)] + + def vals(self): + return self.value + +class Multiple(object): + def __init__(self): + self.results = [] + + def vals(self): + return self.results + +class RouterNode(Entity): + instance = 0 + def __init__(self, f, t, links, hopper): + super(RouterNode, self).__init__("router.node") + self.hopper = hopper + self.init(f, t, links) + + def init(self, f, t, links): + RouterNode.instance += 1 + self.setval("name", "router.node/" + t) + self.setval("nextHop", "(self)" if f == t else self.hopper.get(f, t, links)) + self.setval("validOrigins", []) + self.setval("linkState", []) + self.setval("instance", RouterNode.instance) + self.setval("cost", 1) + self.setval("address", "amqp:/_topo/0/" + t) + self.setval("id", t) + self.setval("identity", self.value[Schema.i(self.name, "name")]) + + def reset(self): + RouterNode.nh = NextHop() + +class Connector(Entity): + def __init__(self, host, port): + super(Connector, self).__init__("connector") + self.init(host, port) + + def init(self, host, port): + self.setval("verifyHostName", True) + self.setval("cost", 1) + self.setval("addr", "127.0.0.1") + self.setval("maxSessions", 32768) + self.setval("allowRedirect", True) + self.setval("idleTimeoutSeconds", 16) + self.setval("saslMechanisms", "AMONYMOUS") + self.setval("maxFrameSize", 16384) + self.setval("maxSessionFrames", 100) + self.setval("host", host) + self.setval("role", "inter-router") + self.setval("stripAnnotations", "both") + self.setval("port", port) + self.setval("identity", "connector/" + host + ":" + port) + self.setval("name", self.getval("identity")) + +class Policy(Entity): + def __init__(self): + super(Policy, self).__init__("policy") + self.init() + + def init(self): + self.setval("connectionsProcessed", 2) + self.setval("defaultVhost", "$default") + self.setval("connectionsDenied", 0) + self.setval("enableVhostPolicy", False) + self.setval("maxConnections", 65535) + self.setval("connectionsCurrent", self.getval("connectionsProcessed")) + self.setval("identity", 1) + self.setval("name", "policy/" + str(self.getval("identity"))) + +class Logs(Multiple): + modules = ["AGENT", "CONTAINER", "DEFAULT", "ERROR", "MESSAGE", "POLICY", "ROUTER", "ROUTER_CORE", "ROUTER_HELLO", + "ROUTER_LS", "ROUTER_MA", "SERVER"] + + def __init__(self): + super(Logs, self).__init__() + for module in Logs.modules: + self.results.append(Log(module).vals()) + +class Log(Entity): + def __init__(self, module): + super(Log, self).__init__("log") + self.init(module) + + def init(self, module): + self.setval("name", "log/" + module) + self.setval("identity", self.getval("name")) + self.setval("module", module) + +class Allocators(Multiple): + names = [["qd_bitmask", 24], ["_buffer", 536], ["_composed_field", 64], ["_composite", 112], ["_connection", 232], + ["_connector", 56], ["_deferred_call", 32], ["_field_iterator", 128], ["_hash_handle", 16], + ["_hash_item", 32], ["_hash_segment", 24], ["_link", 48], ["_listener", 32], ["_log_entry", 2104], + ["_management_context", 56], ["_message_context", 640], ["_message", 128], ["_node", 56], + ["_parsed_field", 88], ["_timer", 56], ["_work_item", 24], ["pn_connector", 600], ["pn_listener", 48], + ["r_action", 160], ["r_address_config", 56], ["r_address", 264], ["r_connection", 232], + ["r_connection_work", 56], ["r_delivery_ref", 24], ["r_delivery", 144], ["r_field", 40], + ["r_general_work", 64], ["r_link_ref", 24], ["r_link", 304], ["r_node", 64], ["r_query", 336], + ["r_terminus", 64], ["tm_router", 16]] + + def __init__(self): + super(Allocators, self).__init__() + for name in Allocators.names: + self.results.append(Allocator(name).vals()) + +class Allocator(Entity): + def __init__(self, name): + super(Allocator, self).__init__("allocator") + self.init(name) + + def init(self, name): + n = "qd" + name[0] + "_t" + self.setZero(["heldByThreads", "transferBatchSize", "globalFreeListMax", "batchesRebalancedToGlobal", "batchesRebalancedToThreads", + "totalFreeToHeap", "totalAllocFromHeap", "localFreeListMax"]) + self.setval("name", "allocator/" + n) + self.setval("identity", self.getval("name")) + self.setval("typeName", n) + self.setval("typeSize", name[1]) + +class RouterAddresses(Multiple): + def __init__(self, node, nodes): + super(RouterAddresses, self).__init__() + + addresses = {} + others = [] + for n in nodes: + if n['nodeType'] == 'inter-router': + if n['name'] != node['name']: + self.results.append(RouterAddress("R"+n['name'], [n['name']], "closest", 0).vals()) + others.append(n['name']) + else: + for normal in n['normals']: + nname = '.'.join(normal['name'].split('.')[:-1]) + if "console_identifier" not in node['properties']: + maddr = "M0" + normal['addr'] + if maddr not in addresses: + addresses[maddr] = [] + if nname != node['name']: + if nname not in addresses[maddr]: + addresses[maddr].append(nname) + + for address in addresses: + self.results.append(RouterAddress(address, addresses[address], "balanced", 0).vals()) + + self.results.append(RouterAddress("L_$management_internal", [], "closest", 1).vals()) + self.results.append(RouterAddress("M0$management", [], "closest", 1).vals()) + self.results.append(RouterAddress("L$management", [], "closest", 1).vals()) + self.results.append(RouterAddress("L$qdhello", [], "flood", 1).vals()) + self.results.append(RouterAddress("L$qdrouter", [], "flood", 1).vals()) + self.results.append(RouterAddress("L$qdrouter.ma", [], "multicast", 1).vals()) + self.results.append(RouterAddress("Tqdrouter", others, "flood", 1).vals()) + self.results.append(RouterAddress("Tqdrouter.ma", others, "multicast", 1).vals()) + +class RouterAddress(Entity): + def __init__(self, name, rhrList, distribution, inProcess): + super(RouterAddress, self).__init__("router.address") + self.init(name, rhrList, distribution, inProcess) + + def init(self, name, rhrList, distribution, inProcess): + self.setZero(["subscriberCount", "deliveriesEgress", "deliveriesIngress", + "deliveriesFromContainer", "deliveriesTransit", "containerCount", + "trackedDeliveries", "deliveriesToContainer"]) + self.setval("name", name) + self.setval("key", self.getval("name")) + self.setval("distribution", distribution) + self.setval("identity", self.getval("name")) + self.setval("remoteHostRouters", rhrList) + self.setval("remoteCount", len(rhrList)) + self.setval("inProcess", inProcess) + +class Address(Entity): + def __init__(self): + super(Address, self).__init__("address") + self.init() + + def init(self): + self.setval("egressPhase", 0) + self.setval("ingressPhase", 0) + self.setval("prefix", "closest") + self.setval("waypoint", False) + self.setval("distribution", "closest") + self.setval("identity", 1) + self.setval("name", "address/" + str(self.getval("identity"))) + +class Router(Entity): + def __init__(self, node): + super(Router, self).__init__("router") + self.init(node) + + def init(self, node): + self.setval("mobileAddrMaxAge", 60) + self.setval("raIntervalFlux", 4) + self.setval("workerThreads", 4) + self.setval("name", "router/" + node['name']) + self.setval("helloInterval", 1) + self.setval("area", 0) + self.setval("helloMaxAge", 3) + self.setval("remoteLsMaxAge", 60) + self.setval("addrCount", 0) + self.setval("raInterval", 30) + self.setval("mode", "interior") + self.setval("nodeCount", 0) + self.setval("saslConfigName", "qdrouterd") + self.setval("linkCount", 0) + self.setval("id", node['name']) + self.setval("identity", "router/" + node['name']) + +class Listener(Entity): + def __init__(self, port): + super(Listener, self).__init__("listener") + self.init(port) + + def init(self, port): + self.setval("stripAnnotations", "both") + self.setval("requireSsl", False) + self.setval("idleTimeoutSeconds", 16) + self.setval("cost", 1) + self.setval("port", str(port)) + self.setval("addr", "0.0.0.0") + self.setval("saslMechanisms", "ANONYMOUS") + self.setval("requireEncryption", False) + self.setval("linkCapacity", 4) + self.setval("role", "normal") + self.setval("authenticatePeer", False) + self.setval("host", "::") + self.setval("identity", "listener/:::" + str(port)) + self.setval("name", self.getval("identity")) + self.setval("maxFrameSize", 16384) + +class Connection(Entity): + def __init__(self, node, id): + super(Connection, self).__init__("connection") + self.init(node, id) + + def init(self, node, id): + if "container" not in node: + self.setval("container", str(generate_uuid())) + else: + self.setval("container", node["container"]) + self.setval("opened", True) + self.setval("name", "connection/0.0.0.0:" + str(id)) + self.setval("properties", node["properties"]) + self.setval("ssl", False) + if "host" in node: + self.setval("host", node["host"]) + else: + self.setval("host", "0.0.0.0:20000") + if "isEncrypted" not in node: + self.setval("isEncrypted", False) + else: + self.setval("isEncrypted", node["isEncrypted"]) + if "user" not in node: + self.setval("user", "anonymous") + else: + self.setval("user", node["user"]) + self.setval("role", node["nodeType"]) + self.setval("isAuthenticated", False) + self.setval("identity", id) + self.setval("dir", node["cdir"]) + +class RouterLink(Entity): + def __init__(self, node, identity, ldir, owningAddr, linkType, connId): + super(RouterLink, self).__init__("router.link") + self.init(node, identity, ldir, owningAddr, linkType, connId) + + def init(self, node, identity, ldir, owningAddr, linkType, connId): + linkUuid = str(generate_uuid()) + self.setval("name", linkUuid) + self.setval("identity", identity) + self.setval("linkName", linkUuid) + self.setval("linkType", linkType) + self.setval("linkDir", ldir) + self.setval("owningAddr", owningAddr) + self.setval("capacity", 250) + self.setZero(["undeliveredCount", "unsettledCount", "deliveryCount", "presettledCount", "acceptedCount", + "rejectedCount", "releasedCount", "modifiedCount"]) + self.setval("connectionId", connId) + self.setval("adminStatus", "enabled") + self.setval("operStatus", "up") + +Schema.init() \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/c24cddee/console/test/mock/nexthop.py ---------------------------------------------------------------------- diff --git a/console/test/mock/nexthop.py b/console/test/mock/nexthop.py new file mode 100644 index 0000000..ab0c01a --- /dev/null +++ b/console/test/mock/nexthop.py @@ -0,0 +1,145 @@ +#!/usr/bin/env python +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +import collections + +class TreeNode(object): + def __init__(self, f, parent): + self.name = f + self.parent = parent + self.children = [] + self.visited = False + + def procreate(self, links): + if self.visited: + return + self.visited = True + for link in links: + if link['source']['nodeType'] == 'inter-router' and link['target']['nodeType'] == 'inter-router': + if (link['source']['name'] == self.name or link['target']['name'] == self.name): + name = link['source']['name'] if link['target']['name'] == self.name else link['target']['name'] + if not name in self.ancestors(): + self.children.append(TreeNode(name, self)) + + def ancestors(self): + a = self.geneology(self.parent) + a.reverse() + return a + + def geneology(self, parent): + if parent is None: + return [] + ret = [parent.name] + ret.extend(self.geneology(parent.parent)) + return ret + +class Hopper(object): + def __init__(self, verbose): + self.tree = {} + self.table = {} + self.verbose = verbose + + def get(self, f, t, links): + if self.verbose: + print ("------- asked to get " + f + " to " + t) + if f in self.table and t in self.table[f]: + if self.verbose: + print " ------- returning existing " + str(self.table[f][t]) + return self.table[f][t] + + self.tree = {} + #treef = self.highest(f) + #if treef is None: + treef = self.root(f) + + q = collections.deque([treef]) + while len(q): + node = q.popleft() + self.process(f, node, treef.name, links) + if f in self.table and t in self.table[f]: + if self.verbose: + print " ------- returning " + str(self.table[f][t]) + ret = self.table[f][t] + self.table = {} + return ret + for n in node.children: + q.append(n) + if self.verbose: + print (" ------- returning unfound nextHop of None") + + def process(self, f, node, r, links): + node.procreate(links) + for n in node.children: + self.populateTable(f, n, r) + + def populateTable(self, f, node, r): + n = node.name + if not f in self.table: + self.table[f] = {} + self.table[f][f] = None + if not n in self.table: + self.table[n] = {} + self.table[n][n] = None + if not node.parent: + return + if node.parent.name == f: + self.table[f][n] = None + self.table[n][f] = None + else: + def setHop(n, a, p): + if not a in self.table[n]: + self.table[n][a] = p + + def loop(ancestors): + for i in range(1): #range(len(ancestors)): + start = ancestors[i] + for j in range(i+1, len(ancestors)): + stop = ancestors[j] + if j-i == 1: + setHop(start, stop, None) + else: + setHop(start, stop, ancestors[i+1]) + + + ancestors = node.ancestors() + while len(ancestors) > 0 and ancestors[0] != r: + ancestors.pop(0) + ancestors.append(n) + loop(ancestors) + ancestors.reverse() + loop(ancestors) + + def root(self, f): + if not self.tree: + self.tree[f] = TreeNode(f, None) + return self.tree[list(self.tree.keys())[0]] + + def highest(self, f): + r = self.root(f) + if r.name == f: + return r + q = collections.deque([r]) + while len(q): + node = q.popleft() + for n in node.children: + if n.name == f: + return n + q.append(n) + return None http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/c24cddee/console/test/topologies/config-1/R.0.json ---------------------------------------------------------------------- diff --git a/console/test/topologies/config-1/R.0.json b/console/test/topologies/config-1/R.0.json new file mode 100644 index 0000000..53467c8 --- /dev/null +++ b/console/test/topologies/config-1/R.0.json @@ -0,0 +1,1725 @@ +{ + ".allocator": { + "attributeNames": [ + "heldByThreads", + "localFreeListMax", + "transferBatchSize", + "globalFreeListMax", + "batchesRebalancedToGlobal", + "typeName", + "batchesRebalancedToThreads", + "totalFreeToHeap", + "totalAllocFromHeap", + "typeSize", + "identity", + "name", + "type" + ], + "results": [ + [ + 0, + 0, + 0, + 0, + 0, + "qdqd_bitmask_t", + 0, + 0, + 0, + 24, + "allocator/qdqd_bitmask_t", + "allocator/qdqd_bitmask_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qd_buffer_t", + 0, + 0, + 0, + 536, + "allocator/qd_buffer_t", + "allocator/qd_buffer_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qd_composed_field_t", + 0, + 0, + 0, + 64, + "allocator/qd_composed_field_t", + "allocator/qd_composed_field_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qd_composite_t", + 0, + 0, + 0, + 112, + "allocator/qd_composite_t", + "allocator/qd_composite_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qd_connection_t", + 0, + 0, + 0, + 232, + "allocator/qd_connection_t", + "allocator/qd_connection_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qd_connector_t", + 0, + 0, + 0, + 56, + "allocator/qd_connector_t", + "allocator/qd_connector_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qd_deferred_call_t", + 0, + 0, + 0, + 32, + "allocator/qd_deferred_call_t", + "allocator/qd_deferred_call_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qd_field_iterator_t", + 0, + 0, + 0, + 128, + "allocator/qd_field_iterator_t", + "allocator/qd_field_iterator_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qd_hash_handle_t", + 0, + 0, + 0, + 16, + "allocator/qd_hash_handle_t", + "allocator/qd_hash_handle_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qd_hash_item_t", + 0, + 0, + 0, + 32, + "allocator/qd_hash_item_t", + "allocator/qd_hash_item_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qd_hash_segment_t", + 0, + 0, + 0, + 24, + "allocator/qd_hash_segment_t", + "allocator/qd_hash_segment_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qd_link_t", + 0, + 0, + 0, + 48, + "allocator/qd_link_t", + "allocator/qd_link_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qd_listener_t", + 0, + 0, + 0, + 32, + "allocator/qd_listener_t", + "allocator/qd_listener_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qd_log_entry_t", + 0, + 0, + 0, + 2104, + "allocator/qd_log_entry_t", + "allocator/qd_log_entry_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qd_management_context_t", + 0, + 0, + 0, + 56, + "allocator/qd_management_context_t", + "allocator/qd_management_context_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qd_message_context_t", + 0, + 0, + 0, + 640, + "allocator/qd_message_context_t", + "allocator/qd_message_context_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qd_message_t", + 0, + 0, + 0, + 128, + "allocator/qd_message_t", + "allocator/qd_message_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qd_node_t", + 0, + 0, + 0, + 56, + "allocator/qd_node_t", + "allocator/qd_node_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qd_parsed_field_t", + 0, + 0, + 0, + 88, + "allocator/qd_parsed_field_t", + "allocator/qd_parsed_field_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qd_timer_t", + 0, + 0, + 0, + 56, + "allocator/qd_timer_t", + "allocator/qd_timer_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qd_work_item_t", + 0, + 0, + 0, + 24, + "allocator/qd_work_item_t", + "allocator/qd_work_item_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qdpn_connector_t", + 0, + 0, + 0, + 600, + "allocator/qdpn_connector_t", + "allocator/qdpn_connector_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qdpn_listener_t", + 0, + 0, + 0, + 48, + "allocator/qdpn_listener_t", + "allocator/qdpn_listener_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qdr_action_t", + 0, + 0, + 0, + 160, + "allocator/qdr_action_t", + "allocator/qdr_action_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qdr_address_config_t", + 0, + 0, + 0, + 56, + "allocator/qdr_address_config_t", + "allocator/qdr_address_config_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qdr_address_t", + 0, + 0, + 0, + 264, + "allocator/qdr_address_t", + "allocator/qdr_address_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qdr_connection_t", + 0, + 0, + 0, + 232, + "allocator/qdr_connection_t", + "allocator/qdr_connection_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qdr_connection_work_t", + 0, + 0, + 0, + 56, + "allocator/qdr_connection_work_t", + "allocator/qdr_connection_work_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qdr_delivery_ref_t", + 0, + 0, + 0, + 24, + "allocator/qdr_delivery_ref_t", + "allocator/qdr_delivery_ref_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qdr_delivery_t", + 0, + 0, + 0, + 144, + "allocator/qdr_delivery_t", + "allocator/qdr_delivery_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qdr_field_t", + 0, + 0, + 0, + 40, + "allocator/qdr_field_t", + "allocator/qdr_field_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qdr_general_work_t", + 0, + 0, + 0, + 64, + "allocator/qdr_general_work_t", + "allocator/qdr_general_work_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qdr_link_ref_t", + 0, + 0, + 0, + 24, + "allocator/qdr_link_ref_t", + "allocator/qdr_link_ref_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qdr_link_t", + 0, + 0, + 0, + 304, + "allocator/qdr_link_t", + "allocator/qdr_link_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qdr_node_t", + 0, + 0, + 0, + 64, + "allocator/qdr_node_t", + "allocator/qdr_node_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qdr_query_t", + 0, + 0, + 0, + 336, + "allocator/qdr_query_t", + "allocator/qdr_query_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qdr_terminus_t", + 0, + 0, + 0, + 64, + "allocator/qdr_terminus_t", + "allocator/qdr_terminus_t", + "org.apache.qpid.dispatch.allocator" + ], + [ + 0, + 0, + 0, + 0, + 0, + "qdtm_router_t", + 0, + 0, + 0, + 16, + "allocator/qdtm_router_t", + "allocator/qdtm_router_t", + "org.apache.qpid.dispatch.allocator" + ] + ] + }, + ".autoLink": { + "attributeNames": [ + "addr", + "linkRef", + "containerId", + "operStatus", + "connection", + "dir", + "phase", + "lastError", + "externalAddr", + "identity", + "name", + "type" + ], + "results": [] + }, + ".connection": { + "attributeNames": [ + "container", + "opened", + "sslCipher", + "user", + "sslProto", + "dir", + "ssl", + "host", + "isEncrypted", + "role", + "identity", + "sasl", + "sslSsf", + "properties", + "isAuthenticated", + "name", + "type" + ], + "results": [ + [ + "b9053259-30b3-4c3f-b080-74e529da07a3", + true, + null, + "anonymous", + null, + "both", + false, + "0.0.0.0:20002", + false, + "normal", + 1, + null, + null, + { + "console_identifier": "Dispatch console" + }, + false, + "connection/0.0.0.0:1", + "org.apache.qpid.dispatch.connection" + ], + [ + "efe7ddf0-fc6d-49cb-8a17-ca571e12fe98", + true, + null, + "anonymous", + null, + "both", + false, + "0.0.0.0:20002", + false, + "normal", + 2, + null, + null, + { + "console_identifier": "Dispatch console" + }, + false, + "connection/0.0.0.0:2", + "org.apache.qpid.dispatch.connection" + ], + [ + "fdc6626f-7e1d-465f-99cf-8b02842faf6c", + true, + null, + "anonymous", + null, + "out", + false, + "0.0.0.0:20004", + false, + "normal", + 3, + null, + null, + {}, + false, + "connection/0.0.0.0:3", + "org.apache.qpid.dispatch.connection" + ], + [ + "9b24bcaa-1e6c-4498-99cd-a123865744ee", + true, + null, + "anonymous", + null, + "out", + false, + "0.0.0.0:20004", + false, + "normal", + 4, + null, + null, + {}, + false, + "connection/0.0.0.0:4", + "org.apache.qpid.dispatch.connection" + ], + [ + "faf3c05e-c1eb-4ce8-af30-d034273d3e9d", + true, + null, + "anonymous", + null, + "out", + false, + "0.0.0.0:20004", + false, + "normal", + 5, + null, + null, + {}, + false, + "connection/0.0.0.0:5", + "org.apache.qpid.dispatch.connection" + ], + [ + "aaf5a8ec-3e6c-4289-9204-7178a539d37f", + true, + null, + "anonymous", + null, + "in", + false, + "0.0.0.0:20005", + false, + "normal", + 6, + null, + null, + {}, + false, + "connection/0.0.0.0:6", + "org.apache.qpid.dispatch.connection" + ], + [ + "1aa7d699-650c-423a-a31a-c25dc2794931", + true, + null, + "anonymous", + null, + "in", + false, + "0.0.0.0:20005", + false, + "normal", + 7, + null, + null, + {}, + false, + "connection/0.0.0.0:7", + "org.apache.qpid.dispatch.connection" + ], + [ + "3a948171-9075-42fd-941c-71998faa6106", + true, + null, + "anonymous", + null, + "both", + false, + "0.0.0.0:20006", + false, + "normal", + 8, + null, + null, + {}, + false, + "connection/0.0.0.0:8", + "org.apache.qpid.dispatch.connection" + ] + ] + }, + ".connector": { + "attributeNames": [ + "maxSessionFrames", + "verifyHostName", + "stripAnnotations", + "addr", + "saslUsername", + "allowRedirect", + "idleTimeoutSeconds", + "saslMechanisms", + "maxFrameSize", + "port", + "linkCapacity", + "host", + "cost", + "role", + "saslPassword", + "sslProfile", + "maxSessions", + "protocolFamily", + "identity", + "name", + "type" + ], + "results": [ + [ + 100, + true, + "both", + "127.0.0.1", + null, + true, + 16, + "AMONYMOUS", + 16384, + "20004", + null, + "0.0.0.0", + 1, + "inter-router", + null, + null, + 32768, + null, + "connector/0.0.0.0:20004", + "connector/0.0.0.0:20004", + "org.apache.qpid.dispatch.connector" + ], + [ + 100, + true, + "both", + "127.0.0.1", + null, + true, + 16, + "AMONYMOUS", + 16384, + "20004", + null, + "0.0.0.0", + 1, + "inter-router", + null, + null, + 32768, + null, + "connector/0.0.0.0:20004", + "connector/0.0.0.0:20004", + "org.apache.qpid.dispatch.connector" + ], + [ + 100, + true, + "both", + "127.0.0.1", + null, + true, + 16, + "AMONYMOUS", + 16384, + "20004", + null, + "0.0.0.0", + 1, + "inter-router", + null, + null, + 32768, + null, + "connector/0.0.0.0:20004", + "connector/0.0.0.0:20004", + "org.apache.qpid.dispatch.connector" + ] + ] + }, + ".linkRoute": { + "attributeNames": [ + "containerId", + "operStatus", + "prefix", + "connection", + "dir", + "distribution", + "identity", + "name", + "type" + ], + "results": [] + }, + ".listener": { + "attributeNames": [ + "stripAnnotations", + "requireSsl", + "idleTimeoutSeconds", + "trustedCerts", + "maxSessionFrames", + "cost", + "port", + "allowNoSasl", + "addr", + "saslMechanisms", + "requireEncryption", + "linkCapacity", + "requirePeerAuth", + "allowUnsecured", + "maxSessions", + "authenticatePeer", + "host", + "role", + "protocolFamily", + "identity", + "name", + "maxFrameSize", + "sslProfile", + "type" + ], + "results": [ + [ + "both", + false, + 16, + null, + null, + 1, + "20001", + null, + "0.0.0.0", + "ANONYMOUS", + false, + 4, + null, + null, + null, + false, + "::", + "normal", + null, + "listener/:::20001", + "listener/:::20001", + 16384, + null, + "org.apache.qpid.dispatch.listener" + ] + ] + }, + ".log": { + "attributeNames": [ + "enable", + "name", + "timestamp", + "module", + "source", + "output", + "identity", + "type" + ], + "results": [ + [ + null, + "log/AGENT", + null, + "AGENT", + null, + null, + "log/AGENT", + "org.apache.qpid.dispatch.log" + ], + [ + null, + "log/CONTAINER", + null, + "CONTAINER", + null, + null, + "log/CONTAINER", + "org.apache.qpid.dispatch.log" + ], + [ + null, + "log/DEFAULT", + null, + "DEFAULT", + null, + null, + "log/DEFAULT", + "org.apache.qpid.dispatch.log" + ], + [ + null, + "log/ERROR", + null, + "ERROR", + null, + null, + "log/ERROR", + "org.apache.qpid.dispatch.log" + ], + [ + null, + "log/MESSAGE", + null, + "MESSAGE", + null, + null, + "log/MESSAGE", + "org.apache.qpid.dispatch.log" + ], + [ + null, + "log/POLICY", + null, + "POLICY", + null, + null, + "log/POLICY", + "org.apache.qpid.dispatch.log" + ], + [ + null, + "log/ROUTER", + null, + "ROUTER", + null, + null, + "log/ROUTER", + "org.apache.qpid.dispatch.log" + ], + [ + null, + "log/ROUTER_CORE", + null, + "ROUTER_CORE", + null, + null, + "log/ROUTER_CORE", + "org.apache.qpid.dispatch.log" + ], + [ + null, + "log/ROUTER_HELLO", + null, + "ROUTER_HELLO", + null, + null, + "log/ROUTER_HELLO", + "org.apache.qpid.dispatch.log" + ], + [ + null, + "log/ROUTER_LS", + null, + "ROUTER_LS", + null, + null, + "log/ROUTER_LS", + "org.apache.qpid.dispatch.log" + ], + [ + null, + "log/ROUTER_MA", + null, + "ROUTER_MA", + null, + null, + "log/ROUTER_MA", + "org.apache.qpid.dispatch.log" + ], + [ + null, + "log/SERVER", + null, + "SERVER", + null, + null, + "log/SERVER", + "org.apache.qpid.dispatch.log" + ] + ] + }, + ".policy": { + "attributeNames": [ + "connectionsProcessed", + "policyDir", + "defaultVhost", + "connectionsDenied", + "enableVhostPolicy", + "maxConnections", + "connectionsCurrent", + "identity", + "name", + "type" + ], + "results": [ + [ + 2, + null, + "$default", + 0, + false, + 65535, + 2, + 1, + "policy/1", + "org.apache.qpid.dispatch.policy" + ] + ] + }, + ".router": { + "attributeNames": [ + "identity", + "debugDump", + "raIntervalFlux", + "workerThreads", + "name", + "helloInterval", + "area", + "helloMaxAge", + "saslConfigPath", + "remoteLsMaxAge", + "addrCount", + "routerId", + "raInterval", + "mode", + "nodeCount", + "saslConfigName", + "mobileAddrMaxAge", + "id", + "linkCount", + "type" + ], + "results": [ + [ + "router/R.0", + null, + 4, + 4, + "router/R.0", + 1, + 0, + 3, + null, + 60, + 0, + null, + 30, + "interior", + 0, + "qdrouterd", + 60, + "R.0", + 0, + "org.apache.qpid.dispatch.router" + ] + ] + }, + ".router.address": { + "attributeNames": [ + "subscriberCount", + "deliveriesEgress", + "name", + "deliveriesIngress", + "transitOutstanding", + "remoteCount", + "inProcess", + "deliveriesFromContainer", + "deliveriesTransit", + "containerCount", + "key", + "distribution", + "trackedDeliveries", + "deliveriesToContainer", + "identity", + "remoteHostRouters", + "type" + ], + "results": [ + [ + 0, + 0, + "M0addr1", + 0, + null, + 0, + 0, + 0, + 0, + 0, + "M0addr1", + "balanced", + 0, + 0, + "M0addr1", + [], + "org.apache.qpid.dispatch.router.address" + ], + [ + 0, + 0, + "L_$management_internal", + 0, + null, + 0, + 1, + 0, + 0, + 0, + "L_$management_internal", + "closest", + 0, + 0, + "L_$management_internal", + [], + "org.apache.qpid.dispatch.router.address" + ], + [ + 0, + 0, + "M0$management", + 0, + null, + 0, + 1, + 0, + 0, + 0, + "M0$management", + "closest", + 0, + 0, + "M0$management", + [], + "org.apache.qpid.dispatch.router.address" + ], + [ + 0, + 0, + "L$management", + 0, + null, + 0, + 1, + 0, + 0, + 0, + "L$management", + "closest", + 0, + 0, + "L$management", + [], + "org.apache.qpid.dispatch.router.address" + ], + [ + 0, + 0, + "L$qdhello", + 0, + null, + 0, + 1, + 0, + 0, + 0, + "L$qdhello", + "flood", + 0, + 0, + "L$qdhello", + [], + "org.apache.qpid.dispatch.router.address" + ], + [ + 0, + 0, + "L$qdrouter", + 0, + null, + 0, + 1, + 0, + 0, + 0, + "L$qdrouter", + "flood", + 0, + 0, + "L$qdrouter", + [], + "org.apache.qpid.dispatch.router.address" + ], + [ + 0, + 0, + "L$qdrouter.ma", + 0, + null, + 0, + 1, + 0, + 0, + 0, + "L$qdrouter.ma", + "multicast", + 0, + 0, + "L$qdrouter.ma", + [], + "org.apache.qpid.dispatch.router.address" + ], + [ + 0, + 0, + "Tqdrouter", + 0, + null, + 0, + 1, + 0, + 0, + 0, + "Tqdrouter", + "flood", + 0, + 0, + "Tqdrouter", + [], + "org.apache.qpid.dispatch.router.address" + ], + [ + 0, + 0, + "Tqdrouter.ma", + 0, + null, + 0, + 1, + 0, + 0, + 0, + "Tqdrouter.ma", + "multicast", + 0, + 0, + "Tqdrouter.ma", + [], + "org.apache.qpid.dispatch.router.address" + ] + ] + }, + ".router.config.address": { + "attributeNames": [ + "egressPhase", + "prefix", + "ingressPhase", + "waypoint", + "distribution", + "identity", + "name", + "type" + ], + "results": [ + [ + 0, + "closest", + 0, + false, + "closest", + 1, + "address/1", + "org.apache.qpid.dispatch.router.config.address" + ] + ] + }, + ".router.link": { + "attributeNames": [ + "adminStatus", + "linkType", + "releasedCount", + "capacity", + "name", + "operStatus", + "linkDir", + "unsettledCount", + "deliveryCount", + "modifiedCount", + "peer", + "connectionId", + "owningAddr", + "rejectedCount", + "undeliveredCount", + "linkName", + "presettledCount", + "acceptedCount", + "identity", + "type" + ], + "results": [ + [ + "enabled", + "endpoint", + 0, + 250, + "ddee54ee-682b-4b3c-87fd-acbd9e489729", + "up", + "out", + 0, + 0, + 0, + null, + 1, + "", + 0, + 0, + "ddee54ee-682b-4b3c-87fd-acbd9e489729", + 0, + 0, + "0", + "org.apache.qpid.dispatch.router.link" + ], + [ + "enabled", + "endpoint", + 0, + 250, + "3737620a-c24d-4395-88f9-629fd2177ef1", + "up", + "in", + 0, + 0, + 0, + null, + 1, + "Ltemp.XQKAT6M2K3QJ6BQ", + 0, + 0, + "3737620a-c24d-4395-88f9-629fd2177ef1", + 0, + 0, + "1", + "org.apache.qpid.dispatch.router.link" + ], + [ + "enabled", + "endpoint", + 0, + 250, + "e1350823-25b4-4fa5-bbd9-bddbaff0fca1", + "up", + "out", + 0, + 0, + 0, + null, + 2, + "", + 0, + 0, + "e1350823-25b4-4fa5-bbd9-bddbaff0fca1", + 0, + 0, + "2", + "org.apache.qpid.dispatch.router.link" + ], + [ + "enabled", + "endpoint", + 0, + 250, + "f26e3692-9136-417f-8b29-c68e62b13f9b", + "up", + "in", + 0, + 0, + 0, + null, + 2, + "Ltemp.M2WAWD9DU2D7FLJ", + 0, + 0, + "f26e3692-9136-417f-8b29-c68e62b13f9b", + 0, + 0, + "3", + "org.apache.qpid.dispatch.router.link" + ], + [ + "enabled", + "endpoint", + 0, + 250, + "8762c5ad-902d-4d00-9950-e108f68f47aa", + "up", + "out", + 0, + 0, + 0, + null, + 3, + "M0addr1", + 0, + 0, + "8762c5ad-902d-4d00-9950-e108f68f47aa", + 0, + 0, + "4", + "org.apache.qpid.dispatch.router.link" + ], + [ + "enabled", + "endpoint", + 0, + 250, + "adb6a17b-5762-4386-9677-4ca549043e30", + "up", + "out", + 0, + 0, + 0, + null, + 4, + "M0addr1", + 0, + 0, + "adb6a17b-5762-4386-9677-4ca549043e30", + 0, + 0, + "5", + "org.apache.qpid.dispatch.router.link" + ], + [ + "enabled", + "endpoint", + 0, + 250, + "258290b4-20a0-4424-b275-de7006523dde", + "up", + "out", + 0, + 0, + 0, + null, + 5, + "M0addr1", + 0, + 0, + "258290b4-20a0-4424-b275-de7006523dde", + 0, + 0, + "6", + "org.apache.qpid.dispatch.router.link" + ], + [ + "enabled", + "endpoint", + 0, + 250, + "24d76c37-3d4b-4fc6-8352-26269ec3b41f", + "up", + "in", + 0, + 0, + 0, + null, + 6, + "M0addr1", + 0, + 0, + "24d76c37-3d4b-4fc6-8352-26269ec3b41f", + 0, + 0, + "7", + "org.apache.qpid.dispatch.router.link" + ], + [ + "enabled", + "endpoint", + 0, + 250, + "da3123a7-9d70-4284-a2e2-284d6dbb8080", + "up", + "in", + 0, + 0, + 0, + null, + 7, + "M0addr1", + 0, + 0, + "da3123a7-9d70-4284-a2e2-284d6dbb8080", + 0, + 0, + "8", + "org.apache.qpid.dispatch.router.link" + ], + [ + "enabled", + "endpoint", + 0, + 250, + "c5a344f5-2f72-422f-89c4-a9b22d4cfd46", + "up", + "out", + 0, + 0, + 0, + null, + 8, + "M0addr1", + 0, + 0, + "c5a344f5-2f72-422f-89c4-a9b22d4cfd46", + 0, + 0, + "9", + "org.apache.qpid.dispatch.router.link" + ], + [ + "enabled", + "endpoint", + 0, + 250, + "296a251d-251c-4fac-8589-f423766d9ca3", + "up", + "in", + 0, + 0, + 0, + null, + 8, + "M0addr1", + 0, + 0, + "296a251d-251c-4fac-8589-f423766d9ca3", + 0, + 0, + "10", + "org.apache.qpid.dispatch.router.link" + ] + ] + }, + ".router.node": { + "attributeNames": [ + "routerLink", + "nextHop", + "name", + "validOrigins", + "linkState", + "instance", + "cost", + "address", + "id", + "identity", + "type" + ], + "results": [ + [ + null, + "(self)", + "router.node/R.0", + [], + [], + 53, + 1, + "amqp:/_topo/0/R.0", + "R.0", + "router.node/R.0", + "org.apache.qpid.dispatch.router.node" + ] + ] + }, + ".sslProfile": { + "attributeNames": [ + "certFile", + "displayNameFile", + "uidFormat", + "certDb", + "passwordFile", + "password", + "keyFile", + "identity", + "name", + "type" + ], + "results": [] + }, + ".vhost": { + "attributeNames": [ + "allowUnknownUser", + "maxConnectionsPerUser", + "groups", + "maxConnections", + "maxConnectionsPerHost", + "id", + "identity", + "name", + "type" + ], + "results": [] + }, + ".vhostStats": { + "attributeNames": [ + "name", + "perHostState", + "id", + "perUserState", + "sessionDenied", + "connectionsApproved", + "receiverDenied", + "connectionsCurrent", + "connectionsDenied", + "senderDenied", + "identity", + "type" + ], + "results": [] + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/c24cddee/console/test/topologies/config-1/nodeslinks.dat ---------------------------------------------------------------------- diff --git a/console/test/topologies/config-1/nodeslinks.dat b/console/test/topologies/config-1/nodeslinks.dat new file mode 100644 index 0000000..16b3dcd --- /dev/null +++ b/console/test/topologies/config-1/nodeslinks.dat @@ -0,0 +1,398 @@ +{ + "nodes": [ + { + "index": 0, + "nodeType": "inter-router", + "name": "R.0", + "weight": 4, + "px": 164.29187931882578, + "py": 175.80207806090868, + "resultIndex": null, + "id": 0, + "routerId": "R.0", + "host": "0.0.0.0:20001", + "highlighted": false, + "key": "amqp:/_topo/0/R.0/$management", + "y": 175.8087056018603, + "x": 164.29388840186058, + "fixed": 0, + "properties": {}, + "cls": "" + }, + { + "weight": 1, + "isEncrypted": false, + "resultIndex": 0, + "id": 1, + "index": 1, + "px": 100.46794372031725, + "py": 223.7253838476624, + "highlighted": false, + "routerId": "R.0", + "cls": "", + "nodeType": "normal", + "connectionId": 1, + "host": "0.0.0.0:20002", + "user": "anonymous", + "key": "amqp:/_topo/0/R.0/$management", + "cdir": "both", + "properties": { + "console_identifier": "Dispatch console" + }, + "name": "R.0.1", + "normals": [ + { + "name": "R.0.1", + "addr": "addr1" + }, + { + "name": "R.0.8", + "addr": "addr1" + } + ], + "y": 223.74204007613326, + "x": 100.45333632665597, + "fixed": 0 + }, + { + "weight": 1, + "isEncrypted": false, + "resultIndex": 0, + "id": 2, + "index": 2, + "px": 243.83192673800565, + "py": 171.34084903772512, + "highlighted": false, + "routerId": "R.0", + "cls": "", + "nodeType": "normal", + "connectionId": 3, + "host": "0.0.0.0:20004", + "user": "anonymous", + "key": "amqp:/_topo/0/R.0/$management", + "cdir": "out", + "properties": {}, + "name": "R.0.4", + "normals": [ + { + "name": "R.0.4", + "addr": "addr1" + }, + { + "name": "R.0.5", + "addr": "addr1" + }, + { + "name": "R.0.6", + "addr": "addr1" + } + ], + "y": 171.34342749529537, + "x": 243.85250914335518, + "fixed": false + }, + { + "weight": 1, + "isEncrypted": false, + "resultIndex": 0, + "id": 3, + "index": 3, + "px": 102.4586287826755, + "py": 125.00260883166828, + "highlighted": false, + "routerId": "R.0", + "cls": "", + "nodeType": "normal", + "connectionId": 3, + "host": "0.0.0.0:20005", + "user": "anonymous", + "key": "amqp:/_topo/0/R.0/$management", + "cdir": "in", + "properties": {}, + "name": "R.0.3", + "normals": [ + { + "name": "R.0.3", + "addr": "addr1" + }, + { + "name": "R.0.4", + "addr": "addr1" + } + ], + "y": 124.99076765235854, + "x": 102.4404612736399, + "fixed": false + }, + { + "weight": 1, + "isEncrypted": false, + "resultIndex": 0, + "id": 4, + "index": 4, + "px": 183.762386523301, + "py": 98.37984932621536, + "highlighted": false, + "routerId": "R.0", + "cls": "", + "nodeType": "normal", + "connectionId": 4, + "host": "0.0.0.0:20006", + "user": "anonymous", + "key": "amqp:/_topo/0/R.0/$management", + "cdir": "both", + "properties": {}, + "name": "R.0.7", + "normals": [ + { + "name": "R.0.7", + "addr": "addr1" + } + ], + "y": 98.36087509657327, + "x": 183.77066774374404, + "fixed": false + } + ], + "links": [ + { + "right": true, + "uid": "0.1", + "highlighted": false, + "source": { + "index": 0, + "nodeType": "inter-router", + "name": "R.0", + "weight": 4, + "px": 164.29187931882578, + "py": 175.80207806090868, + "resultIndex": null, + "id": 0, + "routerId": "R.0", + "host": "0.0.0.0:20001", + "highlighted": false, + "key": "amqp:/_topo/0/R.0/$management", + "y": 175.8087056018603, + "x": 164.29388840186058, + "fixed": 0, + "properties": {}, + "cls": "" + }, + "left": true, + "cls": "small", + "target": { + "weight": 1, + "isEncrypted": false, + "resultIndex": 0, + "id": 1, + "index": 1, + "px": 100.46794372031725, + "py": 223.7253838476624, + "highlighted": false, + "routerId": "R.0", + "cls": "", + "nodeType": "normal", + "connectionId": 1, + "host": "0.0.0.0:20002", + "user": "anonymous", + "key": "amqp:/_topo/0/R.0/$management", + "cdir": "both", + "properties": { + "console_identifier": "Dispatch console" + }, + "name": "R.0.1", + "normals": [ + { + "name": "R.0.1", + "addr": "addr1" + }, + { + "name": "R.0.8", + "addr": "addr1" + } + ], + "y": 223.74204007613326, + "x": 100.45333632665597, + "fixed": 0 + } + }, + { + "right": true, + "uid": "0.2", + "highlighted": false, + "source": { + "index": 0, + "nodeType": "inter-router", + "name": "R.0", + "weight": 4, + "px": 164.29187931882578, + "py": 175.80207806090868, + "resultIndex": null, + "id": 0, + "routerId": "R.0", + "host": "0.0.0.0:20001", + "highlighted": false, + "key": "amqp:/_topo/0/R.0/$management", + "y": 175.8087056018603, + "x": 164.29388840186058, + "fixed": 0, + "properties": {}, + "cls": "" + }, + "left": false, + "cls": "small", + "target": { + "weight": 1, + "isEncrypted": false, + "resultIndex": 0, + "id": 2, + "index": 2, + "px": 243.83192673800565, + "py": 171.34084903772512, + "highlighted": false, + "routerId": "R.0", + "cls": "", + "nodeType": "normal", + "connectionId": 3, + "host": "0.0.0.0:20004", + "user": "anonymous", + "key": "amqp:/_topo/0/R.0/$management", + "cdir": "out", + "properties": {}, + "name": "R.0.4", + "normals": [ + { + "name": "R.0.4", + "addr": "addr1" + }, + { + "name": "R.0.5", + "addr": "addr1" + }, + { + "name": "R.0.6", + "addr": "addr1" + } + ], + "y": 171.34342749529537, + "x": 243.85250914335518, + "fixed": false + } + }, + { + "right": false, + "uid": "connection/0.0.0.0:20005:3", + "highlighted": false, + "source": { + "index": 0, + "nodeType": "inter-router", + "name": "R.0", + "weight": 4, + "px": 164.29187931882578, + "py": 175.80207806090868, + "resultIndex": null, + "id": 0, + "routerId": "R.0", + "host": "0.0.0.0:20001", + "highlighted": false, + "key": "amqp:/_topo/0/R.0/$management", + "y": 175.8087056018603, + "x": 164.29388840186058, + "fixed": 0, + "properties": {}, + "cls": "" + }, + "left": true, + "cls": "small", + "target": { + "weight": 1, + "isEncrypted": false, + "resultIndex": 0, + "id": 3, + "index": 3, + "px": 102.4586287826755, + "py": 125.00260883166828, + "highlighted": false, + "routerId": "R.0", + "cls": "", + "nodeType": "normal", + "connectionId": 3, + "host": "0.0.0.0:20005", + "user": "anonymous", + "key": "amqp:/_topo/0/R.0/$management", + "cdir": "in", + "properties": {}, + "name": "R.0.3", + "normals": [ + { + "name": "R.0.3", + "addr": "addr1" + }, + { + "name": "R.0.4", + "addr": "addr1" + } + ], + "y": 124.99076765235854, + "x": 102.4404612736399, + "fixed": false + } + }, + { + "right": true, + "uid": "connection/0.0.0.0:20006:4", + "highlighted": false, + "source": { + "index": 0, + "nodeType": "inter-router", + "name": "R.0", + "weight": 4, + "px": 164.29187931882578, + "py": 175.80207806090868, + "resultIndex": null, + "id": 0, + "routerId": "R.0", + "host": "0.0.0.0:20001", + "highlighted": false, + "key": "amqp:/_topo/0/R.0/$management", + "y": 175.8087056018603, + "x": 164.29388840186058, + "fixed": 0, + "properties": {}, + "cls": "" + }, + "left": true, + "cls": "small", + "target": { + "weight": 1, + "isEncrypted": false, + "resultIndex": 0, + "id": 4, + "index": 4, + "px": 183.762386523301, + "py": 98.37984932621536, + "highlighted": false, + "routerId": "R.0", + "cls": "", + "nodeType": "normal", + "connectionId": 4, + "host": "0.0.0.0:20006", + "user": "anonymous", + "key": "amqp:/_topo/0/R.0/$management", + "cdir": "both", + "properties": {}, + "name": "R.0.7", + "normals": [ + { + "name": "R.0.7", + "addr": "addr1" + } + ], + "y": 98.36087509657327, + "x": 183.77066774374404, + "fixed": false + } + } + ], + "topology": "config-1" +} \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org