Index: /trunk/packages/invirt-database-server/debian/changelog
===================================================================
--- /trunk/packages/invirt-database-server/debian/changelog	(revision 1288)
+++ /trunk/packages/invirt-database-server/debian/changelog	(revision 1288)
@@ -0,0 +1,375 @@
+invirt-database-server (0.0.1) unstable; urgency=low
+
+  * sipb-xen-database-common -> invirt-database
+  * sipb-xen-database-server -> invirt-database-server (a separate source package)
+  * sipb-xen-database-client -> invirt-xen-config
+
+ -- Evan Broder <broder@mit.edu>  Sat, 25 Oct 2008 19:22:46 -0400
+
+sipb-xen-database (10.36.1) unstable; urgency=low
+
+  * Typo in the new tables
+
+ -- Evan Broder <broder@mit.edu>  Sat, 25 Oct 2008 15:01:47 -0400
+
+sipb-xen-database (10.36) unstable; urgency=low
+
+  * Kill the remnants of the sipb_xen_database package
+  * Add the CDROM mirrors table
+
+ -- Evan Broder <broder@mit.edu>  Sat, 25 Oct 2008 14:48:32 -0400
+
+sipb-xen-database (10.35) unstable; urgency=low
+
+  * Shorten initscript with spiffy new library from sipb-xen-base
+
+ -- Greg Price <price@mit.edu>  Fri, 24 Oct 2008 07:25:56 -0400
+
+sipb-xen-database (10.34) unstable; urgency=low
+
+  * yet another new-sqlalchemy fix, this one post-0.4.2
+
+ -- Greg Price <price@mit.edu>  Thu, 23 Oct 2008 23:02:46 -0400
+
+sipb-xen-database (10.33) unstable; urgency=low
+
+  * Catch calls to restart Postgres and translate them into a sequential
+    stop, then start
+
+ -- Evan Broder <broder@mit.edu>  Mon, 20 Oct 2008 13:05:29 -0400
+
+sipb-xen-database (10.32) unstable; urgency=low
+
+  * invirt.database.clear_cache should actually do something
+
+ -- Evan Broder <broder@mit.edu>  Sun, 19 Oct 2008 02:02:37 -0400
+
+sipb-xen-database (10.31) unstable; urgency=low
+
+  * Database-managed VMs should never even think about bridging
+
+ -- Evan Broder <broder@mit.edu>  Sun, 19 Oct 2008 01:46:45 -0400
+
+sipb-xen-database (10.30.4) unstable; urgency=low
+
+  * Fix a typo in the CDROM image path
+
+ -- Evan Broder <broder@mit.edu>  Wed, 15 Oct 2008 13:21:10 -0400
+
+sipb-xen-database (10.30.3) unstable; urgency=low
+
+  * fix copy-paste errors in initscript: this is database, not console
+  * fix "typo" in initscript for package name printed in logs
+
+ -- Greg Price <price@mit.edu>  Sat, 11 Oct 2008 17:50:11 -0700
+
+sipb-xen-database (10.30.2) unstable; urgency=low
+
+  * Fix a typo in the CDROM lookup in sipb-database
+
+ -- Evan Broder <broder@mit.edu>  Sat, 11 Oct 2008 19:17:05 -0400
+
+sipb-xen-database (10.30.1) unstable; urgency=low
+
+  * Don't strip quotes that won't be there
+
+ -- Evan Broder <broder@mit.edu>  Fri, 10 Oct 2008 01:48:48 -0400
+
+sipb-xen-database (10.30) unstable; urgency=low
+
+  * Look for CD images in /dev/xenvg/image_* and validate image name from
+    the database
+  * Pass the installer arguments unaltered to the kernel, matching the
+    remctl interface
+
+ -- Evan Broder <broder@mit.edu>  Thu, 09 Oct 2008 02:09:42 -0400
+
+sipb-xen-database (10.29) unstable; urgency=low
+
+  * Some fixes in the sipb-database script
+
+ -- Evan Broder <broder@mit.edu>  Mon, 06 Oct 2008 18:55:24 -0400
+
+sipb-xen-database (10.28) unstable; urgency=low
+
+  * Re-establish the database connection if the server goes AWOL
+
+ -- Evan Broder <broder@mit.edu>  Sat, 04 Oct 2008 23:19:59 -0400
+
+sipb-xen-database (10.27) unstable; urgency=low
+
+  * Update sipb-database to work with newer SQLAlchemy and Xen
+
+ -- Evan Broder <broder@mit.edu>  Fri, 03 Oct 2008 20:08:16 -0400
+
+sipb-xen-database (10.26.1) unstable; urgency=low
+
+  * We want autoflush off, too
+
+ -- Evan Broder <broder@mit.edu>  Fri, 03 Oct 2008 19:22:12 -0400
+
+sipb-xen-database (10.26) unstable; urgency=low
+
+  * Disable transactions by default
+
+ -- Evan Broder <broder@mit.edu>  Thu, 02 Oct 2008 19:40:34 -0400
+
+sipb-xen-database (10.25) unstable; urgency=low
+
+  * add remote and console to pg_hba.conf template
+  * fix init script so it works
+  * port more code to sqlalchemy 0.4
+
+ -- Greg Price <price@mit.edu>  Wed, 01 Oct 2008 19:30:26 -0400
+
+sipb-xen-database (10.24) unstable; urgency=low
+
+  * Update postgresql.conf for Hardy
+
+ -- Evan Broder <broder@mit.edu>  Wed, 01 Oct 2008 03:12:36 -0400
+
+sipb-xen-database (10.23) unstable; urgency=low
+
+  * switch to postgresql 8.3, as 8.1 isn't in hardy
+
+ -- Greg Price <price@mit.edu>  Wed, 01 Oct 2008 02:09:43 -0400
+
+sipb-xen-database (10.22) unstable; urgency=low
+
+  * depend on postgresql without specifying old version 8.1
+
+ -- Greg Price <price@mit.edu>  Wed, 01 Oct 2008 01:55:49 -0400
+
+sipb-xen-database (10.21) unstable; urgency=low
+
+  * fix distribution
+
+ -- Greg Price <price@mit.edu>  Tue, 30 Sep 2008 23:50:25 -0400
+
+sipb-xen-database (10.20) hardy; urgency=low
+
+  * port to sqlalchemy-0.4, which cuts out some newly deprecated
+    interfaces and allowed some still-present interfaces to bitrot
+
+ -- Greg Price <price@mit.edu>  Mon, 29 Sep 2008 06:06:21 +0000
+
+sipb-xen-database (10.19) unstable; urgency=low
+
+  * Generate config files for pg_hba.conf
+  * replace postgresql.conf
+
+ --  Sam Hartman <hartmans@xvm.mit.edu>  Mon, 25 Aug 2008 00:38:21 +0000
+
+sipb-xen-database (10.18) unstable; urgency=low
+
+  * add 'adminable' column to machines; for selectively, temporarily,
+    enabling admin mode on a machine
+
+ -- Greg Price <price@mit.edu>  Wed,  6 Aug 2008 01:02:59 -0400
+
+sipb-xen-database (10.17) unstable; urgency=low
+
+  * pull IP gateway, network from config
+  * configurabilization complete!
+
+ -- Greg Price <price@mit.edu>  Sun,  3 Aug 2008 01:16:53 -0400
+
+sipb-xen-database (10.16) unstable; urgency=low
+
+  in sipb-xen-database-tables:
+  * use invirt.database, and take default db uri
+
+ -- Greg Price <price@mit.edu>  Sun,  3 Aug 2008 00:51:32 -0400
+
+sipb-xen-database (10.15) unstable; urgency=low
+
+  in /etc/xen/database:
+  * uncommitted changes on black-mesa
+  * sipb_xen_database -> invirt.database
+  * use default db uri
+
+  in invirt.database:
+  * get default db uri from invirt.config
+
+ -- Greg Price <price@mit.edu>  Sun,  3 Aug 2008 00:26:46 -0400
+
+sipb-xen-database (10.14) unstable; urgency=low
+
+  * Rename sipb_xen_database -> invirt.database,
+    keeping old name too for now, for compatibility.
+
+ -- Greg Price <price@mit.edu>  Sat,  2 Aug 2008 23:19:18 -0400
+
+sipb-xen-database (10.13) unstable; urgency=low
+
+  * Modify autoinstalls table to specify distribution/mirror.
+
+ -- Eric Price <ecprice@pseudomyrmex.mit.edu>  Sat, 21 Jun 2008 21:25:21 -0400
+
+sipb-xen-database (10.12) unstable; urgency=low
+
+  * Add a description field.
+
+ -- Anders Kaseorg <andersk@mit.edu>  Wed, 18 Jun 2008 03:52:49 -0400
+
+sipb-xen-database (10.11) unstable; urgency=low
+
+  * Specify ON DELETE CASCADE
+
+ -- Eric Price <ecprice@pseudomyrmex.mit.edu>  Fri, 06 Jun 2008 12:25:35 -0400
+
+sipb-xen-database (10.10) unstable; urgency=low
+
+  * Make machine.acl a private relation.
+
+ -- Eric Price <ecprice@pseudomyrmex.mit.edu>  Fri, 06 Jun 2008 12:03:09 -0400
+
+sipb-xen-database (10.9) unstable; urgency=low
+
+  * Eager loading of relations for better performance.
+
+ -- Eric Price <ecprice@pseudomyrmex.mit.edu>  Mon, 02 Jun 2008 01:39:11 -0400
+
+sipb-xen-database (10.8) unstable; urgency=low
+
+  * Configure serial console on boot
+
+ -- Quentin Smith <quentin@sipb-xen-dev.mit.edu>  Thu,  1 May 2008 20:21:25 -0400
+
+sipb-xen-database (10.7) unstable; urgency=low
+
+  * Depend on psql client in -client package.
+
+ -- Greg Price <price@mit.edu>  Sat, 26 Apr 2008 21:06:41 -0400
+
+sipb-xen-database (10.6) unstable; urgency=low
+
+  * Support autoinstalls table.
+
+ -- Eric Price <ecprice@pseudomyrmex.mit.edu>  Mon, 21 Apr 2008 22:34:46 -0400
+
+sipb-xen-database (10.5) unstable; urgency=low
+
+  * Enable USB tablet device in guests.
+
+ -- Anders Kaseorg <andersk@mit.edu>  Mon, 21 Apr 2008 17:39:59 -0400
+
+sipb-xen-database (10.4.1) unstable; urgency=low
+
+  * Actually export the cache clearing function.
+
+ -- Eric Price <ecprice@pseudomyrmex.mit.edu>  Fri, 28 Mar 2008 21:18:01 -0400
+
+sipb-xen-database (10.4) unstable; urgency=low
+
+  * Ubuntu's dch sucks.
+
+ -- Eric Price <ecprice@sipb-xen-dev.mit.edu>  Fri, 28 Mar 2008 20:43:42 -0400
+
+sipb-xen-database (10.3ubuntu1) gutsy; urgency=low
+
+  * Expose a function for clearing the cache.
+
+ -- Eric Price <ecprice@pseudomyrmex.mit.edu>  Fri, 28 Mar 2008 20:31:06 -0400
+
+sipb-xen-database (10.3) unstable; urgency=low
+
+  * Use 'acl', not 'users', for the reference to the machine_access table.
+
+ -- Eric Price <ecprice@sipb-xen-dev.mit.edu>  Thu, 24 Jan 2008 17:23:33 -0500
+
+sipb-xen-database (10.2) unstable; urgency=low
+
+  * Add MachineAccess to __all__ so it can be imported
+  * Remove unnecessary constructors for database objects
+
+ -- Quentin Smith <quentin@sipb-xen-dev.mit.edu>  Mon, 12 Nov 2007 04:53:47 -0500
+
+sipb-xen-database (10.1) unstable; urgency=low
+
+  * Make sipb-xen-database-tables safer (don't default to drop_all)
+
+ -- Quentin Smith <quentin@sipb-xen-dev.mit.edu>  Mon, 12 Nov 2007 04:39:59 -0500
+
+sipb-xen-database (10) unstable; urgency=low
+
+  * Added a machine_access table for cached ACLs
+
+ -- Quentin Smith <quentin@sipb-xen-dev.mit.edu>  Mon, 12 Nov 2007 04:24:35 -0500
+
+sipb-xen-database (9.0) unstable; urgency=low
+
+  * No changes.
+
+ -- Eric Price <ecprice@sipb-xen-dev.mit.edu>  Wed, 10 Oct 2007 00:17:20 -0400
+
+sipb-xen-database (9) unstable; urgency=low
+
+  * Add administrator column and backrefs to machine.
+
+ -- Eric Price <ecprice@sipb-xen-dev.mit.edu>  Wed, 10 Oct 2007 00:11:47 -0400
+
+sipb-xen-database (8) gutsy; urgency=low
+
+  * Prepend d_ to database VMs.
+
+ -- Eric Price <ecprice@sipb-xen-dev.mit.edu>  Tue,  9 Oct 2007 02:35:51 -0400
+
+sipb-xen-database (7.00002) gutsy; urgency=low
+
+  * Actually import re.
+
+ -- Anders Kaseorg <andersk@mit.edu>  Sun, 07 Oct 2007 04:34:07 -0400
+
+sipb-xen-database (7.00001) gutsy; urgency=low
+
+  * import re.
+
+ -- Anders Kaseorg <andersk@mit.edu>  Sun, 07 Oct 2007 03:40:25 -0400
+
+sipb-xen-database (7) unstable; urgency=low
+
+  * nics primary key should be mac address, not hostname.
+  * Make ip unique, and constructor for nics.
+  * Add a table for boot CDs.
+  * Add cdrom_image parameter.
+  * Regex sanity checking.
+
+ -- Anders Kaseorg <andersk@mit.edu>  Sun, 07 Oct 2007 03:18:30 -0400
+
+sipb-xen-database (6) unstable; urgency=low
+
+  * Adding a script to create lvm volumes
+
+ -- Nelson Elhage <nelhage@mit.edu>  Sat, 22 Sep 2007 13:59:36 -0400
+
+sipb-xen-database (5) unstable; urgency=low
+
+  * Change the host from sipb-vm-1 to sipb-xen-dev
+
+ -- Nelson Elhage <nelhage@mit.edu>  Sat,  8 Sep 2007 16:16:07 -0400
+
+sipb-xen-database (4) unstable; urgency=low
+
+  * Add script=vif-sipbroute to our vif lines
+
+ -- Nelson Elhage <nelhage@mit.edu>  Fri, 24 Aug 2007 22:07:18 -0400
+
+sipb-xen-database (3) unstable; urgency=low
+
+  * Add a connect() line to sipb-database
+  * Fix some other bugs in sipb-database
+
+ -- Nelson Elhage <nelhage@mit.edu>  Sun, 19 Aug 2007 19:40:08 -0400
+
+sipb-xen-database (2) unstable; urgency=low
+
+  * Fix the postinit and prerm scripts to create a sipb-xen user
+
+ -- Nelson Elhage <nelhage@mit.edu>  Thu, 16 Aug 2007 16:27:36 -0400
+
+sipb-xen-database (1) unstable; urgency=low
+
+  * Initial Release.
+
+ -- Nelson Elhage <nelhage@mit.edu>  Sun, 15 Jul 2007 16:01:16 -0400
Index: /trunk/packages/invirt-database-server/debian/compat
===================================================================
--- /trunk/packages/invirt-database-server/debian/compat	(revision 1288)
+++ /trunk/packages/invirt-database-server/debian/compat	(revision 1288)
@@ -0,0 +1,1 @@
+5
Index: /trunk/packages/invirt-database-server/debian/control
===================================================================
--- /trunk/packages/invirt-database-server/debian/control	(revision 1288)
+++ /trunk/packages/invirt-database-server/debian/control	(revision 1288)
@@ -0,0 +1,12 @@
+Source: invirt-database-server
+Section: net
+Priority: extra
+Maintainer: Invirt project <invirt@mit.edu>
+Build-Depends: cdbs, debhelper (>= 5), config-package-dev, postgresql-8.3
+Standards-Version: 3.8.0
+
+Package: invirt-database-server
+Architecture: all
+Depends: ${misc:Depends}, ${python:Depends}, postgresql-8.3, python-sqlalchemy, python-psycopg2, invirt-database-common, adduser, sipb-xen-base
+Description: Installs the Invirt database server
+ This tracks all the user VMs and is accessed from the VM host
Index: /trunk/packages/invirt-database-server/debian/copyright
===================================================================
--- /trunk/packages/invirt-database-server/debian/copyright	(revision 1288)
+++ /trunk/packages/invirt-database-server/debian/copyright	(revision 1288)
@@ -0,0 +1,16 @@
+This software was written as part of the Invirt project <invirt@mit.edu>.
+
+Copyright :
+
+  This program is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+On Debian systems, the complete text of the GNU General Public License
+can be found in the file /usr/share/common-licenses/GPL.
Index: /trunk/packages/invirt-database-server/debian/invirt-database-server.init
===================================================================
--- /trunk/packages/invirt-database-server/debian/invirt-database-server.init	(revision 1288)
+++ /trunk/packages/invirt-database-server/debian/invirt-database-server.init	(revision 1288)
@@ -0,0 +1,19 @@
+#!/bin/bash
+### BEGIN INIT INFO
+# Provides:          invirt-database-server
+# Required-Start:    $local_fs $remote_fs
+# Required-Stop:     $local_fs $remote_fs
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: Invirt database server
+# Description:       
+### END INIT INFO
+
+PACKAGE=invirt-database-server
+PARENTPACKAGE=postgresql-8.3
+GEN_FILES=/etc/postgresql/8.3/main/pg_hba.conf
+
+dpkg -s "$PACKAGE" >/dev/null 2>/dev/null || exit 0
+
+. /lib/init/config-init.sh
+config_init "$1"
Index: /trunk/packages/invirt-database-server/debian/invirt-database-server.install
===================================================================
--- /trunk/packages/invirt-database-server/debian/invirt-database-server.install	(revision 1288)
+++ /trunk/packages/invirt-database-server/debian/invirt-database-server.install	(revision 1288)
@@ -0,0 +1,3 @@
+postgresql-8.3.invirt etc/init.d
+pg_hba.conf.mako etc/postgresql/8.3/main
+invirt-database-tables usr/bin
Index: /trunk/packages/invirt-database-server/debian/invirt-database-server.postinst
===================================================================
--- /trunk/packages/invirt-database-server/debian/invirt-database-server.postinst	(revision 1288)
+++ /trunk/packages/invirt-database-server/debian/invirt-database-server.postinst	(revision 1288)
@@ -0,0 +1,53 @@
+#!/bin/sh
+# postinst script for invirt-database-server
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <postinst> `configure' <most-recently-configured-version>
+#        * <old-postinst> `abort-upgrade' <new version>
+#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+#          <new-version>
+#        * <postinst> `abort-remove'
+#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+#          <failed-install-package> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+# Note that by moving this above our generated code we could run into significant problems
+# if we happened to start a daemon, and use debconf
+# We move this up here because we need the diversion of postgresql.conf to happen before we create tables
+
+#DEBHELPER#
+
+
+case "$1" in
+    configure)
+        #Don't create users on upgrade
+        if [ -z "$2" ]; then
+            # Don't fail if the user/database already exists
+            su postgres -c 'createuser invirt -S -d -R'    || true
+            su postgres -c 'createdb invirt -O invirt'   || true
+            adduser --system invirt
+        fi
+	/etc/init.d/postgresql-8.3 restart
+        su invirt -s /bin/sh -c 'invirt-database-tables create'
+    ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+exit 0
+
+
Index: /trunk/packages/invirt-database-server/debian/invirt-database-server.prerm
===================================================================
--- /trunk/packages/invirt-database-server/debian/invirt-database-server.prerm	(revision 1288)
+++ /trunk/packages/invirt-database-server/debian/invirt-database-server.prerm	(revision 1288)
@@ -0,0 +1,45 @@
+#!/bin/sh
+# prerm script for invirt-database-server
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <prerm> `remove'
+#        * <old-prerm> `upgrade' <new-version>
+#        * <new-prerm> `failed-upgrade' <old-version>
+#        * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
+#        * <deconfigured's-prerm> `deconfigure' `in-favour'
+#          <package-being-installed> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+    remove|deconfigure)
+
+        # This will destroy data -- do we want to do this?
+        # su postgres -c 'dropdb invirt'
+        # su postgres -c 'dropuser invirt'
+        deluser invirt
+    ;;
+
+    upgrade|failed-upgrade)
+    ;;
+
+    *)
+        echo "prerm called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
Index: /trunk/packages/invirt-database-server/debian/rules
===================================================================
--- /trunk/packages/invirt-database-server/debian/rules	(revision 1288)
+++ /trunk/packages/invirt-database-server/debian/rules	(revision 1288)
@@ -0,0 +1,12 @@
+#!/usr/bin/make -f
+
+DEB_DIVERT_EXTENSION = .invirt
+
+DEB_TRANSFORM_FILES_invirt-database-server += \
+	/etc/postgresql/8.3/main/postgresql.conf.invirt
+
+DEB_DIVERT_FILES_invirt-database-server += \
+	/etc/init.d/postgresql-8.3.invirt
+
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/rules/config-package.mk
Index: /trunk/packages/invirt-database-server/debian/transform_postgresql.conf.invirt
===================================================================
--- /trunk/packages/invirt-database-server/debian/transform_postgresql.conf.invirt	(revision 1288)
+++ /trunk/packages/invirt-database-server/debian/transform_postgresql.conf.invirt	(revision 1288)
@@ -0,0 +1,3 @@
+#!/usr/bin/perl -0p
+
+s/^#?listen_addresses = '[^']*'(.*)$/listen_address = '*'$1/m or die;
Index: /trunk/packages/invirt-database-server/invirt-database-tables
===================================================================
--- /trunk/packages/invirt-database-server/invirt-database-tables	(revision 1288)
+++ /trunk/packages/invirt-database-server/invirt-database-tables	(revision 1288)
@@ -0,0 +1,20 @@
+#!/usr/bin/env python
+
+from invirt import database
+import sys
+
+def usage():
+    print >>sys.stderr, "Usage: %s [create|drop]" %(sys.argv[0],)
+    sys.exit(-1)
+
+if len(sys.argv) == 1:
+    usage()
+
+database.connect()
+
+if sys.argv[1] == "create":
+    database.meta.create_all()
+elif sys.argv[1] == "drop":
+    database.meta.drop_all()
+else:
+    usage()
Index: /trunk/packages/invirt-database-server/pg_hba.conf.mako
===================================================================
--- /trunk/packages/invirt-database-server/pg_hba.conf.mako	(revision 1288)
+++ /trunk/packages/invirt-database-server/pg_hba.conf.mako	(revision 1288)
@@ -0,0 +1,87 @@
+<% from invirt.config import structs as cfg %>\
+# PostgreSQL Client Authentication Configuration File
+# ===================================================
+#
+# Refer to the PostgreSQL Administrator's Guide, chapter "Client
+# Authentication" for a complete description.  A short synopsis
+# follows.
+#
+# This file controls: which hosts are allowed to connect, how clients
+# are authenticated, which PostgreSQL user names they can use, which
+# databases they can access.  Records take one of these forms:
+#
+# local      DATABASE  USER  METHOD  [OPTION]
+# host       DATABASE  USER  CIDR-ADDRESS  METHOD  [OPTION]
+# hostssl    DATABASE  USER  CIDR-ADDRESS  METHOD  [OPTION]
+# hostnossl  DATABASE  USER  CIDR-ADDRESS  METHOD  [OPTION]
+#
+# (The uppercase items must be replaced by actual values.)
+#
+# The first field is the connection type: "local" is a Unix-domain socket,
+# "host" is either a plain or SSL-encrypted TCP/IP socket, "hostssl" is an
+# SSL-encrypted TCP/IP socket, and "hostnossl" is a plain TCP/IP socket.
+#
+# DATABASE can be "all", "sameuser", "samerole", a database name, or
+# a comma-separated list thereof.
+#
+# USER can be "all", a user name, a group name prefixed with "+", or
+# a comma-separated list thereof.  In both the DATABASE and USER fields
+# you can also write a file name prefixed with "@" to include names from
+# a separate file.
+#
+# CIDR-ADDRESS specifies the set of hosts the record matches.
+# It is made up of an IP address and a CIDR mask that is an integer
+# (between 0 and 32 (IPv4) or 128 (IPv6) inclusive) that specifies
+# the number of significant bits in the mask.  Alternatively, you can write
+# an IP address and netmask in separate columns to specify the set of hosts.
+#
+# METHOD can be "trust", "reject", "md5", "crypt", "password",
+# "krb5", "ident", or "pam".  Note that "password" sends passwords
+# in clear text; "md5" is preferred since it sends encrypted passwords.
+#
+# OPTION is the ident map or the name of the PAM service, depending on METHOD.
+#
+# Database and user names containing spaces, commas, quotes and other special
+# characters must be quoted. Quoting one of the keywords "all", "sameuser" or
+# "samerole" makes the name lose its special character, and just match a
+# database or username with that name.
+#
+# This file is read on server startup and when the postmaster receives
+# a SIGHUP signal.  If you edit the file on a running system, you have
+# to SIGHUP the postmaster for the changes to take effect.  You can use
+# "pg_ctl reload" to do that.
+
+# Put your actual configuration here
+# ----------------------------------
+#
+# If you want to allow non-local connections, you need to add more
+# "host" records. In that case you will also need to make PostgreSQL listen
+# on a non-local interface via the listen_addresses configuration parameter,
+# or via the -i or -h command line switches.
+#
+
+
+
+
+# DO NOT DISABLE!
+# If you change this first entry you will need to make sure that the
+# database
+# super user can access the database using some other method.
+# Noninteractive
+# access to all databases is required during automatic maintenance
+# (autovacuum, daily cronjob, replication, and similar tasks).
+#
+# Database administrative login by UNIX sockets
+local   all         postgres                          ident sameuser
+
+# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
+
+# "local" is for Unix domain socket connections only
+local   all         all                               ident sameuser
+# IPv4 local connections:
+host    all         all         127.0.0.1/32          md5
+# IPv6 local connections:
+host    all         all         ::1/128               md5
+% for m in cfg.hosts + [cfg.db, cfg.remote, cfg.console]:
+host	${cfg.db.dbname}	${cfg.db.user}	${m.ip}/32	trust
+% endfor
Index: /trunk/packages/invirt-database-server/postgresql-8.3.invirt
===================================================================
--- /trunk/packages/invirt-database-server/postgresql-8.3.invirt	(revision 1288)
+++ /trunk/packages/invirt-database-server/postgresql-8.3.invirt	(revision 1288)
@@ -0,0 +1,29 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides:          postgresql postgresql-8.3
+# Required-Start:    $local_fs $remote_fs $network $time
+# Required-Stop:     $local_fs $remote_fs $network $time
+# Should-Start:      $syslog
+# Should-Stop:       $syslog
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: PostgreSQL 8.3 RDBMS server
+# Description:       This script proxies requests to the default postgresql-8.3,
+#                    except for restart, which it translates to a stop request,
+#                    and then a start request, so that PostgreSQL is shut down
+#                    with a fast shutdown
+### END INIT INFO
+
+case "$1" in
+  restart)
+        invoke-rc.d postgresql-8.3.invirt-orig stop
+        invoke-rc.d postgresql-8.3.invirt-orig start
+        exit $?
+	;;
+  *)
+        invoke-rc.d postgresql-8.3.invirt-orig "$1"
+        exit $?
+	;;
+esac
+
+:
Index: /trunk/packages/invirt-database/debian/changelog
===================================================================
--- /trunk/packages/invirt-database/debian/changelog	(revision 1288)
+++ /trunk/packages/invirt-database/debian/changelog	(revision 1288)
@@ -0,0 +1,375 @@
+invirt-database (0.0.1) unstable; urgency=low
+
+  * sipb-xen-database-common -> invirt-database
+  * sipb-xen-database-server -> invirt-database-server (a separate source package)
+  * sipb-xen-database-client -> invirt-xen-config
+
+ -- Evan Broder <broder@mit.edu>  Sat, 25 Oct 2008 19:22:46 -0400
+
+sipb-xen-database (10.36.1) unstable; urgency=low
+
+  * Typo in the new tables
+
+ -- Evan Broder <broder@mit.edu>  Sat, 25 Oct 2008 15:01:47 -0400
+
+sipb-xen-database (10.36) unstable; urgency=low
+
+  * Kill the remnants of the sipb_xen_database package
+  * Add the CDROM mirrors table
+
+ -- Evan Broder <broder@mit.edu>  Sat, 25 Oct 2008 14:48:32 -0400
+
+sipb-xen-database (10.35) unstable; urgency=low
+
+  * Shorten initscript with spiffy new library from sipb-xen-base
+
+ -- Greg Price <price@mit.edu>  Fri, 24 Oct 2008 07:25:56 -0400
+
+sipb-xen-database (10.34) unstable; urgency=low
+
+  * yet another new-sqlalchemy fix, this one post-0.4.2
+
+ -- Greg Price <price@mit.edu>  Thu, 23 Oct 2008 23:02:46 -0400
+
+sipb-xen-database (10.33) unstable; urgency=low
+
+  * Catch calls to restart Postgres and translate them into a sequential
+    stop, then start
+
+ -- Evan Broder <broder@mit.edu>  Mon, 20 Oct 2008 13:05:29 -0400
+
+sipb-xen-database (10.32) unstable; urgency=low
+
+  * invirt.database.clear_cache should actually do something
+
+ -- Evan Broder <broder@mit.edu>  Sun, 19 Oct 2008 02:02:37 -0400
+
+sipb-xen-database (10.31) unstable; urgency=low
+
+  * Database-managed VMs should never even think about bridging
+
+ -- Evan Broder <broder@mit.edu>  Sun, 19 Oct 2008 01:46:45 -0400
+
+sipb-xen-database (10.30.4) unstable; urgency=low
+
+  * Fix a typo in the CDROM image path
+
+ -- Evan Broder <broder@mit.edu>  Wed, 15 Oct 2008 13:21:10 -0400
+
+sipb-xen-database (10.30.3) unstable; urgency=low
+
+  * fix copy-paste errors in initscript: this is database, not console
+  * fix "typo" in initscript for package name printed in logs
+
+ -- Greg Price <price@mit.edu>  Sat, 11 Oct 2008 17:50:11 -0700
+
+sipb-xen-database (10.30.2) unstable; urgency=low
+
+  * Fix a typo in the CDROM lookup in sipb-database
+
+ -- Evan Broder <broder@mit.edu>  Sat, 11 Oct 2008 19:17:05 -0400
+
+sipb-xen-database (10.30.1) unstable; urgency=low
+
+  * Don't strip quotes that won't be there
+
+ -- Evan Broder <broder@mit.edu>  Fri, 10 Oct 2008 01:48:48 -0400
+
+sipb-xen-database (10.30) unstable; urgency=low
+
+  * Look for CD images in /dev/xenvg/image_* and validate image name from
+    the database
+  * Pass the installer arguments unaltered to the kernel, matching the
+    remctl interface
+
+ -- Evan Broder <broder@mit.edu>  Thu, 09 Oct 2008 02:09:42 -0400
+
+sipb-xen-database (10.29) unstable; urgency=low
+
+  * Some fixes in the sipb-database script
+
+ -- Evan Broder <broder@mit.edu>  Mon, 06 Oct 2008 18:55:24 -0400
+
+sipb-xen-database (10.28) unstable; urgency=low
+
+  * Re-establish the database connection if the server goes AWOL
+
+ -- Evan Broder <broder@mit.edu>  Sat, 04 Oct 2008 23:19:59 -0400
+
+sipb-xen-database (10.27) unstable; urgency=low
+
+  * Update sipb-database to work with newer SQLAlchemy and Xen
+
+ -- Evan Broder <broder@mit.edu>  Fri, 03 Oct 2008 20:08:16 -0400
+
+sipb-xen-database (10.26.1) unstable; urgency=low
+
+  * We want autoflush off, too
+
+ -- Evan Broder <broder@mit.edu>  Fri, 03 Oct 2008 19:22:12 -0400
+
+sipb-xen-database (10.26) unstable; urgency=low
+
+  * Disable transactions by default
+
+ -- Evan Broder <broder@mit.edu>  Thu, 02 Oct 2008 19:40:34 -0400
+
+sipb-xen-database (10.25) unstable; urgency=low
+
+  * add remote and console to pg_hba.conf template
+  * fix init script so it works
+  * port more code to sqlalchemy 0.4
+
+ -- Greg Price <price@mit.edu>  Wed, 01 Oct 2008 19:30:26 -0400
+
+sipb-xen-database (10.24) unstable; urgency=low
+
+  * Update postgresql.conf for Hardy
+
+ -- Evan Broder <broder@mit.edu>  Wed, 01 Oct 2008 03:12:36 -0400
+
+sipb-xen-database (10.23) unstable; urgency=low
+
+  * switch to postgresql 8.3, as 8.1 isn't in hardy
+
+ -- Greg Price <price@mit.edu>  Wed, 01 Oct 2008 02:09:43 -0400
+
+sipb-xen-database (10.22) unstable; urgency=low
+
+  * depend on postgresql without specifying old version 8.1
+
+ -- Greg Price <price@mit.edu>  Wed, 01 Oct 2008 01:55:49 -0400
+
+sipb-xen-database (10.21) unstable; urgency=low
+
+  * fix distribution
+
+ -- Greg Price <price@mit.edu>  Tue, 30 Sep 2008 23:50:25 -0400
+
+sipb-xen-database (10.20) hardy; urgency=low
+
+  * port to sqlalchemy-0.4, which cuts out some newly deprecated
+    interfaces and allowed some still-present interfaces to bitrot
+
+ -- Greg Price <price@mit.edu>  Mon, 29 Sep 2008 06:06:21 +0000
+
+sipb-xen-database (10.19) unstable; urgency=low
+
+  * Generate config files for pg_hba.conf
+  * replace postgresql.conf
+
+ --  Sam Hartman <hartmans@xvm.mit.edu>  Mon, 25 Aug 2008 00:38:21 +0000
+
+sipb-xen-database (10.18) unstable; urgency=low
+
+  * add 'adminable' column to machines; for selectively, temporarily,
+    enabling admin mode on a machine
+
+ -- Greg Price <price@mit.edu>  Wed,  6 Aug 2008 01:02:59 -0400
+
+sipb-xen-database (10.17) unstable; urgency=low
+
+  * pull IP gateway, network from config
+  * configurabilization complete!
+
+ -- Greg Price <price@mit.edu>  Sun,  3 Aug 2008 01:16:53 -0400
+
+sipb-xen-database (10.16) unstable; urgency=low
+
+  in sipb-xen-database-tables:
+  * use invirt.database, and take default db uri
+
+ -- Greg Price <price@mit.edu>  Sun,  3 Aug 2008 00:51:32 -0400
+
+sipb-xen-database (10.15) unstable; urgency=low
+
+  in /etc/xen/database:
+  * uncommitted changes on black-mesa
+  * sipb_xen_database -> invirt.database
+  * use default db uri
+
+  in invirt.database:
+  * get default db uri from invirt.config
+
+ -- Greg Price <price@mit.edu>  Sun,  3 Aug 2008 00:26:46 -0400
+
+sipb-xen-database (10.14) unstable; urgency=low
+
+  * Rename sipb_xen_database -> invirt.database,
+    keeping old name too for now, for compatibility.
+
+ -- Greg Price <price@mit.edu>  Sat,  2 Aug 2008 23:19:18 -0400
+
+sipb-xen-database (10.13) unstable; urgency=low
+
+  * Modify autoinstalls table to specify distribution/mirror.
+
+ -- Eric Price <ecprice@pseudomyrmex.mit.edu>  Sat, 21 Jun 2008 21:25:21 -0400
+
+sipb-xen-database (10.12) unstable; urgency=low
+
+  * Add a description field.
+
+ -- Anders Kaseorg <andersk@mit.edu>  Wed, 18 Jun 2008 03:52:49 -0400
+
+sipb-xen-database (10.11) unstable; urgency=low
+
+  * Specify ON DELETE CASCADE
+
+ -- Eric Price <ecprice@pseudomyrmex.mit.edu>  Fri, 06 Jun 2008 12:25:35 -0400
+
+sipb-xen-database (10.10) unstable; urgency=low
+
+  * Make machine.acl a private relation.
+
+ -- Eric Price <ecprice@pseudomyrmex.mit.edu>  Fri, 06 Jun 2008 12:03:09 -0400
+
+sipb-xen-database (10.9) unstable; urgency=low
+
+  * Eager loading of relations for better performance.
+
+ -- Eric Price <ecprice@pseudomyrmex.mit.edu>  Mon, 02 Jun 2008 01:39:11 -0400
+
+sipb-xen-database (10.8) unstable; urgency=low
+
+  * Configure serial console on boot
+
+ -- Quentin Smith <quentin@sipb-xen-dev.mit.edu>  Thu,  1 May 2008 20:21:25 -0400
+
+sipb-xen-database (10.7) unstable; urgency=low
+
+  * Depend on psql client in -client package.
+
+ -- Greg Price <price@mit.edu>  Sat, 26 Apr 2008 21:06:41 -0400
+
+sipb-xen-database (10.6) unstable; urgency=low
+
+  * Support autoinstalls table.
+
+ -- Eric Price <ecprice@pseudomyrmex.mit.edu>  Mon, 21 Apr 2008 22:34:46 -0400
+
+sipb-xen-database (10.5) unstable; urgency=low
+
+  * Enable USB tablet device in guests.
+
+ -- Anders Kaseorg <andersk@mit.edu>  Mon, 21 Apr 2008 17:39:59 -0400
+
+sipb-xen-database (10.4.1) unstable; urgency=low
+
+  * Actually export the cache clearing function.
+
+ -- Eric Price <ecprice@pseudomyrmex.mit.edu>  Fri, 28 Mar 2008 21:18:01 -0400
+
+sipb-xen-database (10.4) unstable; urgency=low
+
+  * Ubuntu's dch sucks.
+
+ -- Eric Price <ecprice@sipb-xen-dev.mit.edu>  Fri, 28 Mar 2008 20:43:42 -0400
+
+sipb-xen-database (10.3ubuntu1) gutsy; urgency=low
+
+  * Expose a function for clearing the cache.
+
+ -- Eric Price <ecprice@pseudomyrmex.mit.edu>  Fri, 28 Mar 2008 20:31:06 -0400
+
+sipb-xen-database (10.3) unstable; urgency=low
+
+  * Use 'acl', not 'users', for the reference to the machine_access table.
+
+ -- Eric Price <ecprice@sipb-xen-dev.mit.edu>  Thu, 24 Jan 2008 17:23:33 -0500
+
+sipb-xen-database (10.2) unstable; urgency=low
+
+  * Add MachineAccess to __all__ so it can be imported
+  * Remove unnecessary constructors for database objects
+
+ -- Quentin Smith <quentin@sipb-xen-dev.mit.edu>  Mon, 12 Nov 2007 04:53:47 -0500
+
+sipb-xen-database (10.1) unstable; urgency=low
+
+  * Make sipb-xen-database-tables safer (don't default to drop_all)
+
+ -- Quentin Smith <quentin@sipb-xen-dev.mit.edu>  Mon, 12 Nov 2007 04:39:59 -0500
+
+sipb-xen-database (10) unstable; urgency=low
+
+  * Added a machine_access table for cached ACLs
+
+ -- Quentin Smith <quentin@sipb-xen-dev.mit.edu>  Mon, 12 Nov 2007 04:24:35 -0500
+
+sipb-xen-database (9.0) unstable; urgency=low
+
+  * No changes.
+
+ -- Eric Price <ecprice@sipb-xen-dev.mit.edu>  Wed, 10 Oct 2007 00:17:20 -0400
+
+sipb-xen-database (9) unstable; urgency=low
+
+  * Add administrator column and backrefs to machine.
+
+ -- Eric Price <ecprice@sipb-xen-dev.mit.edu>  Wed, 10 Oct 2007 00:11:47 -0400
+
+sipb-xen-database (8) gutsy; urgency=low
+
+  * Prepend d_ to database VMs.
+
+ -- Eric Price <ecprice@sipb-xen-dev.mit.edu>  Tue,  9 Oct 2007 02:35:51 -0400
+
+sipb-xen-database (7.00002) gutsy; urgency=low
+
+  * Actually import re.
+
+ -- Anders Kaseorg <andersk@mit.edu>  Sun, 07 Oct 2007 04:34:07 -0400
+
+sipb-xen-database (7.00001) gutsy; urgency=low
+
+  * import re.
+
+ -- Anders Kaseorg <andersk@mit.edu>  Sun, 07 Oct 2007 03:40:25 -0400
+
+sipb-xen-database (7) unstable; urgency=low
+
+  * nics primary key should be mac address, not hostname.
+  * Make ip unique, and constructor for nics.
+  * Add a table for boot CDs.
+  * Add cdrom_image parameter.
+  * Regex sanity checking.
+
+ -- Anders Kaseorg <andersk@mit.edu>  Sun, 07 Oct 2007 03:18:30 -0400
+
+sipb-xen-database (6) unstable; urgency=low
+
+  * Adding a script to create lvm volumes
+
+ -- Nelson Elhage <nelhage@mit.edu>  Sat, 22 Sep 2007 13:59:36 -0400
+
+sipb-xen-database (5) unstable; urgency=low
+
+  * Change the host from sipb-vm-1 to sipb-xen-dev
+
+ -- Nelson Elhage <nelhage@mit.edu>  Sat,  8 Sep 2007 16:16:07 -0400
+
+sipb-xen-database (4) unstable; urgency=low
+
+  * Add script=vif-sipbroute to our vif lines
+
+ -- Nelson Elhage <nelhage@mit.edu>  Fri, 24 Aug 2007 22:07:18 -0400
+
+sipb-xen-database (3) unstable; urgency=low
+
+  * Add a connect() line to sipb-database
+  * Fix some other bugs in sipb-database
+
+ -- Nelson Elhage <nelhage@mit.edu>  Sun, 19 Aug 2007 19:40:08 -0400
+
+sipb-xen-database (2) unstable; urgency=low
+
+  * Fix the postinit and prerm scripts to create a sipb-xen user
+
+ -- Nelson Elhage <nelhage@mit.edu>  Thu, 16 Aug 2007 16:27:36 -0400
+
+sipb-xen-database (1) unstable; urgency=low
+
+  * Initial Release.
+
+ -- Nelson Elhage <nelhage@mit.edu>  Sun, 15 Jul 2007 16:01:16 -0400
Index: /trunk/packages/invirt-database/debian/compat
===================================================================
--- /trunk/packages/invirt-database/debian/compat	(revision 1288)
+++ /trunk/packages/invirt-database/debian/compat	(revision 1288)
@@ -0,0 +1,1 @@
+4
Index: /trunk/packages/invirt-database/debian/control
===================================================================
--- /trunk/packages/invirt-database/debian/control	(revision 1288)
+++ /trunk/packages/invirt-database/debian/control	(revision 1288)
@@ -0,0 +1,17 @@
+Source: invirt-database
+Section: net
+Priority: extra
+Maintainer: Invirt project <invirt@mit.edu>
+Build-Depends: cdbs (>= 0.4.23-1.1), debhelper (>= 4.2.0),
+ python-all-dev (>=2.3.5-11), python-support (>= 0.5.3),
+ python-setuptools, python-debian, python-apt
+Standards-Version: 3.8.0
+
+Package: invirt-database
+Architecture: all
+Depends: ${misc:Depends}, ${python:Depends}, python-sqlalchemy,
+ python-psycopg2
+Provides: ${python:Provides}
+XB-Python-Version: ${python:Versions}
+Description: Installs the Invirt database schema files
+ This contains the python modules to access the Invirt database
Index: /trunk/packages/invirt-database/debian/copyright
===================================================================
--- /trunk/packages/invirt-database/debian/copyright	(revision 1288)
+++ /trunk/packages/invirt-database/debian/copyright	(revision 1288)
@@ -0,0 +1,16 @@
+This software was written as part of the Invirt project <invirt@mit.edu>.
+
+Copyright :
+
+  This program is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+On Debian systems, the complete text of the GNU General Public License
+can be found in the file /usr/share/common-licenses/GPL.
Index: /trunk/packages/invirt-database/debian/pycompat
===================================================================
--- /trunk/packages/invirt-database/debian/pycompat	(revision 1288)
+++ /trunk/packages/invirt-database/debian/pycompat	(revision 1288)
@@ -0,0 +1,1 @@
+2
Index: /trunk/packages/invirt-database/debian/rules
===================================================================
--- /trunk/packages/invirt-database/debian/rules	(revision 1288)
+++ /trunk/packages/invirt-database/debian/rules	(revision 1288)
@@ -0,0 +1,9 @@
+#!/usr/bin/make -f
+
+DEB_PYTHON_SYSTEM=pysupport
+
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/class/python-distutils.mk
+
+clean::
+	rm -rf python/invirt.database.egg-info
Index: /trunk/packages/invirt-database/python/database/__init__.py
===================================================================
--- /trunk/packages/invirt-database/python/database/__init__.py	(revision 1288)
+++ /trunk/packages/invirt-database/python/database/__init__.py	(revision 1288)
@@ -0,0 +1,9 @@
+from invirt.config import structs as config
+from models import *
+import sqlalchemy
+
+def connect(uri = config.db.uri):
+    """ Connect to a given database URI"""
+    engine = sqlalchemy.create_engine(uri, pool_timeout=5)
+    meta.bind = engine
+    session.configure(bind=engine)
Index: /trunk/packages/invirt-database/python/database/models.py
===================================================================
--- /trunk/packages/invirt-database/python/database/models.py	(revision 1288)
+++ /trunk/packages/invirt-database/python/database/models.py	(revision 1288)
@@ -0,0 +1,136 @@
+from sqlalchemy import *
+from sqlalchemy import orm
+from sqlalchemy.orm import create_session, relation
+
+from sqlalchemy.ext.sessioncontext import SessionContext
+from sqlalchemy.ext.assignmapper import assign_mapper
+
+__all__ = ['meta',
+           'session',
+           'clear_cache',
+           'machine_table',
+           'machine_access_table',
+           'nic_table',
+           'disk_table',
+           'types_table',
+           'cdroms_table',
+           'autoinstalls_table',
+           'Machine',
+           'MachineAccess',
+           'NIC',
+           'Disk',
+           'Type',
+           'CDROM',
+           'Autoinstall',
+           'or_',
+           ]
+
+meta = ThreadLocalMetaData()
+session = orm.scoped_session(orm.sessionmaker(transactional=False, autoflush=False))
+
+machine_table = Table('machines', meta,
+       Column('machine_id', Integer, primary_key=True, nullable=False),
+       Column('name', String, nullable=False),
+       Column('description', String, nullable=False),
+       Column('memory', Integer, nullable=False),
+       Column('owner', String, nullable=False),
+       Column('contact', String, nullable=False),
+       Column('uuid', String, nullable=False),
+       Column('administrator', String, nullable=False, default=False),
+       Column('type_id', String, ForeignKey('types.type_id'), nullable=False),
+       Column('autorestart', Boolean, nullable=False, default=False),
+       Column('cpus', Integer, nullable=False, default=1),
+       Column('adminable', Boolean, nullable=False, default=False))
+
+nic_table = Table('nics', meta,
+       Column('machine_id', Integer, ForeignKey('machines.machine_id'), nullable=True),
+       Column('mac_addr', String, nullable=False, primary_key=True),
+       Column('ip', String, nullable=False, unique=True),
+       Column('hostname', String, nullable=True))
+
+disk_table = Table('disks', meta,
+       Column('machine_id', Integer, ForeignKey('machines.machine_id'), nullable=False),
+       Column('guest_device_name', String, nullable=False),
+       Column('size', Integer, nullable=False),
+       PrimaryKeyConstraint('machine_id', 'guest_device_name'))
+
+types_table = Table('types', meta,
+       Column('type_id', String, primary_key=True, nullable=False),
+       Column('description', String, nullable=False),
+       Column('hvm', Boolean, nullable=False),
+       Column('apic', Boolean, nullable=False),
+       Column('acpi', Boolean, nullable=False),
+       Column('pae', Boolean, nullable=False))
+
+mirrors_table = Table('mirrors', meta,
+       Column('mirror_id', String, primary_key=True, nullable=False),
+       Column('uri_prefix', String, nullable=False))
+
+cdroms_table = Table('cdroms', meta,
+       Column('cdrom_id', String, primary_key=True, nullable=False),
+       Column('description', String, nullable=False),
+       Column('mirror_id', String, ForeignKey('mirrors.mirror_id')),
+       Column('uri_suffix', String))
+
+autoinstalls_table = Table('autoinstalls', meta,
+       Column('autoinstall_id', String, primary_key=True, nullable=False),
+       Column('description', String, nullable=False),
+       Column('type_id', String, ForeignKey('types.type_id'), nullable=False),
+       Column('distribution', String, nullable=False),
+       Column('mirror', String, nullable=False))
+
+machine_access_table = Table('machine_access', meta,
+       Column('machine_id', Integer, ForeignKey('machines.machine_id', ondelete='CASCADE'), nullable=False, index=True),
+       Column('user', String, nullable=False, index=True),
+       PrimaryKeyConstraint('machine_id', 'user'))
+
+class Machine(object):
+    def __repr__(self):
+        return "<Machine %s: name='%s' owner='%s'>" % (self.machine_id, self.name, self.owner)
+
+class MachineAccess(object):
+    def __repr__(self):
+        return "<MachineAccess machine='%s' user='%s'>" % (self.machine, self.user)
+
+class NIC(object):
+    def __repr__(self):
+        return "<NIC: mac='%s' machine='%s' ip='%s' hostname='%s'>" % (self.mac_addr, self.machine_id, self.ip, self.hostname)
+
+class Disk(object):
+    def __repr__(self):
+        return "<Disk: machine=%s device=%s size=%s>" % (self.machine_id, self.guest_device_name, self.size)
+
+class Type(object):
+    def __repr__(self):
+        return "<Type %s: %s>" % (self.type_id, self.description)
+
+class Mirror(object):
+    def __repr__(self):
+        return "<Mirror %s>" % (self.mirror_id)
+
+class CDROM(object):
+    def __repr__(self):
+        return "<CDROM %s: %s>" % (self.cdrom_id, self.description)
+
+class Autoinstall(object):
+    def __repr__(self):
+        return "<Autoinstall %s: %s (%s)>" % (self.autoinstall_id, self.description, self.type.type_id)
+
+session.mapper(Machine, machine_table,
+              properties={'nics': relation(NIC, backref="machine", lazy=False),
+                          'disks': relation(Disk, backref="machine", lazy=False),
+                          'type': relation(Type, lazy=False),
+                          'acl': relation(MachineAccess, backref="machine", lazy=False, passive_deletes=True, cascade="all, delete-orphan")});
+session.mapper(MachineAccess, machine_access_table)
+session.mapper(NIC, nic_table)
+session.mapper(Disk, disk_table)
+session.mapper(Type, types_table)
+session.mapper(Mirror, mirrors_table)
+session.mapper(CDROM, cdroms_table)
+session.mapper(Autoinstall, autoinstalls_table)
+
+def clear_cache():
+    """Clear sqlalchemy's cache
+    """
+
+    session.clear()
Index: /trunk/packages/invirt-database/setup.py
===================================================================
--- /trunk/packages/invirt-database/setup.py	(revision 1288)
+++ /trunk/packages/invirt-database/setup.py	(revision 1288)
@@ -0,0 +1,23 @@
+#!/usr/bin/python
+
+from os import path
+from debian_bundle.changelog import Changelog
+from debian_bundle.deb822 import Deb822
+from email.utils import parseaddr
+from setuptools import setup
+
+version = Changelog(open(path.join(path.dirname(__file__), 'debian/changelog')).read()).\
+    get_version().full_version
+
+maintainer_full = Deb822(open(path.join(path.dirname(__file__), 'debian/control')))['Maintainer']
+maintainer, maintainer_email = parseaddr(maintainer_full)
+
+setup(
+    name='invirt.database',
+    version=version,
+    maintainer=maintainer,
+    maintainer_email=maintainer_email,
+    
+    packages = ['invirt.database'],
+    package_dir = {'invirt': 'python'}
+)
Index: unk/packages/sipb-xen-database/debian/changelog
===================================================================
--- /trunk/packages/sipb-xen-database/debian/changelog	(revision 1287)
+++ 	(revision )
@@ -1,367 +1,0 @@
-sipb-xen-database (10.36.1) unstable; urgency=low
-
-  * Typo in the new tables
-
- -- Evan Broder <broder@mit.edu>  Sat, 25 Oct 2008 15:01:47 -0400
-
-sipb-xen-database (10.36) unstable; urgency=low
-
-  * Kill the remnants of the sipb_xen_database package
-  * Add the CDROM mirrors table
-
- -- Evan Broder <broder@mit.edu>  Sat, 25 Oct 2008 14:48:32 -0400
-
-sipb-xen-database (10.35) unstable; urgency=low
-
-  * Shorten initscript with spiffy new library from sipb-xen-base
-
- -- Greg Price <price@mit.edu>  Fri, 24 Oct 2008 07:25:56 -0400
-
-sipb-xen-database (10.34) unstable; urgency=low
-
-  * yet another new-sqlalchemy fix, this one post-0.4.2
-
- -- Greg Price <price@mit.edu>  Thu, 23 Oct 2008 23:02:46 -0400
-
-sipb-xen-database (10.33) unstable; urgency=low
-
-  * Catch calls to restart Postgres and translate them into a sequential
-    stop, then start
-
- -- Evan Broder <broder@mit.edu>  Mon, 20 Oct 2008 13:05:29 -0400
-
-sipb-xen-database (10.32) unstable; urgency=low
-
-  * invirt.database.clear_cache should actually do something
-
- -- Evan Broder <broder@mit.edu>  Sun, 19 Oct 2008 02:02:37 -0400
-
-sipb-xen-database (10.31) unstable; urgency=low
-
-  * Database-managed VMs should never even think about bridging
-
- -- Evan Broder <broder@mit.edu>  Sun, 19 Oct 2008 01:46:45 -0400
-
-sipb-xen-database (10.30.4) unstable; urgency=low
-
-  * Fix a typo in the CDROM image path
-
- -- Evan Broder <broder@mit.edu>  Wed, 15 Oct 2008 13:21:10 -0400
-
-sipb-xen-database (10.30.3) unstable; urgency=low
-
-  * fix copy-paste errors in initscript: this is database, not console
-  * fix "typo" in initscript for package name printed in logs
-
- -- Greg Price <price@mit.edu>  Sat, 11 Oct 2008 17:50:11 -0700
-
-sipb-xen-database (10.30.2) unstable; urgency=low
-
-  * Fix a typo in the CDROM lookup in sipb-database
-
- -- Evan Broder <broder@mit.edu>  Sat, 11 Oct 2008 19:17:05 -0400
-
-sipb-xen-database (10.30.1) unstable; urgency=low
-
-  * Don't strip quotes that won't be there
-
- -- Evan Broder <broder@mit.edu>  Fri, 10 Oct 2008 01:48:48 -0400
-
-sipb-xen-database (10.30) unstable; urgency=low
-
-  * Look for CD images in /dev/xenvg/image_* and validate image name from
-    the database
-  * Pass the installer arguments unaltered to the kernel, matching the
-    remctl interface
-
- -- Evan Broder <broder@mit.edu>  Thu, 09 Oct 2008 02:09:42 -0400
-
-sipb-xen-database (10.29) unstable; urgency=low
-
-  * Some fixes in the sipb-database script
-
- -- Evan Broder <broder@mit.edu>  Mon, 06 Oct 2008 18:55:24 -0400
-
-sipb-xen-database (10.28) unstable; urgency=low
-
-  * Re-establish the database connection if the server goes AWOL
-
- -- Evan Broder <broder@mit.edu>  Sat, 04 Oct 2008 23:19:59 -0400
-
-sipb-xen-database (10.27) unstable; urgency=low
-
-  * Update sipb-database to work with newer SQLAlchemy and Xen
-
- -- Evan Broder <broder@mit.edu>  Fri, 03 Oct 2008 20:08:16 -0400
-
-sipb-xen-database (10.26.1) unstable; urgency=low
-
-  * We want autoflush off, too
-
- -- Evan Broder <broder@mit.edu>  Fri, 03 Oct 2008 19:22:12 -0400
-
-sipb-xen-database (10.26) unstable; urgency=low
-
-  * Disable transactions by default
-
- -- Evan Broder <broder@mit.edu>  Thu, 02 Oct 2008 19:40:34 -0400
-
-sipb-xen-database (10.25) unstable; urgency=low
-
-  * add remote and console to pg_hba.conf template
-  * fix init script so it works
-  * port more code to sqlalchemy 0.4
-
- -- Greg Price <price@mit.edu>  Wed, 01 Oct 2008 19:30:26 -0400
-
-sipb-xen-database (10.24) unstable; urgency=low
-
-  * Update postgresql.conf for Hardy
-
- -- Evan Broder <broder@mit.edu>  Wed, 01 Oct 2008 03:12:36 -0400
-
-sipb-xen-database (10.23) unstable; urgency=low
-
-  * switch to postgresql 8.3, as 8.1 isn't in hardy
-
- -- Greg Price <price@mit.edu>  Wed, 01 Oct 2008 02:09:43 -0400
-
-sipb-xen-database (10.22) unstable; urgency=low
-
-  * depend on postgresql without specifying old version 8.1
-
- -- Greg Price <price@mit.edu>  Wed, 01 Oct 2008 01:55:49 -0400
-
-sipb-xen-database (10.21) unstable; urgency=low
-
-  * fix distribution
-
- -- Greg Price <price@mit.edu>  Tue, 30 Sep 2008 23:50:25 -0400
-
-sipb-xen-database (10.20) hardy; urgency=low
-
-  * port to sqlalchemy-0.4, which cuts out some newly deprecated
-    interfaces and allowed some still-present interfaces to bitrot
-
- -- Greg Price <price@mit.edu>  Mon, 29 Sep 2008 06:06:21 +0000
-
-sipb-xen-database (10.19) unstable; urgency=low
-
-  * Generate config files for pg_hba.conf
-  * replace postgresql.conf
-
- --  Sam Hartman <hartmans@xvm.mit.edu>  Mon, 25 Aug 2008 00:38:21 +0000
-
-sipb-xen-database (10.18) unstable; urgency=low
-
-  * add 'adminable' column to machines; for selectively, temporarily,
-    enabling admin mode on a machine
-
- -- Greg Price <price@mit.edu>  Wed,  6 Aug 2008 01:02:59 -0400
-
-sipb-xen-database (10.17) unstable; urgency=low
-
-  * pull IP gateway, network from config
-  * configurabilization complete!
-
- -- Greg Price <price@mit.edu>  Sun,  3 Aug 2008 01:16:53 -0400
-
-sipb-xen-database (10.16) unstable; urgency=low
-
-  in sipb-xen-database-tables:
-  * use invirt.database, and take default db uri
-
- -- Greg Price <price@mit.edu>  Sun,  3 Aug 2008 00:51:32 -0400
-
-sipb-xen-database (10.15) unstable; urgency=low
-
-  in /etc/xen/database:
-  * uncommitted changes on black-mesa
-  * sipb_xen_database -> invirt.database
-  * use default db uri
-
-  in invirt.database:
-  * get default db uri from invirt.config
-
- -- Greg Price <price@mit.edu>  Sun,  3 Aug 2008 00:26:46 -0400
-
-sipb-xen-database (10.14) unstable; urgency=low
-
-  * Rename sipb_xen_database -> invirt.database,
-    keeping old name too for now, for compatibility.
-
- -- Greg Price <price@mit.edu>  Sat,  2 Aug 2008 23:19:18 -0400
-
-sipb-xen-database (10.13) unstable; urgency=low
-
-  * Modify autoinstalls table to specify distribution/mirror.
-
- -- Eric Price <ecprice@pseudomyrmex.mit.edu>  Sat, 21 Jun 2008 21:25:21 -0400
-
-sipb-xen-database (10.12) unstable; urgency=low
-
-  * Add a description field.
-
- -- Anders Kaseorg <andersk@mit.edu>  Wed, 18 Jun 2008 03:52:49 -0400
-
-sipb-xen-database (10.11) unstable; urgency=low
-
-  * Specify ON DELETE CASCADE
-
- -- Eric Price <ecprice@pseudomyrmex.mit.edu>  Fri, 06 Jun 2008 12:25:35 -0400
-
-sipb-xen-database (10.10) unstable; urgency=low
-
-  * Make machine.acl a private relation.
-
- -- Eric Price <ecprice@pseudomyrmex.mit.edu>  Fri, 06 Jun 2008 12:03:09 -0400
-
-sipb-xen-database (10.9) unstable; urgency=low
-
-  * Eager loading of relations for better performance.
-
- -- Eric Price <ecprice@pseudomyrmex.mit.edu>  Mon, 02 Jun 2008 01:39:11 -0400
-
-sipb-xen-database (10.8) unstable; urgency=low
-
-  * Configure serial console on boot
-
- -- Quentin Smith <quentin@sipb-xen-dev.mit.edu>  Thu,  1 May 2008 20:21:25 -0400
-
-sipb-xen-database (10.7) unstable; urgency=low
-
-  * Depend on psql client in -client package.
-
- -- Greg Price <price@mit.edu>  Sat, 26 Apr 2008 21:06:41 -0400
-
-sipb-xen-database (10.6) unstable; urgency=low
-
-  * Support autoinstalls table.
-
- -- Eric Price <ecprice@pseudomyrmex.mit.edu>  Mon, 21 Apr 2008 22:34:46 -0400
-
-sipb-xen-database (10.5) unstable; urgency=low
-
-  * Enable USB tablet device in guests.
-
- -- Anders Kaseorg <andersk@mit.edu>  Mon, 21 Apr 2008 17:39:59 -0400
-
-sipb-xen-database (10.4.1) unstable; urgency=low
-
-  * Actually export the cache clearing function.
-
- -- Eric Price <ecprice@pseudomyrmex.mit.edu>  Fri, 28 Mar 2008 21:18:01 -0400
-
-sipb-xen-database (10.4) unstable; urgency=low
-
-  * Ubuntu's dch sucks.
-
- -- Eric Price <ecprice@sipb-xen-dev.mit.edu>  Fri, 28 Mar 2008 20:43:42 -0400
-
-sipb-xen-database (10.3ubuntu1) gutsy; urgency=low
-
-  * Expose a function for clearing the cache.
-
- -- Eric Price <ecprice@pseudomyrmex.mit.edu>  Fri, 28 Mar 2008 20:31:06 -0400
-
-sipb-xen-database (10.3) unstable; urgency=low
-
-  * Use 'acl', not 'users', for the reference to the machine_access table.
-
- -- Eric Price <ecprice@sipb-xen-dev.mit.edu>  Thu, 24 Jan 2008 17:23:33 -0500
-
-sipb-xen-database (10.2) unstable; urgency=low
-
-  * Add MachineAccess to __all__ so it can be imported
-  * Remove unnecessary constructors for database objects
-
- -- Quentin Smith <quentin@sipb-xen-dev.mit.edu>  Mon, 12 Nov 2007 04:53:47 -0500
-
-sipb-xen-database (10.1) unstable; urgency=low
-
-  * Make sipb-xen-database-tables safer (don't default to drop_all)
-
- -- Quentin Smith <quentin@sipb-xen-dev.mit.edu>  Mon, 12 Nov 2007 04:39:59 -0500
-
-sipb-xen-database (10) unstable; urgency=low
-
-  * Added a machine_access table for cached ACLs
-
- -- Quentin Smith <quentin@sipb-xen-dev.mit.edu>  Mon, 12 Nov 2007 04:24:35 -0500
-
-sipb-xen-database (9.0) unstable; urgency=low
-
-  * No changes.
-
- -- Eric Price <ecprice@sipb-xen-dev.mit.edu>  Wed, 10 Oct 2007 00:17:20 -0400
-
-sipb-xen-database (9) unstable; urgency=low
-
-  * Add administrator column and backrefs to machine.
-
- -- Eric Price <ecprice@sipb-xen-dev.mit.edu>  Wed, 10 Oct 2007 00:11:47 -0400
-
-sipb-xen-database (8) gutsy; urgency=low
-
-  * Prepend d_ to database VMs.
-
- -- Eric Price <ecprice@sipb-xen-dev.mit.edu>  Tue,  9 Oct 2007 02:35:51 -0400
-
-sipb-xen-database (7.00002) gutsy; urgency=low
-
-  * Actually import re.
-
- -- Anders Kaseorg <andersk@mit.edu>  Sun, 07 Oct 2007 04:34:07 -0400
-
-sipb-xen-database (7.00001) gutsy; urgency=low
-
-  * import re.
-
- -- Anders Kaseorg <andersk@mit.edu>  Sun, 07 Oct 2007 03:40:25 -0400
-
-sipb-xen-database (7) unstable; urgency=low
-
-  * nics primary key should be mac address, not hostname.
-  * Make ip unique, and constructor for nics.
-  * Add a table for boot CDs.
-  * Add cdrom_image parameter.
-  * Regex sanity checking.
-
- -- Anders Kaseorg <andersk@mit.edu>  Sun, 07 Oct 2007 03:18:30 -0400
-
-sipb-xen-database (6) unstable; urgency=low
-
-  * Adding a script to create lvm volumes
-
- -- Nelson Elhage <nelhage@mit.edu>  Sat, 22 Sep 2007 13:59:36 -0400
-
-sipb-xen-database (5) unstable; urgency=low
-
-  * Change the host from sipb-vm-1 to sipb-xen-dev
-
- -- Nelson Elhage <nelhage@mit.edu>  Sat,  8 Sep 2007 16:16:07 -0400
-
-sipb-xen-database (4) unstable; urgency=low
-
-  * Add script=vif-sipbroute to our vif lines
-
- -- Nelson Elhage <nelhage@mit.edu>  Fri, 24 Aug 2007 22:07:18 -0400
-
-sipb-xen-database (3) unstable; urgency=low
-
-  * Add a connect() line to sipb-database
-  * Fix some other bugs in sipb-database
-
- -- Nelson Elhage <nelhage@mit.edu>  Sun, 19 Aug 2007 19:40:08 -0400
-
-sipb-xen-database (2) unstable; urgency=low
-
-  * Fix the postinit and prerm scripts to create a sipb-xen user
-
- -- Nelson Elhage <nelhage@mit.edu>  Thu, 16 Aug 2007 16:27:36 -0400
-
-sipb-xen-database (1) unstable; urgency=low
-
-  * Initial Release.
-
- -- Nelson Elhage <nelhage@mit.edu>  Sun, 15 Jul 2007 16:01:16 -0400
Index: unk/packages/sipb-xen-database/debian/compat
===================================================================
--- /trunk/packages/sipb-xen-database/debian/compat	(revision 1287)
+++ 	(revision )
@@ -1,1 +1,0 @@
-4
Index: unk/packages/sipb-xen-database/debian/control
===================================================================
--- /trunk/packages/sipb-xen-database/debian/control	(revision 1287)
+++ 	(revision )
@@ -1,26 +1,0 @@
-Source: sipb-xen-database
-Section: net
-Priority: extra
-Maintainer: SIPB Xen Project <sipb-xen@mit.edu>
-Build-Depends: cdbs (>= 0.4.23-1.1), debhelper (>= 4.2.0), python-support (>= 0.5.3), config-package-dev
-Standards-Version: 3.7.2
-
-Package: sipb-xen-database-common
-Architecture: all
-Depends: ${misc:Depends}, ${python:Depends}, python-sqlalchemy, python-psycopg2
-Provides: ${python:Provides}
-Description: Installs the SIPB Xen database schema files
- This contains the python modules to access the SIPB Xen database
-
-Package: sipb-xen-database-server
-Architecture: all
-Depends: ${misc:Depends}, ${python:Depends}, postgresql-8.3, python-sqlalchemy, python-psycopg2, sipb-xen-database-common, adduser, sipb-xen-base
-Description: Installs the SIPB Xen database server
- This tracks all the user VMs and is accessed from the VM host
-
-Package: sipb-xen-database-client
-Architecture: all
-Depends: ${misc:Depends}, postgresql-client-8.3, python-sqlalchemy, python-psycopg2, sipb-xen-database-common, python
-Description: Installs the SIPB Xen database configuration file
- This is a python xen configuration script that talks to the database
- to dynamically load xen domU configuration information
Index: unk/packages/sipb-xen-database/debian/copyright
===================================================================
--- /trunk/packages/sipb-xen-database/debian/copyright	(revision 1287)
+++ 	(revision )
@@ -1,16 +1,0 @@
-This software was written as part of the Invirt project <invirt@mit.edu>.
-
-Copyright :
-
-  This program is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; either version 2 of the License, or
-  (at your option) any later version.
-
-  This program is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
-
-On Debian systems, the complete text of the GNU General Public License
-can be found in the file /usr/share/common-licenses/GPL.
Index: unk/packages/sipb-xen-database/debian/pycompat
===================================================================
--- /trunk/packages/sipb-xen-database/debian/pycompat	(revision 1287)
+++ 	(revision )
@@ -1,1 +1,0 @@
-2
Index: unk/packages/sipb-xen-database/debian/rules
===================================================================
--- /trunk/packages/sipb-xen-database/debian/rules	(revision 1287)
+++ 	(revision )
@@ -1,13 +1,0 @@
-#!/usr/bin/make -f
-
-
-DEB_DIVERT_EXTENSION = .invirt
-DEB_DIVERT_FILES_sipb-xen-database-server += \
-	/etc/postgresql/8.3/main/postgresql.conf.invirt \
-	/etc/init.d/postgresql-8.3.invirt
-
-include /usr/share/cdbs/1/rules/debhelper.mk
-include /usr/share/cdbs/1/rules/config-package.mk
-
-binary-install/sipb-xen-database-common::
-	dh_pysupport -psipb-xen-database-common
Index: unk/packages/sipb-xen-database/debian/sipb-xen-database-client.install
===================================================================
--- /trunk/packages/sipb-xen-database/debian/sipb-xen-database-client.install	(revision 1287)
+++ 	(revision )
@@ -1,1 +1,0 @@
-client/* .
Index: unk/packages/sipb-xen-database/debian/sipb-xen-database-common.install
===================================================================
--- /trunk/packages/sipb-xen-database/debian/sipb-xen-database-common.install	(revision 1287)
+++ 	(revision )
@@ -1,2 +1,0 @@
-common/* .
-python/* usr/share/python-support/sipb-xen-database-common/invirt/
Index: unk/packages/sipb-xen-database/debian/sipb-xen-database-server.init
===================================================================
--- /trunk/packages/sipb-xen-database/debian/sipb-xen-database-server.init	(revision 1287)
+++ 	(revision )
@@ -1,19 +1,0 @@
-#!/bin/bash
-### BEGIN INIT INFO
-# Provides:          sipb-xen-database-server
-# Required-Start:    $local_fs $remote_fs
-# Required-Stop:     $local_fs $remote_fs
-# Default-Start:     2 3 4 5
-# Default-Stop:      0 1 6
-# Short-Description: sipb-xen database server
-# Description:       
-### END INIT INFO
-
-PACKAGE=sipb-xen-database-server
-PARENTPACKAGE=postgresql-8.3
-GEN_FILES=/etc/postgresql/8.3/main/pg_hba.conf
-
-dpkg -s "$PACKAGE" >/dev/null 2>/dev/null || exit 0
-
-. /lib/init/config-init.sh
-config_init "$1"
Index: unk/packages/sipb-xen-database/debian/sipb-xen-database-server.install
===================================================================
--- /trunk/packages/sipb-xen-database/debian/sipb-xen-database-server.install	(revision 1287)
+++ 	(revision )
@@ -1,2 +1,0 @@
-server/* .
-sipb-xen-database-tables usr/bin
Index: unk/packages/sipb-xen-database/debian/sipb-xen-database-server.postinst
===================================================================
--- /trunk/packages/sipb-xen-database/debian/sipb-xen-database-server.postinst	(revision 1287)
+++ 	(revision )
@@ -1,54 +1,0 @@
-#!/bin/sh
-# postinst script for #PACKAGE#
-#
-# see: dh_installdeb(1)
-
-set -e
-
-# summary of how this script can be called:
-#        * <postinst> `configure' <most-recently-configured-version>
-#        * <old-postinst> `abort-upgrade' <new version>
-#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
-#          <new-version>
-#        * <postinst> `abort-remove'
-#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
-#          <failed-install-package> <version> `removing'
-#          <conflicting-package> <version>
-# for details, see http://www.debian.org/doc/debian-policy/ or
-# the debian-policy package
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-# Note that by moving this above our generated code we could run into significant problems
-# if we happened to start a daemon, and use debconf
-# We move this up here because we need the diversion of postgresql.conf to happen before we create tables
-
-#DEBHELPER#
-
-
-case "$1" in
-    configure)
-        #Don't create users on upgrade
-        if [ -z "$2" ]; then
-            # Don't fail if the user/database already exists
-            su postgres -c 'createuser sipb-xen -S -d -R'    || true
-            su postgres -c 'createdb sipb_xen -O sipb-xen'   || true
-            adduser --system sipb-xen
-        fi
-	mako-render /etc/postgresql/8.3/main/pg_hba.conf.mako >/etc/postgresql/8.3/main/pg_hba.conf
-	/etc/init.d/postgresql-8.3 restart
-        su sipb-xen -s /bin/sh -c 'sipb-xen-database-tables create'
-    ;;
-
-    abort-upgrade|abort-remove|abort-deconfigure)
-    ;;
-
-    *)
-        echo "postinst called with unknown argument \`$1'" >&2
-        exit 1
-    ;;
-esac
-
-exit 0
-
-
Index: unk/packages/sipb-xen-database/debian/sipb-xen-database-server.prerm
===================================================================
--- /trunk/packages/sipb-xen-database/debian/sipb-xen-database-server.prerm	(revision 1287)
+++ 	(revision )
@@ -1,45 +1,0 @@
-#!/bin/sh
-# prerm script for #PACKAGE#
-#
-# see: dh_installdeb(1)
-
-set -e
-
-# summary of how this script can be called:
-#        * <prerm> `remove'
-#        * <old-prerm> `upgrade' <new-version>
-#        * <new-prerm> `failed-upgrade' <old-version>
-#        * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
-#        * <deconfigured's-prerm> `deconfigure' `in-favour'
-#          <package-being-installed> <version> `removing'
-#          <conflicting-package> <version>
-# for details, see http://www.debian.org/doc/debian-policy/ or
-# the debian-policy package
-
-
-case "$1" in
-    remove|deconfigure)
-
-        # This will destroy data -- do we want to do this?
-        # su postgres -c 'dropdb sipb_xen'
-        # su postgres -c 'dropuser sipb-xen'
-        deluser sipb-xen
-    ;;
-
-    upgrade|failed-upgrade)
-    ;;
-
-    *)
-        echo "prerm called with unknown argument \`$1'" >&2
-        exit 1
-    ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
-
-
Index: unk/packages/sipb-xen-database/python/database/__init__.py
===================================================================
--- /trunk/packages/sipb-xen-database/python/database/__init__.py	(revision 1287)
+++ 	(revision )
@@ -1,9 +1,0 @@
-from invirt.config import structs as config
-from models import *
-import sqlalchemy
-
-def connect(uri = config.db.uri):
-    """ Connect to a given database URI"""
-    engine = sqlalchemy.create_engine(uri, pool_timeout=5)
-    meta.bind = engine
-    session.configure(bind=engine)
Index: unk/packages/sipb-xen-database/python/database/models.py
===================================================================
--- /trunk/packages/sipb-xen-database/python/database/models.py	(revision 1287)
+++ 	(revision )
@@ -1,136 +1,0 @@
-from sqlalchemy import *
-from sqlalchemy import orm
-from sqlalchemy.orm import create_session, relation
-
-from sqlalchemy.ext.sessioncontext import SessionContext
-from sqlalchemy.ext.assignmapper import assign_mapper
-
-__all__ = ['meta',
-           'session',
-           'clear_cache',
-           'machine_table',
-           'machine_access_table',
-           'nic_table',
-           'disk_table',
-           'types_table',
-           'cdroms_table',
-           'autoinstalls_table',
-           'Machine',
-           'MachineAccess',
-           'NIC',
-           'Disk',
-           'Type',
-           'CDROM',
-           'Autoinstall',
-           'or_',
-           ]
-
-meta = ThreadLocalMetaData()
-session = orm.scoped_session(orm.sessionmaker(transactional=False, autoflush=False))
-
-machine_table = Table('machines', meta,
-       Column('machine_id', Integer, primary_key=True, nullable=False),
-       Column('name', String, nullable=False),
-       Column('description', String, nullable=False),
-       Column('memory', Integer, nullable=False),
-       Column('owner', String, nullable=False),
-       Column('contact', String, nullable=False),
-       Column('uuid', String, nullable=False),
-       Column('administrator', String, nullable=False, default=False),
-       Column('type_id', String, ForeignKey('types.type_id'), nullable=False),
-       Column('autorestart', Boolean, nullable=False, default=False),
-       Column('cpus', Integer, nullable=False, default=1),
-       Column('adminable', Boolean, nullable=False, default=False))
-
-nic_table = Table('nics', meta,
-       Column('machine_id', Integer, ForeignKey('machines.machine_id'), nullable=True),
-       Column('mac_addr', String, nullable=False, primary_key=True),
-       Column('ip', String, nullable=False, unique=True),
-       Column('hostname', String, nullable=True))
-
-disk_table = Table('disks', meta,
-       Column('machine_id', Integer, ForeignKey('machines.machine_id'), nullable=False),
-       Column('guest_device_name', String, nullable=False),
-       Column('size', Integer, nullable=False),
-       PrimaryKeyConstraint('machine_id', 'guest_device_name'))
-
-types_table = Table('types', meta,
-       Column('type_id', String, primary_key=True, nullable=False),
-       Column('description', String, nullable=False),
-       Column('hvm', Boolean, nullable=False),
-       Column('apic', Boolean, nullable=False),
-       Column('acpi', Boolean, nullable=False),
-       Column('pae', Boolean, nullable=False))
-
-mirrors_table = Table('mirrors', meta,
-       Column('mirror_id', String, primary_key=True, nullable=False),
-       Column('uri_prefix', String, nullable=False))
-
-cdroms_table = Table('cdroms', meta,
-       Column('cdrom_id', String, primary_key=True, nullable=False),
-       Column('description', String, nullable=False),
-       Column('mirror_id', String, ForeignKey('mirrors.mirror_id')),
-       Column('uri_suffix', String))
-
-autoinstalls_table = Table('autoinstalls', meta,
-       Column('autoinstall_id', String, primary_key=True, nullable=False),
-       Column('description', String, nullable=False),
-       Column('type_id', String, ForeignKey('types.type_id'), nullable=False),
-       Column('distribution', String, nullable=False),
-       Column('mirror', String, nullable=False))
-
-machine_access_table = Table('machine_access', meta,
-       Column('machine_id', Integer, ForeignKey('machines.machine_id', ondelete='CASCADE'), nullable=False, index=True),
-       Column('user', String, nullable=False, index=True),
-       PrimaryKeyConstraint('machine_id', 'user'))
-
-class Machine(object):
-    def __repr__(self):
-        return "<Machine %s: name='%s' owner='%s'>" % (self.machine_id, self.name, self.owner)
-
-class MachineAccess(object):
-    def __repr__(self):
-        return "<MachineAccess machine='%s' user='%s'>" % (self.machine, self.user)
-
-class NIC(object):
-    def __repr__(self):
-        return "<NIC: mac='%s' machine='%s' ip='%s' hostname='%s'>" % (self.mac_addr, self.machine_id, self.ip, self.hostname)
-
-class Disk(object):
-    def __repr__(self):
-        return "<Disk: machine=%s device=%s size=%s>" % (self.machine_id, self.guest_device_name, self.size)
-
-class Type(object):
-    def __repr__(self):
-        return "<Type %s: %s>" % (self.type_id, self.description)
-
-class Mirror(object):
-    def __repr__(self):
-        return "<Mirror %s>" % (self.mirror_id)
-
-class CDROM(object):
-    def __repr__(self):
-        return "<CDROM %s: %s>" % (self.cdrom_id, self.description)
-
-class Autoinstall(object):
-    def __repr__(self):
-        return "<Autoinstall %s: %s (%s)>" % (self.autoinstall_id, self.description, self.type.type_id)
-
-session.mapper(Machine, machine_table,
-              properties={'nics': relation(NIC, backref="machine", lazy=False),
-                          'disks': relation(Disk, backref="machine", lazy=False),
-                          'type': relation(Type, lazy=False),
-                          'acl': relation(MachineAccess, backref="machine", lazy=False, passive_deletes=True, cascade="all, delete-orphan")});
-session.mapper(MachineAccess, machine_access_table)
-session.mapper(NIC, nic_table)
-session.mapper(Disk, disk_table)
-session.mapper(Type, types_table)
-session.mapper(Mirror, mirrors_table)
-session.mapper(CDROM, cdroms_table)
-session.mapper(Autoinstall, autoinstalls_table)
-
-def clear_cache():
-    """Clear sqlalchemy's cache
-    """
-
-    session.clear()
Index: unk/packages/sipb-xen-database/server/etc/init.d/postgresql-8.3.invirt
===================================================================
--- /trunk/packages/sipb-xen-database/server/etc/init.d/postgresql-8.3.invirt	(revision 1287)
+++ 	(revision )
@@ -1,29 +1,0 @@
-#! /bin/sh
-### BEGIN INIT INFO
-# Provides:          postgresql postgresql-8.3
-# Required-Start:    $local_fs $remote_fs $network $time
-# Required-Stop:     $local_fs $remote_fs $network $time
-# Should-Start:      $syslog
-# Should-Stop:       $syslog
-# Default-Start:     2 3 4 5
-# Default-Stop:      0 1 6
-# Short-Description: PostgreSQL 8.3 RDBMS server
-# Description:       This script proxies requests to the default postgresql-8.3,
-#                    except for restart, which it translates to a stop request,
-#                    and then a start request, so that PostgreSQL is shut down
-#                    with a fast shutdown
-### END INIT INFO
-
-case "$1" in
-  restart)
-        invoke-rc.d postgresql-8.3.invirt-orig stop
-        invoke-rc.d postgresql-8.3.invirt-orig start
-        exit $?
-	;;
-  *)
-        invoke-rc.d postgresql-8.3.invirt-orig "$1"
-        exit $?
-	;;
-esac
-
-:
Index: unk/packages/sipb-xen-database/server/etc/postgresql/8.3/main/pg_hba.conf.mako
===================================================================
--- /trunk/packages/sipb-xen-database/server/etc/postgresql/8.3/main/pg_hba.conf.mako	(revision 1287)
+++ 	(revision )
@@ -1,87 +1,0 @@
-<% from invirt.config import structs as cfg %>\
-# PostgreSQL Client Authentication Configuration File
-# ===================================================
-#
-# Refer to the PostgreSQL Administrator's Guide, chapter "Client
-# Authentication" for a complete description.  A short synopsis
-# follows.
-#
-# This file controls: which hosts are allowed to connect, how clients
-# are authenticated, which PostgreSQL user names they can use, which
-# databases they can access.  Records take one of these forms:
-#
-# local      DATABASE  USER  METHOD  [OPTION]
-# host       DATABASE  USER  CIDR-ADDRESS  METHOD  [OPTION]
-# hostssl    DATABASE  USER  CIDR-ADDRESS  METHOD  [OPTION]
-# hostnossl  DATABASE  USER  CIDR-ADDRESS  METHOD  [OPTION]
-#
-# (The uppercase items must be replaced by actual values.)
-#
-# The first field is the connection type: "local" is a Unix-domain socket,
-# "host" is either a plain or SSL-encrypted TCP/IP socket, "hostssl" is an
-# SSL-encrypted TCP/IP socket, and "hostnossl" is a plain TCP/IP socket.
-#
-# DATABASE can be "all", "sameuser", "samerole", a database name, or
-# a comma-separated list thereof.
-#
-# USER can be "all", a user name, a group name prefixed with "+", or
-# a comma-separated list thereof.  In both the DATABASE and USER fields
-# you can also write a file name prefixed with "@" to include names from
-# a separate file.
-#
-# CIDR-ADDRESS specifies the set of hosts the record matches.
-# It is made up of an IP address and a CIDR mask that is an integer
-# (between 0 and 32 (IPv4) or 128 (IPv6) inclusive) that specifies
-# the number of significant bits in the mask.  Alternatively, you can write
-# an IP address and netmask in separate columns to specify the set of hosts.
-#
-# METHOD can be "trust", "reject", "md5", "crypt", "password",
-# "krb5", "ident", or "pam".  Note that "password" sends passwords
-# in clear text; "md5" is preferred since it sends encrypted passwords.
-#
-# OPTION is the ident map or the name of the PAM service, depending on METHOD.
-#
-# Database and user names containing spaces, commas, quotes and other special
-# characters must be quoted. Quoting one of the keywords "all", "sameuser" or
-# "samerole" makes the name lose its special character, and just match a
-# database or username with that name.
-#
-# This file is read on server startup and when the postmaster receives
-# a SIGHUP signal.  If you edit the file on a running system, you have
-# to SIGHUP the postmaster for the changes to take effect.  You can use
-# "pg_ctl reload" to do that.
-
-# Put your actual configuration here
-# ----------------------------------
-#
-# If you want to allow non-local connections, you need to add more
-# "host" records. In that case you will also need to make PostgreSQL listen
-# on a non-local interface via the listen_addresses configuration parameter,
-# or via the -i or -h command line switches.
-#
-
-
-
-
-# DO NOT DISABLE!
-# If you change this first entry you will need to make sure that the
-# database
-# super user can access the database using some other method.
-# Noninteractive
-# access to all databases is required during automatic maintenance
-# (autovacuum, daily cronjob, replication, and similar tasks).
-#
-# Database administrative login by UNIX sockets
-local   all         postgres                          ident sameuser
-
-# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
-
-# "local" is for Unix domain socket connections only
-local   all         all                               ident sameuser
-# IPv4 local connections:
-host    all         all         127.0.0.1/32          md5
-# IPv6 local connections:
-host    all         all         ::1/128               md5
-% for m in cfg.hosts + [cfg.db, cfg.remote, cfg.console]:
-host	${cfg.db.dbname}	${cfg.db.user}	${m.ip}/32	trust
-% endfor
Index: unk/packages/sipb-xen-database/server/etc/postgresql/8.3/main/postgresql.conf.invirt
===================================================================
--- /trunk/packages/sipb-xen-database/server/etc/postgresql/8.3/main/postgresql.conf.invirt	(revision 1287)
+++ 	(revision )
@@ -1,493 +1,0 @@
-# -----------------------------
-# PostgreSQL configuration file
-# -----------------------------
-#
-# This file consists of lines of the form:
-#
-#   name = value
-#
-# (The "=" is optional.)  Whitespace may be used.  Comments are introduced with
-# "#" anywhere on a line.  The complete list of parameter names and allowed
-# values can be found in the PostgreSQL documentation.
-#
-# The commented-out settings shown in this file represent the default values.
-# Re-commenting a setting is NOT sufficient to revert it to the default value;
-# you need to reload the server.
-#
-# This file is read on server startup and when the server receives a SIGHUP
-# signal.  If you edit the file on a running system, you have to SIGHUP the
-# server for the changes to take effect, or use "pg_ctl reload".  Some
-# parameters, which are marked below, require a server shutdown and restart to
-# take effect.
-#
-# Any parameter can also be given as a command-line option to the server, e.g.,
-# "postgres -c log_connections=on".  Some paramters can be changed at run time
-# with the "SET" SQL command.
-#
-# Memory units:  kB = kilobytes MB = megabytes GB = gigabytes
-# Time units:    ms = milliseconds s = seconds min = minutes h = hours d = days
-
-
-#------------------------------------------------------------------------------
-# FILE LOCATIONS
-#------------------------------------------------------------------------------
-
-# The default values of these variables are driven from the -D command-line
-# option or PGDATA environment variable, represented here as ConfigDir.
-
-data_directory = '/var/lib/postgresql/8.3/main'		# use data in another directory
-					# (change requires restart)
-hba_file = '/etc/postgresql/8.3/main/pg_hba.conf'	# host-based authentication file
-					# (change requires restart)
-ident_file = '/etc/postgresql/8.3/main/pg_ident.conf'	# ident configuration file
-					# (change requires restart)
-
-# If external_pid_file is not explicitly set, no extra PID file is written.
-external_pid_file = '/var/run/postgresql/8.3-main.pid'		# write an extra PID file
-					# (change requires restart)
-
-
-#------------------------------------------------------------------------------
-# CONNECTIONS AND AUTHENTICATION
-#------------------------------------------------------------------------------
-
-# - Connection Settings -
-
-listen_addresses = '*'			# what IP address(es) to listen on;
-					# comma-separated list of addresses;
-					# defaults to 'localhost', '*' = all
-					# (change requires restart)
-port = 5432				# (change requires restart)
-max_connections = 100			# (change requires restart)
-# Note:  Increasing max_connections costs ~400 bytes of shared memory per 
-# connection slot, plus lock space (see max_locks_per_transaction).  You might
-# also need to raise shared_buffers to support more connections.
-#superuser_reserved_connections = 3	# (change requires restart)
-unix_socket_directory = '/var/run/postgresql'		# (change requires restart)
-#unix_socket_group = ''			# (change requires restart)
-#unix_socket_permissions = 0777		# begin with 0 to use octal notation
-					# (change requires restart)
-#bonjour_name = ''			# defaults to the computer name
-					# (change requires restart)
-
-# - Security and Authentication -
-
-#authentication_timeout = 1min		# 1s-600s
-ssl = true				# (change requires restart)
-#ssl_ciphers = 'ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH'	# allowed SSL ciphers
-					# (change requires restart)
-#password_encryption = on
-#db_user_namespace = off
-
-# Kerberos and GSSAPI
-#krb_server_keyfile = ''		# (change requires restart)
-#krb_srvname = 'postgres'		# (change requires restart, Kerberos only)
-#krb_server_hostname = ''		# empty string matches any keytab entry
-					# (change requires restart, Kerberos only)
-#krb_caseins_users = off		# (change requires restart)
-#krb_realm = ''           		# (change requires restart)
-
-# - TCP Keepalives -
-# see "man 7 tcp" for details
-
-#tcp_keepalives_idle = 0		# TCP_KEEPIDLE, in seconds;
-					# 0 selects the system default
-#tcp_keepalives_interval = 0		# TCP_KEEPINTVL, in seconds;
-					# 0 selects the system default
-#tcp_keepalives_count = 0		# TCP_KEEPCNT;
-					# 0 selects the system default
-
-
-#------------------------------------------------------------------------------
-# RESOURCE USAGE (except WAL)
-#------------------------------------------------------------------------------
-
-# - Memory -
-
-shared_buffers = 24MB			# min 128kB or max_connections*16kB
-					# (change requires restart)
-#temp_buffers = 8MB			# min 800kB
-#max_prepared_transactions = 5		# can be 0 or more
-					# (change requires restart)
-# Note:  Increasing max_prepared_transactions costs ~600 bytes of shared memory
-# per transaction slot, plus lock space (see max_locks_per_transaction).
-#work_mem = 1MB				# min 64kB
-#maintenance_work_mem = 16MB		# min 1MB
-#max_stack_depth = 2MB			# min 100kB
-
-# - Free Space Map -
-
-max_fsm_pages = 153600			# min max_fsm_relations*16, 6 bytes each
-					# (change requires restart)
-#max_fsm_relations = 1000		# min 100, ~70 bytes each
-					# (change requires restart)
-
-# - Kernel Resource Usage -
-
-#max_files_per_process = 1000		# min 25
-					# (change requires restart)
-#shared_preload_libraries = ''		# (change requires restart)
-
-# - Cost-Based Vacuum Delay -
-
-#vacuum_cost_delay = 0			# 0-1000 milliseconds
-#vacuum_cost_page_hit = 1		# 0-10000 credits
-#vacuum_cost_page_miss = 10		# 0-10000 credits
-#vacuum_cost_page_dirty = 20		# 0-10000 credits
-#vacuum_cost_limit = 200		# 1-10000 credits
-
-# - Background Writer -
-
-#bgwriter_delay = 200ms			# 10-10000ms between rounds
-#bgwriter_lru_maxpages = 100		# 0-1000 max buffers written/round
-#bgwriter_lru_multiplier = 2.0		# 0-10.0 multipler on buffers scanned/round
-
-
-#------------------------------------------------------------------------------
-# WRITE AHEAD LOG
-#------------------------------------------------------------------------------
-
-# - Settings -
-
-#fsync = on				# turns forced synchronization on or off
-#synchronous_commit = on		# immediate fsync at commit
-#wal_sync_method = fsync		# the default is the first option 
-					# supported by the operating system:
-					#   open_datasync
-					#   fdatasync
-					#   fsync
-					#   fsync_writethrough
-					#   open_sync
-#full_page_writes = on			# recover from partial page writes
-#wal_buffers = 64kB			# min 32kB
-					# (change requires restart)
-#wal_writer_delay = 200ms		# 1-10000 milliseconds
-
-#commit_delay = 0			# range 0-100000, in microseconds
-#commit_siblings = 5			# range 1-1000
-
-# - Checkpoints -
-
-#checkpoint_segments = 3		# in logfile segments, min 1, 16MB each
-#checkpoint_timeout = 5min		# range 30s-1h
-#checkpoint_completion_target = 0.5	# checkpoint target duration, 0.0 - 1.0
-#checkpoint_warning = 30s		# 0 is off
-
-# - Archiving -
-
-#archive_mode = off		# allows archiving to be done
-				# (change requires restart)
-#archive_command = ''		# command to use to archive a logfile segment
-#archive_timeout = 0		# force a logfile segment switch after this
-				# time; 0 is off
-
-
-#------------------------------------------------------------------------------
-# QUERY TUNING
-#------------------------------------------------------------------------------
-
-# - Planner Method Configuration -
-
-#enable_bitmapscan = on
-#enable_hashagg = on
-#enable_hashjoin = on
-#enable_indexscan = on
-#enable_mergejoin = on
-#enable_nestloop = on
-#enable_seqscan = on
-#enable_sort = on
-#enable_tidscan = on
-
-# - Planner Cost Constants -
-
-#seq_page_cost = 1.0			# measured on an arbitrary scale
-#random_page_cost = 4.0			# same scale as above
-#cpu_tuple_cost = 0.01			# same scale as above
-#cpu_index_tuple_cost = 0.005		# same scale as above
-#cpu_operator_cost = 0.0025		# same scale as above
-#effective_cache_size = 128MB
-
-# - Genetic Query Optimizer -
-
-#geqo = on
-#geqo_threshold = 12
-#geqo_effort = 5			# range 1-10
-#geqo_pool_size = 0			# selects default based on effort
-#geqo_generations = 0			# selects default based on effort
-#geqo_selection_bias = 2.0		# range 1.5-2.0
-
-# - Other Planner Options -
-
-#default_statistics_target = 10		# range 1-1000
-#constraint_exclusion = off
-#from_collapse_limit = 8
-#join_collapse_limit = 8		# 1 disables collapsing of explicit 
-					# JOIN clauses
-
-
-#------------------------------------------------------------------------------
-# ERROR REPORTING AND LOGGING
-#------------------------------------------------------------------------------
-
-# - Where to Log -
-
-#log_destination = 'stderr'		# Valid values are combinations of
-					# stderr, csvlog, syslog and eventlog,
-					# depending on platform.  csvlog
-					# requires logging_collector to be on.
-
-# This is used when logging to stderr:
-#logging_collector = off		# Enable capturing of stderr and csvlog
-					# into log files. Required to be on for
-					# csvlogs.
-					# (change requires restart)
-
-# These are only used if logging_collector is on:
-#log_directory = 'pg_log'		# directory where log files are written,
-					# can be absolute or relative to PGDATA
-#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'	# log file name pattern,
-					# can include strftime() escapes
-#log_truncate_on_rotation = off		# If on, an existing log file of the
-					# same name as the new log file will be
-					# truncated rather than appended to.
-					# But such truncation only occurs on
-					# time-driven rotation, not on restarts
-					# or size-driven rotation.  Default is
-					# off, meaning append to existing files
-					# in all cases.
-#log_rotation_age = 1d			# Automatic rotation of logfiles will
-					# happen after that time.  0 to disable.
-#log_rotation_size = 10MB		# Automatic rotation of logfiles will 
-					# happen after that much log output.
-					# 0 to disable.
-
-# These are relevant when logging to syslog:
-#syslog_facility = 'LOCAL0'
-#syslog_ident = 'postgres'
-
-
-# - When to Log -
-
-#client_min_messages = notice		# values in order of decreasing detail:
-					#   debug5
-					#   debug4
-					#   debug3
-					#   debug2
-					#   debug1
-					#   log
-					#   notice
-					#   warning
-					#   error
-
-#log_min_messages = notice		# values in order of decreasing detail:
-					#   debug5
-					#   debug4
-					#   debug3
-					#   debug2
-					#   debug1
-					#   info
-					#   notice
-					#   warning
-					#   error
-					#   log
-					#   fatal
-					#   panic
-
-#log_error_verbosity = default		# terse, default, or verbose messages
-
-#log_min_error_statement = error	# values in order of decreasing detail:
-				 	#   debug5
-					#   debug4
-					#   debug3
-					#   debug2
-					#   debug1
-				 	#   info
-					#   notice
-					#   warning
-					#   error
-					#   log
-					#   fatal
-					#   panic (effectively off)
-
-#log_min_duration_statement = -1	# -1 is disabled, 0 logs all statements
-					# and their durations, > 0 logs only
-					# statements running at least this time.
-
-#silent_mode = off			# DO NOT USE without syslog or
-					# logging_collector
-					# (change requires restart)
-
-# - What to Log -
-
-#debug_print_parse = off
-#debug_print_rewritten = off
-#debug_print_plan = off
-#debug_pretty_print = off
-#log_checkpoints = off
-#log_connections = off
-#log_disconnections = off
-#log_duration = off
-#log_hostname = off
-log_line_prefix = '%t '			# special values:
-					#   %u = user name
-					#   %d = database name
-					#   %r = remote host and port
-					#   %h = remote host
-					#   %p = process ID
-					#   %t = timestamp without milliseconds
-					#   %m = timestamp with milliseconds
-					#   %i = command tag
-					#   %c = session ID
-					#   %l = session line number
-					#   %s = session start timestamp
-					#   %v = virtual transaction ID
-					#   %x = transaction ID (0 if none)
-					#   %q = stop here in non-session
-					#        processes
-					#   %% = '%'
-					# e.g. '<%u%%%d> '
-#log_lock_waits = off			# log lock waits >= deadlock_timeout
-#log_statement = 'none'			# none, ddl, mod, all
-#log_temp_files = -1			# log temporary files equal or larger
-					# than specified size;
-					# -1 disables, 0 logs all temp files
-#log_timezone = unknown			# actually, defaults to TZ environment
-					# setting
-
-
-#------------------------------------------------------------------------------
-# RUNTIME STATISTICS
-#------------------------------------------------------------------------------
-
-# - Query/Index Statistics Collector -
-
-#track_activities = on
-#track_counts = on
-#update_process_title = on
-
-
-# - Statistics Monitoring -
-
-#log_parser_stats = off
-#log_planner_stats = off
-#log_executor_stats = off
-#log_statement_stats = off
-
-
-#------------------------------------------------------------------------------
-# AUTOVACUUM PARAMETERS
-#------------------------------------------------------------------------------
-
-#autovacuum = on			# Enable autovacuum subprocess?  'on' 
-					# requires track_counts to also be on.
-#log_autovacuum_min_duration = -1	# -1 disables, 0 logs all actions and
-					# their durations, > 0 logs only
-					# actions running at least that time.
-#autovacuum_max_workers = 3		# max number of autovacuum subprocesses
-#autovacuum_naptime = 1min		# time between autovacuum runs
-#autovacuum_vacuum_threshold = 50	# min number of row updates before
-					# vacuum
-#autovacuum_analyze_threshold = 50	# min number of row updates before 
-					# analyze
-#autovacuum_vacuum_scale_factor = 0.2	# fraction of table size before vacuum
-#autovacuum_analyze_scale_factor = 0.1	# fraction of table size before analyze
-#autovacuum_freeze_max_age = 200000000	# maximum XID age before forced vacuum
-					# (change requires restart)
-#autovacuum_vacuum_cost_delay = 20	# default vacuum cost delay for
-					# autovacuum, -1 means use
-					# vacuum_cost_delay
-#autovacuum_vacuum_cost_limit = -1	# default vacuum cost limit for
-					# autovacuum, -1 means use
-					# vacuum_cost_limit
-
-
-#------------------------------------------------------------------------------
-# CLIENT CONNECTION DEFAULTS
-#------------------------------------------------------------------------------
-
-# - Statement Behavior -
-
-#search_path = '"$user",public'		# schema names
-#default_tablespace = ''		# a tablespace name, '' uses the default
-#temp_tablespaces = ''			# a list of tablespace names, '' uses
-					# only default tablespace
-#check_function_bodies = on
-#default_transaction_isolation = 'read committed'
-#default_transaction_read_only = off
-#session_replication_role = 'origin'
-#statement_timeout = 0			# 0 is disabled
-#vacuum_freeze_min_age = 100000000
-#xmlbinary = 'base64'
-#xmloption = 'content'
-
-# - Locale and Formatting -
-
-datestyle = 'iso, mdy'
-#timezone = unknown			# actually, defaults to TZ environment
-					# setting
-#timezone_abbreviations = 'Default'     # Select the set of available time zone
-					# abbreviations.  Currently, there are
-					#   Default
-					#   Australia
-					#   India
-					# You can create your own file in
-					# share/timezonesets/.
-#extra_float_digits = 0			# min -15, max 2
-#client_encoding = sql_ascii		# actually, defaults to database
-					# encoding
-
-# These settings are initialized by initdb, but they can be changed.
-lc_messages = 'C'			# locale for system error message
-					# strings
-lc_monetary = 'C'			# locale for monetary formatting
-lc_numeric = 'C'			# locale for number formatting
-lc_time = 'C'				# locale for time formatting
-
-# default configuration for text search
-default_text_search_config = 'pg_catalog.english'
-
-# - Other Defaults -
-
-#explain_pretty_print = on
-#dynamic_library_path = '$libdir'
-#local_preload_libraries = ''
-
-
-#------------------------------------------------------------------------------
-# LOCK MANAGEMENT
-#------------------------------------------------------------------------------
-
-#deadlock_timeout = 1s
-#max_locks_per_transaction = 64		# min 10
-					# (change requires restart)
-# Note:  Each lock table slot uses ~270 bytes of shared memory, and there are
-# max_locks_per_transaction * (max_connections + max_prepared_transactions)
-# lock table slots.
-
-
-#------------------------------------------------------------------------------
-# VERSION/PLATFORM COMPATIBILITY
-#------------------------------------------------------------------------------
-
-# - Previous PostgreSQL Versions -
-
-#add_missing_from = off
-#array_nulls = on
-#backslash_quote = safe_encoding	# on, off, or safe_encoding
-#default_with_oids = off
-#escape_string_warning = on
-#regex_flavor = advanced		# advanced, extended, or basic
-#sql_inheritance = on
-#standard_conforming_strings = off
-#synchronize_seqscans = on
-
-# - Other Platforms and Clients -
-
-#transform_null_equals = off
-
-
-#------------------------------------------------------------------------------
-# CUSTOMIZED OPTIONS
-#------------------------------------------------------------------------------
-
-#custom_variable_classes = ''		# list of custom variable class names
Index: unk/packages/sipb-xen-database/sipb-xen-database-tables
===================================================================
--- /trunk/packages/sipb-xen-database/sipb-xen-database-tables	(revision 1287)
+++ 	(revision )
@@ -1,20 +1,0 @@
-#!/usr/bin/env python
-
-from invirt import database
-import sys
-
-def usage():
-    print >>sys.stderr, "Usage: %s [create|drop]" %(sys.argv[0],)
-    sys.exit(-1)
-
-if len(sys.argv) == 1:
-    usage()
-
-database.connect()
-
-if sys.argv[1] == "create":
-    database.meta.create_all()
-elif sys.argv[1] == "drop":
-    database.meta.drop_all()
-else:
-    usage()
