[yast-commit] r58211 - in /trunk/ldap-server/src: LdapServer.pm agent/SlapdConfigAgent.cc

Author: rhafer Date: Thu Jul 30 09:44:43 2009 New Revision: 58211 URL: http://svn.opensuse.org/viewcvs/yast?rev=58211&view=rev Log: Added some sanity checks to make AutoYaST support more tolerant (bnc#522216) Modified: trunk/ldap-server/src/LdapServer.pm trunk/ldap-server/src/agent/SlapdConfigAgent.cc Modified: trunk/ldap-server/src/LdapServer.pm URL: http://svn.opensuse.org/viewcvs/yast/trunk/ldap-server/src/LdapServer.pm?rev... ============================================================================== --- trunk/ldap-server/src/LdapServer.pm (original) +++ trunk/ldap-server/src/LdapServer.pm Thu Jul 30 09:44:43 2009 @@ -535,6 +535,10 @@ my $ret = 1; if ( ! $usesBackConfig || ! $slapdConfChanged || $overwriteConfig ) { + if ( ! $self->ReadServiceEnabled() ) + { + return 1; + } $overwriteConfig = 0; my $progressItems = [ _("Writing Startup Configuration"), _("Cleaning up config directory"), @@ -595,6 +599,15 @@ y2milestone("using tempfile: ".$tmpfile ); my $ldif = SCR->Read('.ldapserver.configAsLdif' ); y2debug($ldif); + if ( ! $ldif ) + { + my $err = SCR->Error(".ldapserver"); + y2error("Creating LDIF for initial configuration failed"); + $self->SetError( $err->{'summary'}, $err->{'description'} ); + # cleanup + SCR->Execute('.target.bash', "rm -f $tmpfile" ); + return 0; + } $rc = SCR->Write('.target.string', $tmpfile, $ldif ); if ( $rc ) { @@ -856,21 +869,41 @@ my $hash = shift; y2milestone("LdapServer::Import() : ". Data::Dumper->Dump([$hash])); - if ( ! keys( %$hash ) ) + if ( (! keys( %$hash )) || (! defined $hash->{'daemon'}) || + (! defined $hash->{'globals'}) || (! defined $hash->{'databases'}) ) { $usingDefaults = 1; $overwriteConfig = 0; $self->WriteServiceEnabled( 0 ); + y2milestone("Wrong/empty ldap-server profile"); + return 0; + } + + if ( defined $hash->{'daemon'}->{'serviceEnabled'} ) + { + $self->WriteServiceEnabled( $hash->{'daemon'}->{'serviceEnabled'} ); + } + else + { + $self->WriteServiceEnabled(0); + } + + if ( ! $self->ReadServiceEnabled() ) + { return 1; } + $usingDefaults = 0; $overwriteConfig = 1; - $self->WriteServiceEnabled( $hash->{'daemon'}->{'serviceEnabled'} ); - if ( ! $self->ReadServiceEnabled() ) + + if ( defined $hash->{'daemon'}->{'slp'} ) { - return 1; + $self->WriteSLPEnabled( $hash->{'daemon'}->{'slp'} ); + } + else + { + $self->WriteSLPEnabled( 0 ); } - $self->WriteSLPEnabled( $hash->{'daemon'}->{'slp'} ); foreach my $listner (@{$hash->{'daemon'}->{'listners'} } ) { @@ -1108,7 +1141,7 @@ sub AutoPackages { # TODO FIXME: your code here... my %ret = ( - "install" => (), + "install" => ( "openldap2", "openldap2-client" ), "remove" => (), ); return \%ret; Modified: trunk/ldap-server/src/agent/SlapdConfigAgent.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/ldap-server/src/agent/SlapdConfig... ============================================================================== --- trunk/ldap-server/src/agent/SlapdConfigAgent.cc (original) +++ trunk/ldap-server/src/agent/SlapdConfigAgent.cc Thu Jul 30 09:44:43 2009 @@ -1583,6 +1583,10 @@ { y2milestone("ConfigToLdif"); std::ostringstream ldif; + if ( ! globals || ! schemaBase ) + { + throw std::runtime_error("Configuration not initialized. Can't create LDIF dump." ); + } ldif << globals->toLdif() << std::endl; ldif << schemaBase->toLdif() << std::endl; OlcSchemaList::const_iterator j; -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org
participants (1)
-
rhafer@svn.opensuse.org