[yast-commit] r49549 - in /trunk/ldap-server/src: LdapServer.pm complex.ycp dialogs.ycp tree_structure.ycp

Author: rhafer Date: Thu Jul 31 17:15:10 2008 New Revision: 49549 URL: http://svn.opensuse.org/viewcvs/yast?rev=49549&view=rev Log: reworked startup procedure when back-config is used and slapd is not running Modified: trunk/ldap-server/src/LdapServer.pm trunk/ldap-server/src/complex.ycp trunk/ldap-server/src/dialogs.ycp trunk/ldap-server/src/tree_structure.ycp 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 31 17:15:10 2008 @@ -34,6 +34,7 @@ my $usesBackConfig = 0; my $slapdConfChanged = 0; my $serviceEnabled = 0; +my $serviceRunning = 1; my $registerSlp = 0; my $useLdapiForConfig = 0; my %dbDefaults = (); @@ -138,12 +139,13 @@ Progress->New("Initializing LDAP Server Configuration", "Blub", 3, $progressItems, $progressItems, ""); Progress->NextStage(); my $serviceInfo = Service->FullInfo("ldap"); + y2milestone("Serviceinfo: ". Data::Dumper->Dump([$serviceInfo])); my $isRunning = ( defined $serviceInfo->{"started"}) && ($serviceInfo->{"started"} == 0); # 0 == "running" - my $isEnabled = $serviceInfo->{"start"} && $serviceInfo->{"start"} > 0; + my $isEnabled = scalar(@{$serviceInfo->{"start"}}) > 0; $serviceEnabled = $isEnabled; - - y2milestone("Serviceinfo: ". Data::Dumper->Dump([$serviceInfo])); + $serviceRunning = $isRunning; y2milestone("IsRunning: " . $isRunning . " IsEnabled " . $isEnabled); + Progress->NextStage(); my $configBackend = SCR->Read('.sysconfig.openldap.OPENLDAP_CONFIG_BACKEND'); @@ -164,16 +166,26 @@ } else { - # LDAP Server not running. Use slapcat to import the config - y2milestone("Using slapcat to import configuration"); - my $rc = SCR->Execute('.target.bash_output', - "/usr/sbin/slapcat -F /etc/openldap/slapd.d -b cn=config" ); + # check if configuration exists + if (SCR->Read(".target.size", '/etc/openldap/slapd.d/cn=config.ldif') <= 0) + { + $slapdConfChanged = 0; + } + else + { + # LDAP Server not running. Can't read the configuration until + # server started + $slapdConfChanged = 1; + } +# y2milestone("Using slapcat to import configuration"); +# my $rc = SCR->Execute('.target.bash_output', +# "/usr/sbin/slapcat -F /etc/openldap/slapd.d -b cn=config" ); # y2milestone("slapcat result: ". Data::Dumper->Dump([$rc])); - SCR->Execute('.ldapserver.initFromLdif', $rc->{'stdout'}); - $rc = SCR->Read('.ldapserver.databases' ); - y2milestone("Databases: ". Data::Dumper->Dump([$rc])); - #$rc = SCR->Read('.ldapserver.global.tlsSettings' ); - #y2milestone("tlsSettings: ". Data::Dumper->Dump([$rc])); +# SCR->Execute('.ldapserver.initFromLdif', $rc->{'stdout'}); +# $rc = SCR->Read('.ldapserver.databases' ); +# y2milestone("Databases: ". Data::Dumper->Dump([$rc])); +# #$rc = SCR->Read('.ldapserver.global.tlsSettings' ); +# #y2milestone("tlsSettings: ". Data::Dumper->Dump([$rc])); } } else @@ -291,7 +303,7 @@ my $self = shift; y2milestone("LdapServer::Write"); my $ret = 1; - if ( ! $usesBackConfig ) + if ( ! $usesBackConfig || ! $slapdConfChanged ) { my $progressItems = [ _("Writing Startup Configuration"), _("Cleaning up config directory"), @@ -408,7 +420,7 @@ Progress->NextStage(); Service->Stop("ldap"); Progress->Finish(); - return 0; + return 1; } if( ! SCR->Execute('.ldapserver.commitChanges' ) ) { @@ -540,6 +552,12 @@ return 1; } +BEGIN { $TYPEINFO {ReadServiceRunning} = ["function", "boolean"]; } +sub ReadServiceRunning { + y2milestone("ReadServiceRunning $serviceRunning"); + return $serviceRunning; +} + BEGIN { $TYPEINFO {ReadSLPEnabled} = ["function", "boolean"]; } sub ReadSLPEnabled { y2milestone("ReadSLPEnabled"); Modified: trunk/ldap-server/src/complex.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/ldap-server/src/complex.ycp?rev=4... ============================================================================== --- trunk/ldap-server/src/complex.ycp (original) +++ trunk/ldap-server/src/complex.ycp Thu Jul 31 17:15:10 2008 @@ -160,16 +160,27 @@ y2milestone("OpenLDAP using backConfig: %1", hasBackconfig); y2milestone("OpenLDAP modifed config: %1", configModified); string configFile = "/etc/openldap/slapd.conf"; - if ( !hasBackconfig && configModified ) + if ( !hasBackconfig ) { - return `migrate; - + if ( configModified ) + { + return `migrate; + } + else + { + // Start new config wizward + LdapServer::InitDbDefaults(); + return `initial; + } } - else if (! configModified ) + else { - // Start new config wizward - LdapServer::InitDbDefaults(); - return `initial; + if (! configModified ) + { + // Start new config wizward + LdapServer::InitDbDefaults(); + return `initial; + } } return `next; Modified: trunk/ldap-server/src/dialogs.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/ldap-server/src/dialogs.ycp?rev=4... ============================================================================== --- trunk/ldap-server/src/dialogs.ycp (original) +++ trunk/ldap-server/src/dialogs.ycp Thu Jul 31 17:15:10 2008 @@ -110,7 +110,7 @@ { //create new item term widget = nil; - if (! LdapServer::ReadServiceEnabled() ) + if ( !LdapServer::ReadServiceEnabled() || !LdapServer::ReadServiceRunning() ) { if ( name != "daemon" ) { Popup::Error( _("The LDAP Server is disabled currently, no configuration changes possible.") ); @@ -408,7 +408,10 @@ //generate tree Wizard::DeleteTreeItems(); deleteDynamicTreeItems(); - generateDynamicTreeItems(); + if ( LdapServer::ReadServiceRunning() ) + { + generateDynamicTreeItems(); + } widget_tree = generateTree(); if( widget_tree == nil ) { Modified: trunk/ldap-server/src/tree_structure.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/ldap-server/src/tree_structure.yc... ============================================================================== --- trunk/ldap-server/src/tree_structure.ycp (original) +++ trunk/ldap-server/src/tree_structure.ycp Thu Jul 31 17:15:10 2008 @@ -1164,7 +1164,6 @@ y2debug( "generating database tree items" ); //generate database entries - y2milestone( "calling databases read handler" ); list<map<string,string> > dblist = LdapServer::GetDatabaseList(); integer i = 0; foreach( map<string,string> db, dblist, { -- 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