summaryrefslogtreecommitdiffstats
path: root/config-db
diff options
context:
space:
mode:
authorOliver Tappe2007-03-26 13:54:52 +0200
committerOliver Tappe2007-03-26 13:54:52 +0200
commit991374ded9eb4c29bc4a7f2b805465fc199bf3e5 (patch)
tree080808925a2d864f44f2f42e796160dfce6af833 /config-db
parent* do not list rsync temp folders any longer when showing all exported vendor-... (diff)
downloadcore-991374ded9eb4c29bc4a7f2b805465fc199bf3e5.tar.gz
core-991374ded9eb4c29bc4a7f2b805465fc199bf3e5.tar.xz
core-991374ded9eb4c29bc4a7f2b805465fc199bf3e5.zip
* --list-systems now shows the names of the respective systems' clients, too
* --list-clients now shows the names of the respective clients' systems, too * --list-exports now shows the names of the respective exports' vendor-OS, too git-svn-id: http://svn.openslx.org/svn/openslx/trunk@822 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'config-db')
-rwxr-xr-xconfig-db/slxconfig63
1 files changed, 51 insertions, 12 deletions
diff --git a/config-db/slxconfig b/config-db/slxconfig
index 447f6758..e0e88bea 100755
--- a/config-db/slxconfig
+++ b/config-db/slxconfig
@@ -135,9 +135,12 @@ sub dumpElements
print join(
'',
map {
+ my $spc = ' 'x25;
+ my $val = $elem->{$_};
+ $val =~ s[\n][\n\t$spc ]g;
"\t$_"
- .substr(' ',length($_))
- ." = $elem->{$_}\n";
+ .substr($spc, length($_))
+ ." = $val\n";
}
sort keys %$elem
);
@@ -155,9 +158,20 @@ sub listClients
my $clientData = parseKeyValueArgs(\@clientKeys, 'client', @_);
- dumpElements('client',
- sort { $a->{name} cmp $b->{name} }
- $openslxDB->fetchClientByFilter($clientData));
+
+ dumpElements(
+ 'client',
+ map {
+ my @sysIDs = $openslxDB->aggregatedSystemIDsOfClient($_);
+ $_->{systems}
+ = join "\n",
+ map { $_->{name} }
+ $openslxDB->fetchSystemByID(\@sysIDs, 'name');
+ $_;
+ }
+ sort { $a->{name} cmp $b->{name} }
+ $openslxDB->fetchClientByFilter($clientData)
+ );
}
sub listExports
@@ -168,9 +182,19 @@ sub listExports
my $exportData = parseKeyValueArgs(\@exportKeys, 'export', @_);
- dumpElements('export',
- sort { $a->{name} cmp $b->{name} }
- $openslxDB->fetchExportByFilter($exportData));
+ dumpElements(
+ 'export',
+ map {
+ my $vendorOS
+ = $openslxDB->fetchVendorOSByID($_->{vendor_os_id}, 'name');
+ if (defined $vendorOS) {
+ $_->{vendor_os_id} .= " ($vendorOS->{name})";
+ }
+ $_;
+ }
+ sort { $a->{name} cmp $b->{name} }
+ $openslxDB->fetchExportByFilter($exportData)
+ );
}
sub listSystems
@@ -181,9 +205,23 @@ sub listSystems
my $systemData = parseKeyValueArgs(\@systemKeys, 'system', @_);
- dumpElements('system',
- sort { $a->{name} cmp $b->{name} }
- $openslxDB->fetchSystemByFilter($systemData));
+ dumpElements(
+ 'system',
+ map {
+ my @clientIDs = $openslxDB->aggregatedClientIDsOfSystem($_);
+ $_->{clients}
+ = join "\n",
+ map { $_->{name} }
+ $openslxDB->fetchClientByID(\@clientIDs, 'name');
+ my $export = $openslxDB->fetchExportByID($_->{export_id}, 'name');
+ if (defined $export) {
+ $_->{export_id} .= " ($export->{name})";
+ }
+ $_;
+ }
+ sort { $a->{name} cmp $b->{name} }
+ $openslxDB->fetchSystemByFilter($systemData)
+ );
}
sub listVendorOSes
@@ -365,7 +403,8 @@ sub changeClientInConfigDB
$clientData->{name});
}
- if ($clientData->{mac} !~ m[^(?:[[:xdigit:]][[:xdigit:]]:){5}?[[:xdigit:]][[:xdigit:]]$]) {
+ if (length($clientData->{mac})
+ && $clientData->{mac} !~ m[^(?:[[:xdigit:]][[:xdigit:]]:){5}?[[:xdigit:]][[:xdigit:]]$]) {
die _tr("unknown MAC-format given, expected something like '01:02:03:04:05:06'!\n");
}