* added decomposition of DB URI
[invirt/packages/invirt-console.git] / debian / sipb-xen-console.init
index 9deced5..b472606 100755 (executable)
@@ -1,4 +1,4 @@
-#! /bin/sh
+#!/bin/bash
 ### BEGIN INIT INFO
 # Provides:          sipb-xen-console
 # Required-Start:    $local_fs $remote_fs
 ### BEGIN INIT INFO
 # Provides:          sipb-xen-console
 # Required-Start:    $local_fs $remote_fs
@@ -37,15 +37,37 @@ SCRIPTNAME=/etc/init.d/$NAME
 
 gen_config()
 {
 
 gen_config()
 {
-        (for i in $(invirt-getconf --ls hosts); do
-               hostname=$(invirt-getconf hosts.$i.hostname)
-               echo "#include /etc/conserver/conf.d/$hostname"
-       done) >/etc/conserver/invirt-hosts.cf
-       realm=$(invirt-getconf authn.0.realm)
-        (for i in $(invirt-getconf --ls hosts); do
-               hostname=$(invirt-getconf hosts.$i.hostname)
-               echo "host/$hostname@$realm"
-       done) >/etc/remctl/acl/invirt-console
+    {
+        for i in $(invirt-getconf --ls hosts); do
+            local hostname=$(invirt-getconf hosts.$i.hostname)
+            echo "#include /etc/conserver/conf.d/$hostname"
+        done
+    } > /etc/conserver/invirt-hosts.cf
+    local realm=$(invirt-getconf authn.0.realm)
+    {
+        for i in $(invirt-getconf --ls hosts); do
+            local hostname=$(invirt-getconf hosts.$i.hostname)
+            echo "host/$hostname@$realm"
+        done
+    } > /etc/remctl/acl/invirt-console
+
+    cat > /etc/nss-pgsql.conf << EOF
+host           = $(invirt-getconf db.host)
+port           = $(invirt-getconf db.port)
+database       = $(invirt-getconf db.dbname)
+login          = $(invirt-getconf db.user)
+
+querypasswd = SELECT name, NULL, machine_id + 1000 as uid, machine_id + 1000 as gid, '', '/consolefs/'|| name, '/usr/bin/sipb-xen-consolesh' FROM machines
+querygroup = SELECT name, NULL, machine_id + 1000 as gid FROM machines
+querymembers = SELECT name FROM machines WHERE 1000 + machine_id = %d
+queryids = SELECT 1000 + machine_id AS gid FROM machines LIMIT 0
+
+passwd_name = name
+passwd_uid = 1000 + machine_id
+
+group_name = name
+group_gid = 1000 + machine_id
+EOF
 }
 
 #
 }
 
 #