#!/bin/bash
#======================================
# Functions...
#--------------------------------------
test -f /.kconfig && . /.kconfig
test -f /.profile && . /.profile

#======================================
# Greeting...
#--------------------------------------
echo "Configure image: [$kiwi_iname]..."
#======================================
# Activate services
#--------------------------------------
ifup lo
suseActivateDefaultServices
suseInsertService boot.device-mapper
suseInsertService slpd
suseInsertService ntp
# OBS worker
suseInsertService obsworker
suseInsertService obsstoragesetup

#======================================
# SuSEconfig
#--------------------------------------
suseConfig

# no gfx boot menu, no error message please
sed -i /^gfxmenu/d /boot/grub/menu.lst

# setup initrd for XEN workers
sed -i -e 's/^DOMU_INITRD_MODULES="/DOMU_INITRD_MODULES="loop dm-mod dm-snapshot binfmt_misc fuse kqemu squashfs ext2 ext3 ext4 reiserfs btrfs vfat nf_conntrack_ipv6 /' /etc/sysconfig/kernel
sed -i -e 's/^NO_KMS_IN_INITRD=.*/NO_KMS_IN_INITRD="yes"/' /etc/sysconfig/kernel

# For save booting, there is some race between blogd and console setup in 11.4 atm
sed -i -e 's/^RUN_PARALLEL=.*/RUN_PARALLEL="no"/' /etc/sysconfig/boot

# configure network
cat >> /etc/sysconfig/network/config <<EOF

NETCONFIG_MODULES_ORDER="dns-resolver dns-bind ntp-runtime"
NETCONFIG_DNS_POLICY="auto"
NETCONFIG_DNS_FORWARDER="resolver"
NETCONFIG_NIS_SETDOMAINNAME="yes"
NETCONFIG_NTP_POLICY="auto"
EOF

chmod +x /etc/sysconfig/network/scripts/logserver-up.sh
ln -s /etc/sysconfig/network/scripts/logserver-up.sh /etc/sysconfig/network/if-up.d/logserver

# runlevel 3 as default
sed -i 's/^id:5:initdefault:/id:3:initdefault:/' /etc/inittab

# enable autosetup
sed -i 's,OBS_API_AUTOSETUP=.*,OBS_API_AUTOSETUP="yes",' /etc/sysconfig/obs-server
sed -i 's,OBS_STORAGE_AUTOSETUP=.*,OBS_STORAGE_AUTOSETUP="yes",' /etc/sysconfig/obs-*
sed -i 's,OBS_SETUP_WORKER_PARTITIONS=.*,OBS_SETUP_WORKER_PARTITIONS="use_obs_vg",' /etc/sysconfig/obs-*

# hardwired ntp server config, in case dhcp distribution of ntp config is not working
echo "" >> /etc/ntp.conf
echo "server ptbtime1.ptb.de" >> /etc/ntp.conf
echo "server ptbtime2.ptb.de" >> /etc/ntp.conf
echo "server ptbtime3.ptb.de" >> /etc/ntp.conf
echo "multicastclient" >> /etc/ntp.conf
echo "restrict 127.0.0.1" >> /etc/ntp.conf
echo "restrict -6 ::1" >> /etc/ntp.conf
echo "restrict ptbtime1.ptb.de nomodify notrap nopeer noquery" >> /etc/ntp.conf
echo "restrict ptbtime2.ptb.de nomodify notrap nopeer noquery" >> /etc/ntp.conf
echo "restrict ptbtime3.ptb.de nomodify notrap nopeer noquery" >> /etc/ntp.conf
echo "disable monitor" >> /etc/ntp.conf

# enable initial time sync on startup
sed -i 's,NTPD_FORCE_SYNC_ON_STARTUP=.*,NTPD_FORCE_SYNC_ON_STARTUP="yes",' /etc/sysconfig/ntp
# set our timezone
if [ -f /usr/share/zoneinfo/Europe/Berlin ] ; then
        cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime
fi

# allow root login via serial console for debugging
echo "" >> /etc/securetty
echo "# for debugging purposes" >> /etc/securetty
echo ttyS0 >> /etc/securetty
echo ttyS1 >> /etc/securetty
echo "" >> /etc/inittab
echo "S0:12345:respawn:/sbin/agetty -L 19200 ttyS0 vt102" >> /etc/inittab
echo "S1:12345:respawn:/sbin/agetty -L 57600 ttyS1 vt102" >> /etc/inittab
 
# bug ?
chown root.root /var/lib/empty

#======================================
# Configure OBS to use /obs by default
#--------------------------------------
#sed -i 's,/srv/obs,/obs,g' /usr/lib/obs/server/BSConfig.pm
#sed -i 's,.*our $serviceserve.*,our $serviceserver = "http://$hostname:5152";,' /usr/lib/obs/server/BSConfig.pm
#sed -i 's,^our $repodownload.*,our $repodownload = "http://$hostname:82/";,' /usr/lib/obs/server/BSConfig.pm
sed -i 's,^OBS_RUN_DIR=.*,OBS_RUN_DIR="/obs/run",' /etc/sysconfig/obs-server
sed -i 's,^OBS_LOG_DIR=.*,OBS_LOG_DIR="/obs/log",' /etc/sysconfig/obs-server
#sed -i 's,^datadir.=.*,datadir = /obs/MySQL,' /etc/my.cnf
#sed -i '/^\[mysqld_multi\]/adatadir = /obs/MySQL' /etc/my.cnf # config of openSUSE 11.4 does not come with a default dir for its default mode
# signing setup
#sed -i 's,.*our $gpg_standard_key.*,our $gpg_standard_key = "/obs/obs-default-gpg.asc";,' /usr/lib/obs/server/BSConfig.pm
#sed -i 's,.*our $keyfile.*,our $keyfile = "/obs/obs-default-gpg.asc";,' /usr/lib/obs/server/BSConfig.pm
#sed -i 's,.*our $sign = .*,our $sign = "/usr/bin/sign";,' /usr/lib/obs/server/BSConfig.pm
#sed -i 's,.*our $forceprojectkeys.*,our $forceprojectkeys = 1;,' /usr/lib/obs/server/BSConfig.pm
#chmod 4755 /usr/bin/sign
# configure monitoring
sed -i s@"127.0.0.1$"@"127.0.0.1 85.236.33.9 83.141.20.191"@g /etc/xinetd.d/nrpe
echo 'command[check_updates]=/usr/lib/nagios/plugins/check_zypper' > /etc/nagios/nrpe.d/updates.cfg
#echo 'allow ^83\.141\.20\.189$' >> /etc/munin/munin-node.conf
#echo 'allow ^85\.236\.33\.9$' >> /etc/munin/munin-node.conf
echo 'cidr_allow 85.236.33.9/32' >> /etc/munin/munin-node.conf
echo 'cidr_allow 83.141.20.0/24' >> /etc/munin/munin-node.conf
/usr/sbin/munin-node-configure --shell | sh
chkconfig xinetd on
chkconfig munin-node on

# allow unsupported modules on sles
sed -i -r 's@^allow_unsupported_modules 0@allow_unsupported_modules 1@' /etc/modprobe.d/unsupported-modules

# enable ext4 write support
echo 'options ext4 rw=1' >> /etc/modprobe.conf.local

#======================================
# Add Default Repositories
#--------------------------------------
#zypper ar http://download.opensuse.org/update/11.4/                                       openSUSE:11.4:Update
#zypper ar http://download.opensuse.org/repositories/openSUSE:11.4/standard                openSUSE:11.4
#zypper ar http://download.opensuse.org/repositories/openSUSE:Tools/SLE_11_SP2          openSUSE:Tools
zypper --gpg-auto-import-keys ar -f http://download.obs.j0ke.net/J0KE.NET:/Tools/SLE_11_SP3/ J0KE.NET:Tools
zypper --gpg-auto-import-keys ar -f http://download.obs.j0ke.net/home:/netmax:/tools/SLE_11_SP3/ home:netmax:tools
zypper --gpg-auto-import-keys ar -f http://download.obs.j0ke.net/server:/monitoring/SLE_11_SP3/ server:monitoring
#======================================
# Umount kernel filesystems
#--------------------------------------
baseCleanMount

exit 0
