Author: rhafer Date: Fri Dec 4 16:13:32 2009 New Revision: 59964 URL: http://svn.opensuse.org/viewcvs/yast?rev=59964&view=rev Log: Add useful indexes for replication (bnc#560754) Modified: branches/SuSE-Code-11-SP1-Branch/ldap-server/src/LdapServer.pm Modified: branches/SuSE-Code-11-SP1-Branch/ldap-server/src/LdapServer.pm URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ldap-server/src/LdapServer.pm?rev=59964&r1=59963&r2=59964&view=diff ============================================================================== --- branches/SuSE-Code-11-SP1-Branch/ldap-server/src/LdapServer.pm (original) +++ branches/SuSE-Code-11-SP1-Branch/ldap-server/src/LdapServer.pm Fri Dec 4 16:13:32 2009 @@ -1762,6 +1762,10 @@ $self->UpdateDatabase(0 ,$changes); if ( $self->ReadSetupMaster() ) { + # create helpful indexes for syncrepl + $self->ChangeDatabaseIndex(1, { "name" => "entryUUID", "eq" => 1 } ); + $self->ChangeDatabaseIndex(1, { "name" => "entryCSN", "eq" => 1 } ); + my $syncprov = { 'enabled' => 1, 'checkpoint' => { 'ops' => YaST::YCP::Integer(100), 'min' => YaST::YCP::Integer(10) } @@ -2111,6 +2115,25 @@ $self->SetError( $err->{'summary'}, $err->{'description'} ); return YaST::YCP::Boolean(0); } + + ## Update indexes if the database supports it and if not deleting syncrepl + if ( keys %$syncprov ) + { + my $db = $self->ReadDatabase( $dbindex ); + if ( $db->{'type'} eq "bdb" || $db->{'type'} eq "hdb" ) + { + my $indexes = SCR->Read(".ldapserver.database.{".$dbindex."}.indexes" ); + y2milestone("indexes: ". Data::Dumper->Dump([$indexes])); + if ( ! $indexes->{'entrycsn'}->{'eq'} ) + { + $self->ChangeDatabaseIndex($dbindex, { "name" => "entryCSN", "eq" => 1 } ); + } + if ( ! $indexes->{'entryUUID'}->{'eq'} ) + { + $self->ChangeDatabaseIndex($dbindex, { "name" => "entryUUID", "eq" => 1 } ); + } + } + } return YaST::YCP::Boolean(1); } @@ -2194,6 +2217,25 @@ $self->SetError( $err->{'summary'}, $err->{'description'} ); return YaST::YCP::Boolean(0); } + + ## Update indexes if the database supports it and if not deleting syncrepl + if ( keys %$syncrepl ) + { + my $db = $self->ReadDatabase( $dbindex ); + if ( $db->{'type'} eq "bdb" || $db->{'type'} eq "hdb" ) + { + my $indexes = SCR->Read(".ldapserver.database.{".$dbindex."}.indexes" ); + y2milestone("indexes: ". Data::Dumper->Dump([$indexes])); + if ( ! $indexes->{'entrycsn'}->{'eq'} ) + { + $self->ChangeDatabaseIndex($dbindex, { "name" => "entryCSN", "eq" => 1 } ); + } + if ( ! $indexes->{'entryUUID'}->{'eq'} ) + { + $self->ChangeDatabaseIndex($dbindex, { "name" => "entryUUID", "eq" => 1 } ); + } + } + } return YaST::YCP::Boolean(1); } -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org