[pkg-kolab] r1395 - pkg-kolab_testsuite
Mathieu Parent
sathieu at alioth.debian.org
Sun Nov 15 13:56:55 UTC 2009
Author: sathieu
Date: 2009-11-15 13:56:55 +0000 (Sun, 15 Nov 2009)
New Revision: 1395
Modified:
pkg-kolab_testsuite/testsuite
Log:
testsuite:
- added action chroot
- prompt for unknown action
- try to release virtualbox domain (not yet complete)
Modified: pkg-kolab_testsuite/testsuite
===================================================================
--- pkg-kolab_testsuite/testsuite 2009-11-14 18:45:16 UTC (rev 1394)
+++ pkg-kolab_testsuite/testsuite 2009-11-15 13:56:55 UTC (rev 1395)
@@ -145,6 +145,34 @@
}
#-------------------------------------------------------
+sub domain_pre_chroot
+{
+ my $domid = shift;
+ my $domname = shift;
+
+ my $storagepooldir = $config{'storagepooldir'};
+
+ print "* Preparing chroot";
+ system("sudo mkdir -p '$storagepooldir/domains/$domname/disk'");
+ system("sudo mount -o loop '$storagepooldir/domains/$domname/disk.img' '$storagepooldir/domains/$domname/disk'");
+ print ".\n";
+}
+
+#-------------------------------------------------------
+sub domain_post_chroot
+{
+ my $domid = shift;
+ my $domname = shift;
+
+ my $storagepooldir = $config{'storagepooldir'};
+
+ print "* Releasing chroot";
+ system("sudo umount '$storagepooldir/domains/$domname/disk'");
+ system("sudo rmdir '$storagepooldir/domains/$domname/disk'");
+ print ".\n";
+}
+
+#-------------------------------------------------------
sub domain_make_bootable
{
my $domid = shift;
@@ -195,19 +223,34 @@
my $storagepooldir = $config{'storagepooldir'};
- print "* Installing:\n";
- system("sudo mkdir '$storagepooldir/domains/$domname/disk'");
- system("sudo mount -o loop '$storagepooldir/domains/$domname/disk.img' '$storagepooldir/domains/$domname/disk'");
+ domain_pre_chroot($domid, $domname);
if($config{'virt_type'} eq 'vbox') {
domain_make_bootable($domid, $domname);
}
- #copy ssh key
- system("sudo mkdir '$storagepooldir/domains/$domname/disk/root/.ssh'");
+
+ print "* Copying ssh key";
+ system("sudo mkdir -p '$storagepooldir/domains/$domname/disk/root/.ssh'");
system("sudo cp '$storagepooldir/key.pub' '$storagepooldir/domains/$domname/disk/root/.ssh/authorized_keys'");
+ print ".\n";
+
+ domain_post_chroot($domid, $domname);
+}
+
+#-------------------------------------------------------
+sub domain_chroot
+{
+ my $domid = shift;
+ my $domname = shift;
- system("sudo umount '$storagepooldir/domains/$domname/disk'");
- system("sudo rmdir '$storagepooldir/domains/$domname/disk'");
+ my $storagepooldir = $config{'storagepooldir'};
+
+ domain_pre_chroot($domid, $domname);
+
+ print "* Chrooting:\n";
+ system("sudo chroot '$storagepooldir/domains/$domname/disk/'");
+
+ domain_post_chroot($domid, $domname);
}
#-------------------------------------------------------
@@ -224,9 +267,15 @@
print "* Preparing:\n";
if($config{'virt_type'} eq 'vbox') {
+ #release
+ system("VBoxManage unregistervm '$domname' --delete");
+ system("VBoxManage closemedium disk '$storagepooldir/domains/$domname/disk.vmdk'");
+ system("sudo rm '$storagepooldir/domains/$domname/disk.vmdk'");
#volume
my $loopdev = `sudo losetup --find --show '$storagepooldir/domains/$domname/disk.img'`;
$loopdev =~ s/\s+$//;
+ system("sudo chgrp disk '$storagepooldir/domains/$domname'");
+ system("sudo chmod g+w '$storagepooldir/domains/$domname'");
system("VBoxManage internalcommands createrawvmdk ".
"-filename '$storagepooldir/domains/$domname/disk.vmdk' ".
"-rawdisk '$loopdev' ");
@@ -335,14 +384,11 @@
print ".\n";
}
domain_bootstrap($domid, $domname);
- }
- if ($action eq 'preboot_install') {
+ } elsif ($action eq 'preboot_install') {
domain_preboot_install($domid, $domname);
- }
- if ($action eq 'boot') {
+ } elsif ($action eq 'boot') {
domain_boot($domid, $domname);
- }
- if ($action eq 'install') {
+ } elsif ($action eq 'install') {
#/etc/hosts file
system("ssh -i '".$config{'storagepooldir'}."/key' root\@$domip 'cat <<EOF >> /etc/hosts
$hosts
@@ -355,12 +401,15 @@
system("ssh -i '".$config{'storagepooldir'}."/key' root\@$domip 'apt-get update'");
print "Nothing to do yet\n";
# follow https://wiki.kolab.org/index.php/Debian_-_Administrators_-_Kolab_Installation
- }
- if ($action eq 'test') {
+ } elsif ($action eq 'test') {
print "Nothing to do yet\n";
#apt-get install phpunit
#php /usr/share/php/tests/Kolab_Filter/Horde/Kolab/Filter/AllTests.php
#php /usr/share/php/tests/Kolab_FreeBusy/Horde/Kolab/FreeBusy/AllTests.php
+ } elsif ($action eq 'chroot') {
+ domain_chroot($domid, $domname);
+ } else {
+ print "Unknow action: $action\n";
}
}
}
More information about the pkg-kolab-devel
mailing list