[rhmessaging-commits] rhmessaging commits: r1747 - in mgmt: cumin/python/cumin and 4 other directories.
rhmessaging-commits at lists.jboss.org
rhmessaging-commits at lists.jboss.org
Mon Mar 3 08:08:47 EST 2008
Author: justi9
Date: 2008-03-03 08:08:47 -0500 (Mon, 03 Mar 2008)
New Revision: 1747
Modified:
mgmt/cumin/bin/cumin
mgmt/cumin/bin/cumin-test
mgmt/cumin/python/cumin/__init__.py
mgmt/cumin/python/cumin/model.py
mgmt/mint/bin/mint-test
mgmt/mint/python/mint/__init__.py
mgmt/mint/python/mint/schema.py
mgmt/mint/python/mint/schemaparser.py
mgmt/mint/sql/schema.sql
mgmt/notes/justin-todo.txt
Log:
Updates mint with the newest management api changes.
Improves the command line interfaces of mint-test and cumin-test a
little. You can now directly override cumin home and the spec file
location.
Modified: mgmt/cumin/bin/cumin
===================================================================
--- mgmt/cumin/bin/cumin 2008-03-01 20:00:42 UTC (rev 1746)
+++ mgmt/cumin/bin/cumin 2008-03-03 13:08:47 UTC (rev 1747)
@@ -16,8 +16,8 @@
sys.exit(1)
-def do_main(home, data, port, debug):
- app = Cumin(home, data)
+def do_main(home, data, spec, port, debug):
+ app = Cumin(home, data, spec)
if debug:
app.enable_debug()
@@ -54,13 +54,14 @@
if "-h" in sys.argv or "--help" in sys.argv:
usage()
- home = os.environ.get("CUMIN_HOME")
+ home = os.environ.get("CUMIN_HOME", os.path.normpath("/usr/share/cumin"))
+ spec = os.environ.get("AMQP_SPEC",
+ os.path.normpath("/usr/share/amqp/amqp.0-10-preview.xml"))
- if not home:
- home = os.path.normpath("/usr/share/cumin")
-
config = Config()
+ config.add_param("home", "s", home)
config.add_param("data", "s", "postgresql://cumin@localhost/cumin")
+ config.add_param("spec", "s", spec)
config.add_param("port", "i", 80)
config.add_param("debug", "b", False)
@@ -70,11 +71,13 @@
config.prt()
+ home = config.get("home")
data = config.get("data")
+ spec = config.get("spec")
port = config.get("port")
debug = config.get("debug")
- do_main(home, data, port, debug)
+ do_main(home, data, spec, port, debug)
if __name__ == "__main__":
try:
Modified: mgmt/cumin/bin/cumin-test
===================================================================
--- mgmt/cumin/bin/cumin-test 2008-03-01 20:00:42 UTC (rev 1746)
+++ mgmt/cumin/bin/cumin-test 2008-03-03 13:08:47 UTC (rev 1747)
@@ -12,16 +12,18 @@
print """Usage: cumin-test OPTIONS...
Options:
-h, --help Print this message
- --data URL Connect to database at URL
+ --home PATH Use home directory at PATH
+ --data URI Connect to database at URI
(default postgesql://cumin@localhost/cumin)
+ --spec PATH Use AMQP spec file at PATH
--broker ADDRESS Register new test broker at ADDRESS
(default localhost:5672)
--profile
--debug"""
sys.exit(1)
-def do_main(home, data, broker_host, broker_port, debug):
- app = Cumin(home, data)
+def do_main(home, data, spec, broker_host, broker_port, debug):
+ app = Cumin(home, data, spec)
if debug or bench:
app.enable_debug()
@@ -46,13 +48,15 @@
if "-h" in sys.argv or "--help" in sys.argv:
usage()
- home = os.environ.get("CUMIN_HOME")
+ home = os.environ.get("CUMIN_HOME", os.path.normpath("/usr/share/cumin"))
+ spec = os.environ.get("AMQP_SPEC",
+ os.path.normpath("/usr/share/amqp/amqp.0-10-preview.xml"))
- if not home:
- home = os.path.normpath("/usr/share/cumin")
-
config = Config()
+
+ config.add_param("home", "s", home)
config.add_param("data", "s", "postgresql://cumin@localhost/cumin")
+ config.add_param("spec", "s", spec)
config.add_param("broker", "s", "localhost:5672")
config.add_param("debug", "b", True)
config.add_param("profile", "b", False)
@@ -63,8 +67,9 @@
config.prt()
- home = os.environ["CUMIN_HOME"]
+ home = config.get("home")
data = config.get("data")
+ spec = config.get("spec")
broker = config.get("broker")
debug = config.get("debug")
profile = config.get("profile")
@@ -78,7 +83,7 @@
prof = Profile()
try:
- statement = "do_main('%s', '%s', %s, %i, %r)" \
+ statement = "do_main('%s', '%s', '%s', %s, %i, %r)" \
% (home, data, host, port, debug)
prof.run(statement)
@@ -101,7 +106,7 @@
stats.strip_dirs()
else:
- do_main(home, data, host, port, debug)
+ do_main(home, data, spec, host, port, debug)
if __name__ == "__main__":
main()
Modified: mgmt/cumin/python/cumin/__init__.py
===================================================================
--- mgmt/cumin/python/cumin/__init__.py 2008-03-01 20:00:42 UTC (rev 1746)
+++ mgmt/cumin/python/cumin/__init__.py 2008-03-03 13:08:47 UTC (rev 1747)
@@ -20,13 +20,13 @@
from action import ActionPage
class Cumin(Application):
- def __init__(self, home, data_url):
+ def __init__(self, home, data_url, spec_path):
super(Cumin, self).__init__()
self.home = home
self.add_resource_dir(os.path.join(self.home, "resources"))
- self.model = CuminModel(self, data_url)
+ self.model = CuminModel(self, data_url, spec_path)
self.broker_connect_thread = BrokerConnectThread(self.model)
self.main_page = CuminPage(self, "index.html")
Modified: mgmt/cumin/python/cumin/model.py
===================================================================
--- mgmt/cumin/python/cumin/model.py 2008-03-01 20:00:42 UTC (rev 1746)
+++ mgmt/cumin/python/cumin/model.py 2008-03-03 13:08:47 UTC (rev 1747)
@@ -11,9 +11,9 @@
from parameters import *
class CuminModel(object):
- def __init__(self, app, data_url):
+ def __init__(self, app, data_url, spec_path):
self.app = app
- self.data = MintModel(data_url)
+ self.data = MintModel(data_url, spec_path)
self.classes = list()
self.invocations = set()
Modified: mgmt/mint/bin/mint-test
===================================================================
--- mgmt/mint/bin/mint-test 2008-03-01 20:00:42 UTC (rev 1746)
+++ mgmt/mint/bin/mint-test 2008-03-03 13:08:47 UTC (rev 1747)
@@ -1,18 +1,18 @@
#!/usr/bin/env python
-import sys
-from qpid.management import ManagedBroker
+import sys, os
from time import sleep
from mint import *
def usage():
- print "Usage: mint-test DATABASE-URI BROKER-ADDRESS"
- print "Example: mint-test postgresql://cumin@postgresql/cumin localhost:5672"
+ print "Usage: mint-test [DATABASE-URI] [BROKER-ADDRESS]"
+ print "Example: mint-test postgresql://cumin@localhost/cumin localhost:5672"
sys.exit(1)
-def do_main(uri, host, port):
- model = MintModel(uri)
+def do_main(uri, spec, host, port):
+ model = MintModel(uri, spec, debug=True)
+ model.check()
model.init()
conn = BrokerConnection(model, host, port)
@@ -25,14 +25,25 @@
conn.close()
def main():
- if len(sys.argv) != 3:
+ if "-h" in sys.argv or "--help" in sys.argv:
usage()
- uri, addr = sys.argv[1:]
+ try:
+ uri = sys.argv[1]
+ except IndexError:
+ uri = "postgresql://cumin@localhost/cumin"
+
+ try:
+ addr = sys.argv[2]
+ except IndexError:
+ addr = "localhost:5672"
+
+ spec = os.environ.get("AMQP_SPEC",
+ os.path.normpath("/usr/share/amqp/amqp.0-10-preview.xml"))
host, port = addr.split(":")
try:
- do_main(uri, host, int(port))
+ do_main(uri, spec, host, int(port))
except KeyboardInterrupt:
pass
Modified: mgmt/mint/python/mint/__init__.py
===================================================================
--- mgmt/mint/python/mint/__init__.py 2008-03-01 20:00:42 UTC (rev 1746)
+++ mgmt/mint/python/mint/__init__.py 2008-03-03 13:08:47 UTC (rev 1747)
@@ -1,5 +1,5 @@
-import socket
-from qpid.management import ManagedBroker
+import os, socket, qpid
+from qpid.management import managementChannel, managementClient
from datetime import *
from sqlobject import *
from threading import Lock
@@ -22,9 +22,12 @@
joinMethodName="registrations"))
class BrokerRegistration(SQLObject):
- name = StringCol(length=1000, default=None)
- host = StringCol(length=1000, default=None)
- port = SmallIntCol(default=None)
+ class sqlmeta:
+ lazyUpdate = True
+
+ name = StringCol(length=1000, default=None, unique=True, notNone=True)
+ host = StringCol(length=1000, default=None, notNone=True)
+ port = SmallIntCol(default=None, notNone=True)
broker = ForeignKey("Broker", cascade="null", default=None)
groups = SQLRelatedJoin("BrokerGroup",
intermediateTable="broker_group_mapping",
@@ -46,33 +49,51 @@
print_exc()
class BrokerGroup(SQLObject):
+ class sqlmeta:
+ lazyUpdate = True
+
name = StringCol(length=1000, default=None)
brokers = SQLRelatedJoin("BrokerRegistration",
intermediateTable="broker_group_mapping",
createRelatedTable=False)
class BrokerGroupMapping(SQLObject):
+ class sqlmeta:
+ lazyUpdate = True
+
brokerRegistration = ForeignKey("BrokerRegistration", notNull=True,
cascade=True)
brokerGroup = ForeignKey("BrokerGroup", notNull=True, cascade=True)
unique = index.DatabaseIndex(brokerRegistration, brokerGroup, unique=True)
class BrokerCluster(SQLObject):
+ class sqlmeta:
+ lazyUpdate = True
+
name = StringCol(length=1000, default=None)
brokers = SQLMultipleJoin("BrokerRegistration", joinColumn="cluster_id")
class BrokerProfile(SQLObject):
+ class sqlmeta:
+ lazyUpdate = True
+
name = StringCol(length=1000, default=None)
brokers = SQLMultipleJoin("BrokerRegistration", joinColumn="profile_id")
properties = SQLMultipleJoin("ConfigProperty", joinColumn="profile_id")
class ConfigProperty(SQLObject):
+ class sqlmeta:
+ lazyUpdate = True
+
name = StringCol(length=1000, default=None)
value = StringCol(length=1000, default=None)
type = StringCol(length=1, default="s")
class ConsoleUser(SQLObject):
- name = StringCol(length=1000, default=None)
+ class sqlmeta:
+ lazyUpdate = True
+
+ name = StringCol(length=1000, default=None, unique=True, notNone=True)
password = StringCol(length=1000, default=None)
lastChallenged = TimestampCol(default=None)
lastLoggedOut = TimestampCol(default=None)
@@ -130,13 +151,21 @@
def __init__(self, model, host, port):
self.model = model
self.key = "%s:%i" % (host, port)
- self.broker = ManagedBroker(host=host, port=port)
+
+ spec = qpid.spec.load(model.specPath)
+ self.client = qpid.client.Client(host, port, spec)
+ self.mclient = managementClient(spec, None,
+ self.model.configCallback,
+ self.model.instCallback,
+ self.model.methodCallback)
+ #self.mclient.schemaListener(self.model.schemaCallback)
+
self.state = None # in (None, "opening", "opened", "closing", "closed")
self.exception = None
- self.broker.configListener(self.key, self.model.configCallback)
- self.broker.instrumentationListener(self.key, self.model.instCallback)
- self.broker.methodListener(self.key, self.model.methodCallback)
+ #self.broker.configListener(self.key, self.model.configCallback)
+ #self.broker.instrumentationListener(self.key, self.model.instCallback)
+ #self.broker.methodListener(self.key, self.model.methodCallback)
def isOpen(self):
return self.state == "opened"
@@ -144,16 +173,22 @@
def open(self):
self.state = "opening"
+ self.model.lock.acquire()
try:
- self.model.lock.acquire()
try:
# XXX I want this to happen after broker start, but the
# callbacks rely on the broker being in the connectedBrokers
# dict
- self.model.connectedBrokers[self.key] = ConnectedBroker(self.broker)
+ self.model.connectedBrokers[self.key] = ConnectedBroker()
- self.broker.start()
+ self.client.start({})
+ self.mchan = managementChannel(self.client.channel(1),
+ self.mclient.topicCb,
+ self.mclient.replyCb,
+ self.key)
+ self.mclient.addChannel(self.mchan)
+
#self.model.connections[self.key] = self
self.state = "opened"
@@ -166,13 +201,11 @@
def close(self):
self.state = "closing"
+ self.model.lock.acquire()
try:
- self.model.lock.acquire()
try:
- if not self.broker.isConnected():
- raise Exception("Broker not connected")
+ self.mclient.removeChannel(self.mchan)
- self.broker.stop()
#del self.model.connections[self.key]
del self.model.connectedBrokers[self.key]
self.state = "closed"
@@ -183,8 +216,7 @@
self.model.lock.release()
class ConnectedBroker:
- def __init__(self, managedBroker):
- self.managedBroker = managedBroker
+ def __init__(self):
self.objs = OriginalIdDict()
def getByOriginalId(self, objType, idOriginal, create=False, args={}):
@@ -194,12 +226,15 @@
return self.objs.getByIndexAttrib(objType, indexAttrib, indexValue, create, args)
class MintModel:
- def __init__(self, dataUri, debug=False):
+ def __init__(self, dataUri, specPath, debug=False):
self.dataUri = dataUri
+ self.specPath = specPath
+ self.debug = debug
+
self.currentMethodId = 1
self.outstandingMethodCalls = dict()
self.connectedBrokers = dict()
- self.debug = debug
+
self.lock = Lock()
def check(self):
@@ -240,8 +275,9 @@
keys.append(key)
return keys
- def configCallback(self, broker, objectName, list, timestamps):
+ def configCallback(self, broker, classInfo, list, timestamps):
self.log("\nCONFIG---------------------------------------------------")
+ objectName = classInfo[1]
self.log(objectName)
d = self.sanitizeDict(dict(list))
connectedBroker = self.connectedBrokers[broker]
@@ -263,8 +299,9 @@
self.log("END CONFIG---------------------------------------------------\n")
return obj
- def instCallback(self, broker, objectName, list, timestamps):
+ def instCallback(self, broker, classInfo, list, timestamps):
self.log("\nINST---------------------------------------------------")
+ objectName = classInfo[1]
self.log(objectName)
d = self.sanitizeDict(dict(list))
connectedBroker = self.connectedBrokers[broker]
Modified: mgmt/mint/python/mint/schema.py
===================================================================
--- mgmt/mint/python/mint/schema.py 2008-03-01 20:00:42 UTC (rev 1746)
+++ mgmt/mint/python/mint/schema.py 2008-03-03 13:08:47 UTC (rev 1747)
@@ -21,6 +21,11 @@
idOriginal = BigIntCol(default=None)
recTime = TimestampCol(default=None)
system = ForeignKey('System', cascade='null', default=None)
+ osName = StringCol(length=1000, default=None)
+ nodeName = StringCol(length=1000, default=None)
+ release = StringCol(length=1000, default=None)
+ version = StringCol(length=1000, default=None)
+ machine = StringCol(length=1000, default=None)
System.sqlmeta.addJoin(SQLMultipleJoin('SystemStats', joinMethodName='stats'))
@@ -42,13 +47,11 @@
maxConns = SmallIntCol(default=None)
connBacklog = SmallIntCol(default=None)
stagingThreshold = IntCol(default=None)
- storeLib = StringCol(length=1000, default=None)
- asyncStore = BoolCol(default=None)
mgmtPubInterval = SmallIntCol(default=None)
- initialDiskPageSize = IntCol(default=None)
- initialPagesPerQueue = IntCol(default=None)
clusterName = StringCol(length=1000, default=None)
version = StringCol(length=1000, default=None)
+ dataDirEnabled = BoolCol(default=None)
+ dataDir = StringCol(length=1000, default=None)
def joinCluster(self, model, managedBroker, callbackMethod, clusterName):
actualArgs = dict()
@@ -72,6 +75,15 @@
model.connectedBrokers[managedBroker].managedBroker.method(methodId, self.idOriginal, \
classToSchemaNameMap[self.__class__.__name__], "echo", args=actualArgs, packageName="qpid")
+ def connect(self, model, managedBroker, callbackMethod, host, port):
+ """Establish a connection to another broker"""
+ actualArgs = dict()
+ actualArgs["host"] = host
+ actualArgs["port"] = port
+ methodId = model.registerCallback(callbackMethod)
+ model.connectedBrokers[managedBroker].managedBroker.method(methodId, self.idOriginal, \
+ classToSchemaNameMap[self.__class__.__name__], "connect", args=actualArgs, packageName="qpid")
+
System.sqlmeta.addJoin(SQLMultipleJoin('Broker', joinMethodName='brokers'))
@@ -189,7 +201,8 @@
unackedMessagesHigh = IntCol(default=None)
messageLatencyMin = BigIntCol(default=None)
messageLatencyMax = BigIntCol(default=None)
- messageLatencyAvg = BigIntCol(default=None)
+ messageLatencyAverage = BigIntCol(default=None)
+ messageLatencySamples = BigIntCol(default=None)
Queue.sqlmeta.addJoin(SQLMultipleJoin('QueueStats', joinMethodName='stats'))
@@ -307,6 +320,97 @@
Client.sqlmeta.addJoin(SQLMultipleJoin('ClientStats', joinMethodName='stats'))
+class Link(SQLObject):
+ class sqlmeta:
+ lazyUpdate = True
+
+ idOriginal = BigIntCol(default=None)
+ recTime = TimestampCol(default=None)
+ creationTime = TimestampCol(default=None)
+ deletionTime = TimestampCol(default=None)
+ managedBroker = StringCol(length=1000, default=None)
+ statsCurr = ForeignKey('LinkStats', cascade='null', default=None)
+ statsPrev = ForeignKey('LinkStats', cascade='null', default=None)
+ vhost = ForeignKey('Vhost', cascade='null', default=None)
+ address = StringCol(length=1000, default=None)
+
+ def close(self, model, managedBroker, callbackMethod):
+ actualArgs = dict()
+ methodId = model.registerCallback(callbackMethod)
+ model.connectedBrokers[managedBroker].managedBroker.method(methodId, self.idOriginal, \
+ classToSchemaNameMap[self.__class__.__name__], "close", args=actualArgs, packageName="qpid")
+
+ def bridge(self, model, managedBroker, callbackMethod, src, dest, key, src_is_queue, src_is_local):
+ """Bridge messages over the link"""
+ actualArgs = dict()
+ actualArgs["src"] = src
+ actualArgs["dest"] = dest
+ actualArgs["key"] = key
+ actualArgs["src_is_queue"] = src_is_queue
+ actualArgs["src_is_local"] = src_is_local
+ methodId = model.registerCallback(callbackMethod)
+ model.connectedBrokers[managedBroker].managedBroker.method(methodId, self.idOriginal, \
+ classToSchemaNameMap[self.__class__.__name__], "bridge", args=actualArgs, packageName="qpid")
+
+Vhost.sqlmeta.addJoin(SQLMultipleJoin('Link', joinMethodName='links'))
+
+
+class LinkStats(SQLObject):
+ class sqlmeta:
+ lazyUpdate = True
+
+ idOriginal = BigIntCol(default=None)
+ recTime = TimestampCol(default=None)
+ link = ForeignKey('Link', cascade='null', default=None)
+ closing = BoolCol(default=None)
+ authIdentity = StringCol(length=1000, default=None)
+ framesFromPeer = BigIntCol(default=None)
+ framesToPeer = BigIntCol(default=None)
+ bytesFromPeer = BigIntCol(default=None)
+ bytesToPeer = BigIntCol(default=None)
+
+Link.sqlmeta.addJoin(SQLMultipleJoin('LinkStats', joinMethodName='stats'))
+
+
+class Bridge(SQLObject):
+ class sqlmeta:
+ lazyUpdate = True
+
+ idOriginal = BigIntCol(default=None)
+ recTime = TimestampCol(default=None)
+ creationTime = TimestampCol(default=None)
+ deletionTime = TimestampCol(default=None)
+ managedBroker = StringCol(length=1000, default=None)
+ statsCurr = ForeignKey('BridgeStats', cascade='null', default=None)
+ statsPrev = ForeignKey('BridgeStats', cascade='null', default=None)
+ link = ForeignKey('Link', cascade='null', default=None)
+ channelId = SmallIntCol(default=None)
+ src = StringCol(length=1000, default=None)
+ dest = StringCol(length=1000, default=None)
+ key = StringCol(length=1000, default=None)
+ srcIsQueue = BoolCol(default=None)
+ srcIsLocal = BoolCol(default=None)
+
+ def close(self, model, managedBroker, callbackMethod):
+ actualArgs = dict()
+ methodId = model.registerCallback(callbackMethod)
+ model.connectedBrokers[managedBroker].managedBroker.method(methodId, self.idOriginal, \
+ classToSchemaNameMap[self.__class__.__name__], "close", args=actualArgs, packageName="qpid")
+
+Link.sqlmeta.addJoin(SQLMultipleJoin('Bridge', joinMethodName='bridges'))
+
+
+class BridgeStats(SQLObject):
+ class sqlmeta:
+ lazyUpdate = True
+
+ idOriginal = BigIntCol(default=None)
+ recTime = TimestampCol(default=None)
+ bridge = ForeignKey('Bridge', cascade='null', default=None)
+
+Bridge.sqlmeta.addJoin(SQLMultipleJoin('BridgeStats', joinMethodName='stats'))
+
+
class Session(SQLObject):
class sqlmeta:
lazyUpdate = True
@@ -509,6 +613,10 @@
schemaNameToClassMap['binding'] = Binding
classToSchemaNameMap['Client'] = 'client'
schemaNameToClassMap['client'] = Client
+classToSchemaNameMap['Link'] = 'link'
+schemaNameToClassMap['link'] = Link
+classToSchemaNameMap['Bridge'] = 'bridge'
+schemaNameToClassMap['bridge'] = Bridge
classToSchemaNameMap['Session'] = 'session'
schemaNameToClassMap['session'] = Session
classToSchemaNameMap['Destination'] = 'destination'
Modified: mgmt/mint/python/mint/schemaparser.py
===================================================================
--- mgmt/mint/python/mint/schemaparser.py 2008-03-01 20:00:42 UTC (rev 1746)
+++ mgmt/mint/python/mint/schemaparser.py 2008-03-03 13:08:47 UTC (rev 1747)
@@ -24,7 +24,7 @@
self.dataTypesMap["uint8"] = self.dataTypesMap["hilo8"] = self.dataTypesMap["count8"] = self.dataTypesMap["mma8"] = "SmallIntCol"
self.dataTypesMap["uint16"] = self.dataTypesMap["hilo16"] = self.dataTypesMap["count16"] = self.dataTypesMap["mma16"] = "SmallIntCol"
self.dataTypesMap["uint32"] = self.dataTypesMap["hilo32"] = self.dataTypesMap["count32"] = self.dataTypesMap["mma32"] = "IntCol"
- self.dataTypesMap["uint64"] = self.dataTypesMap["hilo64"] = self.dataTypesMap["count64"] = self.dataTypesMap["mma64"] = "BigIntCol"
+ self.dataTypesMap["uint64"] = self.dataTypesMap["hilo64"] = self.dataTypesMap["count64"] = self.dataTypesMap["mma64"] = self.dataTypesMap["mmaTime"] = "BigIntCol"
self.dataTypesMap["absTime"] = self.dataTypesMap["deltaTime"] = "BigIntCol"
self.dataTypesMap["bool"] = "BoolCol"
self.dataTypesMap["sstr"] = self.dataTypesMap["lstr"] = "StringCol"
Modified: mgmt/mint/sql/schema.sql
===================================================================
--- mgmt/mint/sql/schema.sql 2008-03-01 20:00:42 UTC (rev 1746)
+++ mgmt/mint/sql/schema.sql 2008-03-03 13:08:47 UTC (rev 1747)
@@ -22,9 +22,9 @@
CREATE TABLE broker_registration (
id SERIAL PRIMARY KEY,
- name VARCHAR(1000),
- host VARCHAR(1000),
- port SMALLINT,
+ name VARCHAR(1000) NOT NULL UNIQUE,
+ host VARCHAR(1000) NOT NULL,
+ port SMALLINT NOT NULL,
broker_id INT,
cluster_id INT,
profile_id INT
@@ -39,7 +39,7 @@
CREATE TABLE console_user (
id SERIAL PRIMARY KEY,
- name VARCHAR(1000),
+ name VARCHAR(1000) NOT NULL UNIQUE,
password VARCHAR(1000),
last_challenged TIMESTAMP,
last_logged_out TIMESTAMP
@@ -67,6 +67,31 @@
msg_matched BIGINT
);
+CREATE TABLE bridge (
+ id SERIAL PRIMARY KEY,
+ id_original BIGINT,
+ rec_time TIMESTAMP,
+ creation_time TIMESTAMP,
+ deletion_time TIMESTAMP,
+ managed_broker VARCHAR(1000),
+ stats_curr_id INT,
+ stats_prev_id INT,
+ link_id INT,
+ channel_id SMALLINT,
+ src VARCHAR(1000),
+ dest VARCHAR(1000),
+ key VARCHAR(1000),
+ src_is_queue BOOL,
+ src_is_local BOOL
+);
+
+CREATE TABLE bridge_stats (
+ id SERIAL PRIMARY KEY,
+ id_original BIGINT,
+ rec_time TIMESTAMP,
+ bridge_id INT
+);
+
CREATE TABLE broker (
id SERIAL PRIMARY KEY,
id_original BIGINT,
@@ -82,13 +107,11 @@
max_conns SMALLINT,
conn_backlog SMALLINT,
staging_threshold INT,
- store_lib VARCHAR(1000),
- async_store BOOL,
mgmt_pub_interval SMALLINT,
- initial_disk_page_size INT,
- initial_pages_per_queue INT,
cluster_name VARCHAR(1000),
- version VARCHAR(1000)
+ version VARCHAR(1000),
+ data_dir_enabled BOOL,
+ data_dir VARCHAR(1000)
);
CREATE TABLE broker_stats (
@@ -207,6 +230,32 @@
byte_routes BIGINT
);
+CREATE TABLE link (
+ id SERIAL PRIMARY KEY,
+ id_original BIGINT,
+ rec_time TIMESTAMP,
+ creation_time TIMESTAMP,
+ deletion_time TIMESTAMP,
+ managed_broker VARCHAR(1000),
+ stats_curr_id INT,
+ stats_prev_id INT,
+ vhost_id INT,
+ address VARCHAR(1000)
+);
+
+CREATE TABLE link_stats (
+ id SERIAL PRIMARY KEY,
+ id_original BIGINT,
+ rec_time TIMESTAMP,
+ link_id INT,
+ closing BOOL,
+ auth_identity VARCHAR(1000),
+ frames_from_peer BIGINT,
+ frames_to_peer BIGINT,
+ bytes_from_peer BIGINT,
+ bytes_to_peer BIGINT
+);
+
CREATE TABLE producer (
id SERIAL PRIMARY KEY,
id_original BIGINT,
@@ -291,7 +340,8 @@
unacked_messages_high INT,
message_latency_min BIGINT,
message_latency_max BIGINT,
- message_latency_avg BIGINT
+ message_latency_average BIGINT,
+ message_latency_samples BIGINT
);
CREATE TABLE session (
@@ -336,7 +386,12 @@
id SERIAL PRIMARY KEY,
id_original BIGINT,
rec_time TIMESTAMP,
- system_id INT
+ system_id INT,
+ os_name VARCHAR(1000),
+ node_name VARCHAR(1000),
+ release VARCHAR(1000),
+ version VARCHAR(1000),
+ machine VARCHAR(1000)
);
CREATE TABLE vhost (
@@ -379,6 +434,14 @@
ALTER TABLE binding_stats ADD CONSTRAINT binding_id_exists FOREIGN KEY (binding_id) REFERENCES binding (id) ON DELETE SET NULL;
+ALTER TABLE bridge ADD CONSTRAINT stats_curr_id_exists FOREIGN KEY (stats_curr_id) REFERENCES bridge_stats (id) ON DELETE SET NULL;
+
+ALTER TABLE bridge ADD CONSTRAINT stats_prev_id_exists FOREIGN KEY (stats_prev_id) REFERENCES bridge_stats (id) ON DELETE SET NULL;
+
+ALTER TABLE bridge ADD CONSTRAINT link_id_exists FOREIGN KEY (link_id) REFERENCES link (id) ON DELETE SET NULL;
+
+ALTER TABLE bridge_stats ADD CONSTRAINT bridge_id_exists FOREIGN KEY (bridge_id) REFERENCES bridge (id) ON DELETE SET NULL;
+
ALTER TABLE broker ADD CONSTRAINT stats_curr_id_exists FOREIGN KEY (stats_curr_id) REFERENCES broker_stats (id) ON DELETE SET NULL;
ALTER TABLE broker ADD CONSTRAINT stats_prev_id_exists FOREIGN KEY (stats_prev_id) REFERENCES broker_stats (id) ON DELETE SET NULL;
@@ -421,6 +484,14 @@
ALTER TABLE exchange_stats ADD CONSTRAINT exchange_id_exists FOREIGN KEY (exchange_id) REFERENCES exchange (id) ON DELETE SET NULL;
+ALTER TABLE link ADD CONSTRAINT stats_curr_id_exists FOREIGN KEY (stats_curr_id) REFERENCES link_stats (id) ON DELETE SET NULL;
+
+ALTER TABLE link ADD CONSTRAINT stats_prev_id_exists FOREIGN KEY (stats_prev_id) REFERENCES link_stats (id) ON DELETE SET NULL;
+
+ALTER TABLE link ADD CONSTRAINT vhost_id_exists FOREIGN KEY (vhost_id) REFERENCES vhost (id) ON DELETE SET NULL;
+
+ALTER TABLE link_stats ADD CONSTRAINT link_id_exists FOREIGN KEY (link_id) REFERENCES link (id) ON DELETE SET NULL;
+
ALTER TABLE producer ADD CONSTRAINT stats_curr_id_exists FOREIGN KEY (stats_curr_id) REFERENCES producer_stats (id) ON DELETE SET NULL;
ALTER TABLE producer ADD CONSTRAINT stats_prev_id_exists FOREIGN KEY (stats_prev_id) REFERENCES producer_stats (id) ON DELETE SET NULL;
Modified: mgmt/notes/justin-todo.txt
===================================================================
--- mgmt/notes/justin-todo.txt 2008-03-01 20:00:42 UTC (rev 1746)
+++ mgmt/notes/justin-todo.txt 2008-03-03 13:08:47 UTC (rev 1747)
@@ -8,12 +8,10 @@
* Get rid of single object confirms
- * Add broker reg name unique constraint and validation
-
- * Add unique constraint to user name, and deal with it in cumin-admin
-
Deferred
+ * Rename data_url to data_uri
+
* Blow up if we try to call set_redirect_url twice in a session
* Need to add cherrypy bsd license to binary dist?
More information about the rhmessaging-commits
mailing list