From: Nelson Elhage Date: Thu, 16 Aug 2007 05:01:56 +0000 (-0400) Subject: Adding postini and prerm scripts for sipb-xen-database-server X-Git-Tag: sipb-xen-database/1^0 X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-database.git/commitdiff_plain/f2adfe4c961ec18f2c767c5d48538b456ace4d77 Adding postini and prerm scripts for sipb-xen-database-server svn path=/trunk/packages/sipb-xen-database/sipb-xen-database/; revision=77 --- diff --git a/debian/sipb-xen-database-server.install b/debian/sipb-xen-database-server.install index bf66dce..808413f 100644 --- a/debian/sipb-xen-database-server.install +++ b/debian/sipb-xen-database-server.install @@ -1 +1 @@ -server/* . +sipb-xen-database-tables usr/bin diff --git a/debian/sipb-xen-database-server.postinst b/debian/sipb-xen-database-server.postinst new file mode 100644 index 0000000..ef5e29e --- /dev/null +++ b/debian/sipb-xen-database-server.postinst @@ -0,0 +1,63 @@ +#!/bin/sh +# postinst script for #PACKAGE# +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `configure' +# * `abort-upgrade' +# * `abort-remove' `in-favour' +# +# * `abort-remove' +# * `abort-deconfigure' `in-favour' +# `removing' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + configure) + # 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 + PG_HBA=/etc/postgresql/8.1/main/pg_hba.conf + perl -ni -e 'print unless /^# ===BEGIN ADDED BY sipb-xen-dabase server$/ .. + /^# ===END ADDED BY sipb-xen-dabase server$/' \ + "$PG_HBA" + cat<> "$PG_HBA" +# ===BEGIN ADDED BY sipb-xen-dabase server +# DO NOT EDIT +host sipb_xen sipb-xen 127.0.0.1/32 trust +local sipb_xen sipb-xen trust +# ===END ADDED BY sipb-xen-dabase server +EOF + + if hash invoke-rc.d; then + invoke-rc.d postgresql-8.1 restart + else + /etc/init.d/postgresql-8.1 restart + fi + + sipb-xen-database-tables create + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "postinst 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 + + diff --git a/debian/sipb-xen-database-server.prerm b/debian/sipb-xen-database-server.prerm new file mode 100644 index 0000000..b2936d4 --- /dev/null +++ b/debian/sipb-xen-database-server.prerm @@ -0,0 +1,54 @@ +#!/bin/sh +# prerm script for #PACKAGE# +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `remove' +# * `upgrade' +# * `failed-upgrade' +# * `remove' `in-favour' +# * `deconfigure' `in-favour' +# `removing' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + remove|upgrade|deconfigure) + + # This will destroy data -- do we want to do this? + # su postgres -c 'dropdb sipb_xen' + # su postgres -c 'dropuser sipb-xen' + PG_HBA=/etc/postgresql/8.1/main/pg_hba.conf + perl -ni -e 'print unless /^# ===BEGIN ADDED BY sipb-xen-dabase server$/ .. + /^# ===END ADDED BY sipb-xen-dabase server$/' \ + "$PG_HBA" + + if hash invoke-rc.d; then + invoke-rc.d postgresql-8.1 restart + else + /etc/init.d/postgresql-8.1 restart + fi + ;; + + 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 + + diff --git a/sipb-xen-database-tables b/sipb-xen-database-tables new file mode 100755 index 0000000..f054616 --- /dev/null +++ b/sipb-xen-database-tables @@ -0,0 +1,18 @@ +#!/usr/bin/env python + +from sipb_xen_database import * +import sys + +def usage(): + print >>sys.stderr, "Usage: %s [create|drop]" %(sys.argv[0],) + sys.exit(-1) + +if len(sys.argv) == 1: + usage() + +connect('postgres://sipb-xen@localhost/sipb_xen') + +if sys.argv[1] == "create": + meta.create_all() +else: + meta.drop_all() diff --git a/sipb_xen_database/__init__.py b/sipb_xen_database/__init__.py index e69de29..c247bdf 100644 --- a/sipb_xen_database/__init__.py +++ b/sipb_xen_database/__init__.py @@ -0,0 +1,5 @@ +from models import * + +def connect(uri): + """ Connect to a given database URI""" + meta.connect(uri) diff --git a/sipb_xen_database/models.py b/sipb_xen_database/models.py index fdfe84c..cc4a7e9 100644 --- a/sipb_xen_database/models.py +++ b/sipb_xen_database/models.py @@ -3,6 +3,17 @@ from sqlalchemy import * from sqlalchemy.ext.sessioncontext import SessionContext from sqlalchemy.ext.assignmapper import assign_mapper +__all__ = ['meta', + 'ctx', + 'machine_table', + 'nic_table', + 'disk_table', + 'types_table', + 'Machine', + 'NIC', + 'Disk', + 'Type'] + meta = DynamicMetaData() ctx = SessionContext(create_session)