r21649: Update self test scripts to start Fedora DS. This requires current
authorAndrew Bartlett <abartlet@samba.org>
Fri, 2 Mar 2007 09:16:26 +0000 (09:16 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:49:04 +0000 (14:49 -0500)
Fedora DS CVS, plus changes to split up 00core.ldif.

Now we 'just' need to work to make the tests pass...

Andrew Bartlett
(This used to be commit d214cb1ccf1b30cd5cb81f98382626c609b23fa3)

source4/script/tests/mk-fedora-ds.sh
source4/script/tests/selftest.sh
source4/script/tests/test_functions.sh

index b10d46881c39cb7a35774d180b2d93e725ed04ee..28b9fe29abe83ad4d4d84e6d49dcfa593dccd679 100644 (file)
@@ -1,48 +1,37 @@
 FEDORA_DS_INF=$LDAPDIR/fedorads.inf
 export FEDORA_DS_INF
-FEDORA_DS_INITIAL_LDIF=$LDAPDIR/fedorads-initial-ldif.inf
-FEDORA_DS_LDAP_PORT=3389
+FEDORA_DS_INITIAL_LDIF=$LDAPDIR/fedorads-initial.ldif
 
-LDAP_URI="ldap://127.0.0.1:$FEDORA_DS_LDAP_PORT"
-
-$srcdir/bin/ad2oLschema $CONFIGURATION -H $PRIVATEDIR/sam.ldb --option=convert:target=fedora-ds -I $srcdir/setup/schema-map-fedora-ds-1.0 -O $LDAPDIR/99_ad.ldif >&2
+#Make the subdirectory be as fedora DS would expect
+FEDORA_DS_DIR=$LDAPDIR/slapd-samba4
 
 cat >$FEDORA_DS_INF <<EOF
-
 [General]
 SuiteSpotUserID = $ROOT
 FullMachineName=   localhost
 ServerRoot=   $LDAPDIR
-ConfigDirectoryLdapURL=   $FEDORA_DS_LDAP_URI/o=NetscapeRoot
-ConfigDirectoryAdminID=   $USERNAME
-AdminDomain=   localdomain
-ConfigDirectoryAdminPwd=   $PASSWORD
-
-Components= svrcore,base,slapd
 
 [slapd]
-ServerPort= $FEDORA_DS_LDAP_PORT
+ldapifilepath=$LDAPDIR/ldapi
 Suffix= $BASEDN
 RootDN= cn=Manager,$BASEDN
 RootDNPwd= $PASSWORD
-Components= slapd
 ServerIdentifier= samba4
 InstallLdifFile=$FEDORA_DS_INITIAL_LDIF
 
-inst_dir= $LDAPDIR/slapd-samba4
-config_dir= $LDAPDIR/slapd-samba4
-schema_dir= $LDAPDIR/slapd-samba4/schema
-lock_dir= $LDAPDIR/slapd-samba4/lock
-log_dir= $LDAPDIR/slapd-samba4/logs
-run_dir= $LDAPDIR/slapd-samba4/logs
-db_dir= $LDAPDIR/slapd-samba4/db
-bak_dir= $LDAPDIR/slapd-samba4/bak
-tmp_dir= $LDAPDIR/slapd-samba4/tmp
-ldif_dir= $LDAPDIR/slapd-samba4/ldif
-cert_dir= $LDAPDIR/slapd-samba4
+inst_dir= $FEDORA_DS_DIR
+config_dir= $FEDORA_DS_DIR
+schema_dir= $FEDORA_DS_DIR/schema
+lock_dir= $FEDORA_DS_DIR/lock
+log_dir= $FEDORA_DS_DIR/logs
+run_dir= $FEDORA_DS_DIR/logs
+db_dir= $FEDORA_DS_DIR/db
+bak_dir= $FEDORA_DS_DIR/bak
+tmp_dir= $FEDORA_DS_DIR/tmp
+ldif_dir= $FEDORA_DS_DIR/ldif
+cert_dir= $FEDORA_DS_DIR
 
-[base]
-Components= base
+start_server= 0
 
 EOF
 
@@ -55,16 +44,25 @@ objectclass: top
 objectclass: extensibleObject
 objectclass: nsMappingTree
 nsslapd-state: backend
-nsslapd-backend: UserData
+nsslapd-backend: userData
 cn: $BASEDN
 
-dn: cn=UserData,cn=ldbm database,cn=plugins,cn=config
+dn: cn=userData,cn=ldbm database,cn=plugins,cn=config
 objectclass: extensibleObject
 objectclass: nsBackendInstance
 nsslapd-suffix: $BASEDN
 
 EOF
 
+perl $FEDORA_DS_PREFIX/bin/ds_newinst.pl $FEDORA_DS_INF || exit 1;
+
+( 
+     cd $FEDORA_DS_DIR/schema
+     ls | grep -v ^00core | xargs rm
+)
+
+$srcdir/bin/ad2oLschema $CONFIGURATION -H $PRIVATEDIR/sam.ldb --option=convert:target=fedora-ds -I $srcdir/setup/schema-map-fedora-ds-1.0 -O $FEDORA_DS_DIR/schema/99_ad.ldif >&2
+
 LDAP_URI_ESCAPE=$LDAP_URI;
 PROVISION_OPTIONS="$PROVISION_OPTIONS --ldap-module=nsuniqueid"
 #it is easier to base64 encode this than correctly escape it:
index 92fba70c4a5d83f861006615df95dbedb8d6e5d5..7af5891abb927884f4ecd6b985d5dadd5deeff60 100755 (executable)
@@ -75,7 +75,7 @@ if [ x"$TEST_LDAP" = x"yes" ]; then
     if test -z "$FEDORA_DS_PREFIX"; then
        slapd_start || exit 1;
     else
-       perl $FEDORA_DS_PREFIX/lib/fedora-ds/ds_newinst.pl $FEDORA_DS_INF || exit 1;
+       fedora_ds_start || exit 1;
     fi
     echo -n "LDAP PROVISIONING..."
     $srcdir/bin/smbscript $srcdir/setup/provision $PROVISION_OPTIONS "$PROVISION_ACI" --ldap-backend=$LDAP_URI || {
index 9b869782cd5421942f2abb1da52562d2b806ee6b..7f363fd04a8e671c294d27c3f2cfe47e3e6f0e1d 100755 (executable)
@@ -77,6 +77,13 @@ slapd_start() {
     return $?;
 }
 
+fedora_ds_start() {
+# running slapd in the background means it stays in the same process group, so it can be
+# killed by timelimit
+    $FEDORA_DS_PREFIX/sbin/ns-slapd -D $FEDORA_DS_DIR -d0 &
+    return $?;
+}
+
 testit() {
        name=$1
        shift 1