From 1417b305c990fb428f4089052826a5ba1329c7cf Mon Sep 17 00:00:00 2001 From: Oliver Tappe Date: Sat, 28 Oct 2006 14:23:49 +0000 Subject: * renamed several scripts to our new convention: no .pl for user-executable stuff... git-svn-id: http://svn.openslx.org/svn/openslx/trunk@475 95ad53e4-c205-0410-b2fa-d234c58c8868 --- config-db/devel-tools/test-config-db.pl | 202 ++++++++++++++++++++++++ config-db/devel-tools/test-config-demuxer.pl | 220 +++++++++++++++++++++++++++ 2 files changed, 422 insertions(+) create mode 100755 config-db/devel-tools/test-config-db.pl create mode 100755 config-db/devel-tools/test-config-demuxer.pl (limited to 'config-db/devel-tools') diff --git a/config-db/devel-tools/test-config-db.pl b/config-db/devel-tools/test-config-db.pl new file mode 100755 index 00000000..ecbdbd15 --- /dev/null +++ b/config-db/devel-tools/test-config-db.pl @@ -0,0 +1,202 @@ +#! /usr/bin/perl +# +# test-config-db.pl - test-script for the OpenSLX config-db & MetaDB modules. +# +# (c) 2006 - OpenSLX.com +# +# Oliver Tappe +# +use strict; + +# add the folder this script lives in to perl's search path for modules: +use FindBin; +use lib "$FindBin::RealBin"; + # development path only (as script should never be installed) + +use OpenSLX::Basics; +use OpenSLX::ConfigDB qw(:access :manipulation); + +openslxInit(); + +my $openslxDB = connectConfigDB(); + +addVendorOS($openslxDB, { + 'name' => "suse-93-minimal", + 'descr' => "SuSE 9.3 minimale Installation", +}); + +addVendorOS($openslxDB, { + 'name' => "suse-93-KDE", + 'descr' => "SuSE 9.3 grafische Installation mit KDE", +}); + +addVendorOS($openslxDB, { + 'name' => "debian-31", + 'descr' => "Debian 3.1 Default-Installation", +}); + +my @systems; +foreach my $id (1..10) { + push @systems, { + 'name' => "name of $id", + 'descr' => "descr of $id", + 'vendor_os_id' => 1 + $id % 3, + }; +} +addSystem($openslxDB, \@systems); + +removeSystem($openslxDB, [1,3,5,7,9,11,13,15,17,19] ); + +changeSystem($openslxDB, [ 2 ], [ { 'name' => 'new name of 2'} ] ); + +changeSystem($openslxDB, [ 0 ], [ { 'attrStartX' => 'kde,gnome'} ] ); +changeSystem($openslxDB, [ 1,2,3 ], [ { 'attrHwMonitor' => '1280x1024'} ] ); +changeSystem($openslxDB, [ 4 ], [ { 'attrHwMonitor' => '800x600'} ] ); + + +changeSystem($openslxDB, 4, { 'id' => 114, 'name' => 'id should still be 4'} ); + +my $metaDB = $openslxDB->{'meta-db'}; +my $colDescrs = [ + 'id:pk', + 'name:s.30', + 'descr:s.1024', + 'counter:i', + 'hidden:b', + 'dropped1:b', + 'dropped2:b', +]; +my $initialVals = [ + { + 'name' => '123456789012345678901234567890xxx', + 'descr' => 'descr-value-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', + 'counter' => 34567, + 'hidden' => 1, + 'dropped1' => 0, + 'dropped2' => 1, + }, + { + 'name' => 'name', + 'descr' => q[from_äöüß#'"$...\to_here], + 'counter' => -1, + 'hidden' => 0, + 'dropped1' => 1, + 'dropped2' => 0, + }, +]; + + +$metaDB->schemaAddTable('test', $colDescrs, $initialVals); + +$metaDB->schemaRenameTable('test', 'test2', $colDescrs); + +push @$colDescrs, 'added:s.20'; +push @$colDescrs, 'added2:s.20'; +$metaDB->schemaAddColumns('test2', + ['added:s.20', 'added2:b'], + [{'added' => 'added'}, {'added2' => '1'}], + $colDescrs); + +my @rows = $metaDB->_doSelect("SELECT * FROM test2"); +foreach my $row (@rows) { + foreach my $r (keys %$row) { + print "$r = $row->{$r}\n"; + } +} + +$colDescrs = [grep {$_ !~ m[dropped]} @$colDescrs]; +$metaDB->schemaDropColumns('test2', ['dropped1', 'dropped2'], $colDescrs); + + +$colDescrs = [ + map { + if ($_ =~ m[counter]) { + "count:i"; + } elsif ($_ =~ m[descr]) { + "description:s.30"; + } else { + $_ + } + } @$colDescrs +]; +$metaDB->schemaChangeColumns('test2', + { 'counter' => 'count:i', + 'descr' => 'description:s.30' }, + $colDescrs); + +my @rows = $metaDB->_doSelect("SELECT * FROM test2"); +foreach my $row (@rows) { + foreach my $r (keys %$row) { + print "$r = $row->{$r}\n"; + } +} + +$metaDB->schemaDropTable('test2'); + +my $clientG01ID = addClient($openslxDB, { + 'name' => "PC-G-01", + 'mac' => "00:14:85:80:00:35", + 'boot_type' => 'pxe', +}); + +my $clientG02ID = addClient($openslxDB, { + 'name' => "PC-G-02", + 'mac' => "00:14:85:80:00:36", + 'boot_type' => 'pxe', +}); + +my $clientG03ID = addClient($openslxDB, { + 'name' => "PC-G-03", + 'mac' => "00:14:85:80:00:37", + 'boot_type' => 'pxe', +}); + +my $clientG04ID = addClient($openslxDB, { + 'name' => "PC-G-04", + 'mac' => "00:14:85:80:00:38", + 'boot_type' => 'pxe', + 'unbootable' => 1, +}); + +my $clientF01ID = addClient($openslxDB, { + 'name' => "PC-F-01", + 'mac' => "00:14:85:80:00:31", + 'boot_type' => 'other', +}); + +my $clientF02ID = addClient($openslxDB, { + 'name' => "PC-F-02", + 'mac' => "00:14:85:80:00:32", + 'boot_type' => 'pxe', +}); + +my $clientF03ID = addClient($openslxDB, { + 'name' => "PC-F-03", + 'mac' => "00:14:85:80:00:33", + 'boot_type' => 'pxe', +}); + +addClientIDsToSystem($openslxDB, 6, [$clientG01ID, $clientG02ID, $clientG03ID, $clientG04ID, $clientF01ID, $clientF02ID, $clientF03ID]); + +my $group1ID = addGroup($openslxDB, { + 'name' => "Gell-PCs", + 'descr' => "Gell-Threemansion PCs from 2002", + 'attrHwMouse' => 'serial', +}); +addClientIDsToGroup($openslxDB, $group1ID, [$clientG01ID, $clientF02ID, $clientG03ID]); + +my $group2ID = addGroup($openslxDB, { + 'name' => "Teacher-PCs", + 'descr' => "all PCs sitting on teacher's desks", + 'attrHwMonitor' => '1600x1200', +}); +addClientIDsToGroup($openslxDB, $group2ID, [$clientG01ID, $clientF01ID]); +addSystemIDsToGroup($openslxDB, $group2ID, [2, 3]); + +my $group3ID = addGroup($openslxDB, { + 'name' => "PCs in room G", + 'descr' => "all PCs of room 234", +}); +addClientIDsToGroup($openslxDB, $group3ID, [$clientG01ID, $clientG02ID, $clientG03ID, $clientG04ID]); + +disconnectConfigDB($openslxDB); diff --git a/config-db/devel-tools/test-config-demuxer.pl b/config-db/devel-tools/test-config-demuxer.pl new file mode 100755 index 00000000..e5ee3aa9 --- /dev/null +++ b/config-db/devel-tools/test-config-demuxer.pl @@ -0,0 +1,220 @@ +#! /usr/bin/perl +# +# test-config-demuxer.pl - test-script for the OpenSLX config-demuxer. +# +# (c) 2006 - OpenSLX.com +# +# Oliver Tappe +# +use strict; + +# add the folder this script lives in to perl's search path for modules: +use FindBin; +use lib "$FindBin::RealBin"; + # development path only (as script should never be installed) + +use OpenSLX::Basics; +use OpenSLX::ConfigDB qw(:access :manipulation); + +openslxInit(); + +$openslxConfig{'db-name'} = 'openslx_testscript'; + # make sure to use a database of our own! + +my $openslxDB = connectConfigDB(); + +emptyDatabase($openslxDB); + +addVendorOS($openslxDB,{ + 'name' => "suse-10-minimal", + 'comment' => "SuSE 10 minimale Installation", + 'path' => "suse-10.0", + # relative to /var/lib/openslx/stage1 +}); + +addVendorOS($openslxDB, { + 'name' => "suse-10-KDE", + 'comment' => "SuSE 10 grafische Installation mit KDE", + 'path' => "suse-10.0", +}); + +addVendorOS($openslxDB, { + 'name' => "debian-31", + 'comment' => "Debian 3.1 Default-Installation", +}); + +my @systems; +foreach my $id (1..10) { + push @systems, { + 'name' => "name of $id", + 'label' => "label of $id", + 'comment' => "comment of $id", + 'vendor_os_id' => 1 + $id % 3, + 'ramfs_debug_level' => $id%2, + 'ramfs_use_glibc' => 0, + 'ramfs_use_busybox' => 0, + 'ramfs_nicmods' => ($id % 3) ? 'forcedeth e1000 e100 tg3 via-rhine r8169 pcnet32' : '', + 'ramfs_fsmods' => ($id % 3)==2 ? 'nbd ext3 nfs reiserfs xfs' : '', + 'kernel' => "boot/vmlinuz-2.6.13-15-default", + 'kernel_params' => "splash=silent", + 'export_type' => 'nfs', + }; +} +addSystem($openslxDB, \@systems); + +removeSystem($openslxDB, [1,3,5,7,9,11,13,15,17,19] ); + +changeSystem($openslxDB, [ 2 ], [ { 'name' => 'new name of 2'} ] ); + +changeSystem($openslxDB, [ 0 ], [ { 'attr_start_x' => 'kde,gnome'} ] ); +changeSystem($openslxDB, [ 1,2,3 ], [ { 'attr_hw_monitor' => '1280x1024'} ] ); +changeSystem($openslxDB, [ 4 ], [ { 'attr_hw_monitor' => '800x600'} ] ); + + +changeSystem($openslxDB, 4, { 'id' => 114, 'name' => 'id should still be 4'} ); + +my $metaDB = $openslxDB->{'meta-db'}; +my $colDescrs = [ + 'id:pk', + 'name:s.30', + 'comment:s.1024', + 'counter:i', + 'hidden:b', + 'dropped1:b', + 'dropped2:b', +]; +my $initialVals = [ + { + 'name' => '123456789012345678901234567890xxx', + 'comment' => 'comment-value-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', + 'counter' => 34567, + 'hidden' => 1, + 'dropped1' => 0, + 'dropped2' => 1, + }, + { + 'name' => 'name', + 'comment' => q[from_äöüß#'"$...\to_here], + 'counter' => -1, + 'hidden' => 0, + 'dropped1' => 1, + 'dropped2' => 0, + }, +]; + + +$metaDB->schemaAddTable('test', $colDescrs, $initialVals); + +$metaDB->schemaRenameTable('test', 'test2', $colDescrs); + +push @$colDescrs, 'added:s.20'; +push @$colDescrs, 'added2:s.20'; +$metaDB->schemaAddColumns('test2', + ['added:s.20', 'added2:b'], + [{'added' => 'added'}, {'added2' => '1'}], + $colDescrs); + +my @rows = $metaDB->_doSelect("SELECT * FROM test2"); +foreach my $row (@rows) { + foreach my $r (keys %$row) { + print "$r = $row->{$r}\n"; + } +} + +$colDescrs = [grep {$_ !~ m[dropped]} @$colDescrs]; +$metaDB->schemaDropColumns('test2', ['dropped1', 'dropped2'], $colDescrs); + + +$colDescrs = [ + map { + if ($_ =~ m[counter]) { + "count:i"; + } elsif ($_ =~ m[comment]) { + "description:s.30"; + } else { + $_ + } + } @$colDescrs +]; +$metaDB->schemaChangeColumns('test2', + { 'counter' => 'count:i', + 'comment' => 'description:s.30' }, + $colDescrs); + +my @rows = $metaDB->_doSelect("SELECT * FROM test2"); +foreach my $row (@rows) { + foreach my $r (keys %$row) { + print "$r = $row->{$r}\n"; + } +} + +$metaDB->schemaDropTable('test2'); + +my $clientG01ID = addClient($openslxDB, { + 'name' => "PC-G-01", + 'mac' => "00:50:56:0D:03:35", + 'boot_type' => 'pxe', +}); + +my $clientG02ID = addClient($openslxDB, { + 'name' => "PC-G-02", + 'mac' => "00:50:56:0D:03:36", + 'boot_type' => 'pxe', + 'unbootable' => 1, +}); + +my $clientG03ID = addClient($openslxDB, { + 'name' => "PC-G-03", + 'mac' => "00:50:56:0D:03:37", + 'boot_type' => 'pxe', +}); + +my $clientG04ID = addClient($openslxDB, { + 'name' => "PC-G-04", + 'mac' => "00:50:56:0D:03:38", + 'boot_type' => 'pxe', + 'kernel_params' => 'console=ttyS0,19200', +}); + +my $clientF01ID = addClient($openslxDB, { + 'name' => "PC-F-01", + 'mac' => "00:50:56:0D:03:31", + 'boot_type' => 'other', +}); + +my $clientF02ID = addClient($openslxDB, { + 'name' => "PC-F-02", + 'mac' => "00:50:56:0D:03:32", + 'boot_type' => 'pxe', +}); + +my $clientF03ID = addClient($openslxDB, { + 'name' => "PC-F-03", + 'mac' => "00:50:56:0D:03:33", + 'boot_type' => 'pxe', +}); + +addClientIDsToSystem($openslxDB, 6, [$clientG01ID, $clientG02ID, $clientG03ID, $clientG04ID, $clientF01ID, $clientF02ID, $clientF03ID]); + +my $group1ID = addGroup($openslxDB, { + 'name' => "Gell-PCs", + 'comment' => "Gell-Threemansion PCs from 2002", + 'attr_hw_mouse' => 'serial', +}); +addClientIDsToGroup($openslxDB, $group1ID, [$clientG01ID, $clientF02ID, $clientG03ID]); + +my $group2ID = addGroup($openslxDB, { + 'name' => "Teacher-PCs", + 'comment' => "all PCs sitting on teacher's desks", + 'attr_hw_monitor' => '1600x1200', +}); +addClientIDsToGroup($openslxDB, $group2ID, [$clientG01ID, $clientF01ID]); +addSystemIDsToGroup($openslxDB, $group2ID, [2, 3]); + +my $group3ID = addGroup($openslxDB, { + 'name' => "PCs in room G", + 'comment' => "all PCs of room 234", +}); +addClientIDsToGroup($openslxDB, $group3ID, [$clientG01ID, $clientG02ID, $clientG03ID, $clientG04ID]); + +disconnectConfigDB($openslxDB); -- cgit v1.2.3-55-g7522