From da7455266023274dd1aca1fb9854a6bbe8985f67 Mon Sep 17 00:00:00 2001 From: Oliver Tappe Date: Sat, 24 May 2008 16:25:22 +0000 Subject: * heavily redesigned and improved the checking of attributes: instead of dying on the first error, we now collect all errors and return them. The caller can now decide what to do - die or just print a warning or whatever. * slxconfig now dies with the list of all attribute problems if there were any * slxconfig-demuxer prints warnings for all attribute problems that were found (checking for each system & client in turn) * adjusted desktop plugin to API changes concerning the attribute checks git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@1796 95ad53e4-c205-0410-b2fa-d234c58c8868 --- config-db/slxconfig-demuxer | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'config-db/slxconfig-demuxer') diff --git a/config-db/slxconfig-demuxer b/config-db/slxconfig-demuxer index 6eb613a3..5d0928ae 100755 --- a/config-db/slxconfig-demuxer +++ b/config-db/slxconfig-demuxer @@ -641,14 +641,14 @@ sub writeClientConfigurationsForSystem $externalSystemID, $buildPath, $externalClientName ); - my $attrsOK = eval { - OpenSLX::AttributeRoster->checkValues( - $client->{attrs}, $info->{'vendor-os'}->{name} - ); - 1; - }; - if (!$attrsOK && $@) { - warn $@; + my $attrProblems = OpenSLX::AttributeRoster->findProblematicValues( + $client->{attrs}, $info->{'vendor-os'}->{name}, + $info->{'installed-plugins'} + ); + if ($attrProblems) { + my $complaint = join "\n", @$attrProblems; + $complaint =~ s{^}{client $client->{name}: }gms; + warn $complaint; } writeAttributesToFile($client, $attrFile); @@ -746,14 +746,14 @@ sub writeSystemConfiguration ) ); - my $attrsOK = eval { - OpenSLX::AttributeRoster->checkValues( - $info->{attrs}, $info->{'vendor-os'}->{name} - ); - 1; - }; - if (!$attrsOK && $@) { - warn $@; + my $attrProblems = OpenSLX::AttributeRoster->findProblematicValues( + $info->{attrs}, $info->{'vendor-os'}->{name}, + $info->{'installed-plugins'} + ); + if ($attrProblems) { + my $complaint = join "\n", @$attrProblems; + $complaint =~ s{^}{system $info->{name}: }gms; + warn $complaint; } my $attrFile = "$buildPath/initramfs/machine-setup"; -- cgit v1.2.3-55-g7522