[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