mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
r23191: Use the new provision-backend script to setup Fedora DS for make test.
OpenLDAP to follow once I get things working... Andrew Bartlett
This commit is contained in:
parent
0f457b1d2e
commit
2cde9eb860
@ -39,7 +39,7 @@ sub slapd_start($$)
|
||||
|
||||
# running slapd in the background means it stays in the same process group, so it can be
|
||||
# killed by timelimit
|
||||
if ($self->{ldap} eq "fedora") {
|
||||
if ($self->{ldap} eq "fedora-ds") {
|
||||
system("$ENV{FEDORA_DS_PREFIX}/sbin/ns-slapd -D $env_vars->{FEDORA_DS_DIR} -d0 -i $env_vars->{FEDORA_DS_PIDFILE}> $env_vars->{LDAPDIR}/logs 2>&1 &");
|
||||
} elsif ($self->{ldap} eq "openldap") {
|
||||
openldap_start($env_vars->{SLAPD_CONF}, $uri, "$env_vars->{LDAPDIR}/logs");
|
||||
@ -58,7 +58,7 @@ sub slapd_start($$)
|
||||
sub slapd_stop($$)
|
||||
{
|
||||
my ($self, $envvars) = @_;
|
||||
if ($self->{ldap} eq "fedora") {
|
||||
if ($self->{ldap} eq "fedora-ds") {
|
||||
system("$envvars->{LDAPDIR}/slapd-samba4/stop-slapd");
|
||||
} elsif ($self->{ldap} eq "openldap") {
|
||||
open(IN, "<$envvars->{OPENLDAP_PIDFILE}") or
|
||||
@ -177,54 +177,18 @@ type: 0x3
|
||||
");
|
||||
}
|
||||
|
||||
sub mk_fedora($$$$$$)
|
||||
sub mk_fedora_ds($$$)
|
||||
{
|
||||
my ($self, $ldapdir, $basedn, $root, $password, $privatedir, $configuration) = @_;
|
||||
|
||||
mkdir($ldapdir, 0777);
|
||||
my ($self, $ldapdir, $configuration) = @_;
|
||||
|
||||
my $fedora_ds_inf = "$ldapdir/fedorads.inf";
|
||||
my $fedora_ds_initial_ldif = "$ldapdir/fedorads-initial.ldif";
|
||||
my $fedora_ds_extra_ldif = "$ldapdir/fedorads-partitions.ldif";
|
||||
|
||||
#Make the subdirectory be as fedora DS would expect
|
||||
my $fedora_ds_dir = "$ldapdir/slapd-samba4";
|
||||
|
||||
my $pidfile = "$fedora_ds_dir/logs/slapd-samba4.pid";
|
||||
|
||||
open(CONF, ">$fedora_ds_inf");
|
||||
print CONF "
|
||||
[General]
|
||||
SuiteSpotUserID = $root
|
||||
FullMachineName= localhost
|
||||
ServerRoot= $ldapdir
|
||||
|
||||
[slapd]
|
||||
ldapifilepath=$ldapdir/ldapi
|
||||
Suffix= $basedn
|
||||
RootDN= cn=Manager,$basedn
|
||||
RootDNPwd= $password
|
||||
ServerIdentifier= samba4
|
||||
#InstallLdifFile=$fedora_ds_initial_ldif
|
||||
|
||||
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
|
||||
|
||||
start_server= 0
|
||||
install_full_schema= 0
|
||||
";
|
||||
close(CONF);
|
||||
|
||||
open(LDIF, ">$fedora_ds_initial_ldif");
|
||||
|
||||
my $dir = getcwd();
|
||||
chdir "$ENV{FEDORA_DS_PREFIX}/bin" || die;
|
||||
if (system("perl $ENV{FEDORA_DS_PREFIX}/bin/ds_newinst.pl $fedora_ds_inf >&2") != 0) {
|
||||
@ -233,39 +197,9 @@ chdir "$ENV{FEDORA_DS_PREFIX}/bin" || die;
|
||||
}
|
||||
chdir $dir || die;
|
||||
|
||||
open(LDIF, ">>$fedora_ds_dir/dse.ldif");
|
||||
print LDIF "dn: cn=\"cn=Configuration,$basedn\",cn=mapping tree,cn=config
|
||||
objectclass: top
|
||||
objectclass: extensibleObject
|
||||
objectclass: nsMappingTree
|
||||
nsslapd-state: backend
|
||||
nsslapd-backend: configData
|
||||
cn: cn=Configuration,$basedn
|
||||
system("cat $fedora_ds_extra_ldif >> $fedora_ds_dir/dse.ldif");
|
||||
|
||||
dn: cn=configData,cn=ldbm database,cn=plugins,cn=config
|
||||
objectclass: extensibleObject
|
||||
objectclass: nsBackendInstance
|
||||
nsslapd-suffix: cn=Configuration,$basedn
|
||||
cn: configData
|
||||
|
||||
dn: cn=\"cn=Schema,cn=Configuration,$basedn\",cn=mapping tree,cn=config
|
||||
objectclass: top
|
||||
objectclass: extensibleObject
|
||||
objectclass: nsMappingTree
|
||||
nsslapd-state: backend
|
||||
nsslapd-backend: schemaData
|
||||
cn: cn=Schema,cn=Configuration,$basedn
|
||||
|
||||
dn: cn=schemaData,cn=ldbm database,cn=plugins,cn=config
|
||||
objectclass: extensibleObject
|
||||
objectclass: nsBackendInstance
|
||||
nsslapd-suffix: cn=Schema,cn=Configuration,$basedn
|
||||
cn: schemaData
|
||||
|
||||
";
|
||||
close(LDIF);
|
||||
|
||||
system("$self->{bindir}/ad2oLschema $configuration -H $privatedir/sam.ldb --option=convert:target=fedora-ds -I $self->{setupdir}/schema-map-fedora-ds-1.0 -O $fedora_ds_dir/schema/99_ad.ldif >&2") == 0 or die("schema conversion for Fedora DS failed");
|
||||
system("$self->{bindir}/ad2oLschema $configuration -H $ldapdir/schema-tmp.ldb --option=convert:target=fedora-ds -I $self->{setupdir}/schema-map-fedora-ds-1.0 -O $fedora_ds_dir/schema/99_ad.ldif >&2") == 0 or die("schema conversion for Fedora DS failed");
|
||||
|
||||
return ($fedora_ds_dir, $pidfile);
|
||||
}
|
||||
@ -425,8 +359,6 @@ moduleload syncprov
|
||||
system("slapadd -b cn=Configuration,$basedn -f $slapd_conf -l $ldapdir/$dnsname-config.ldif >/dev/null") == 0 or die("slapadd failed");
|
||||
system("slapadd -b cn=Schema,cn=Configuration,$basedn -f $slapd_conf -l $ldapdir/$dnsname-schema.ldif >/dev/null") == 0 or die("slapadd failed");
|
||||
|
||||
system("slaptest -u -f $slapd_conf >/dev/null") == 0 or
|
||||
die ("slaptest after database load failed");
|
||||
|
||||
$ENV{PATH} = $oldpath;
|
||||
|
||||
@ -626,10 +558,11 @@ sub provision($$$$$$)
|
||||
|
||||
if (defined($self->{ldap})) {
|
||||
|
||||
system("$self->{bindir}/smbscript $self->{setupdir}/provision-backend $configuration --ldap-manager-pass=$password --root=$root --realm=$dnsname --host-name=$netbiosname --ldap-backend-type=$self->{ldap}>&2") == 0 or die("backend provision failed");
|
||||
if ($self->{ldap} eq "openldap") {
|
||||
($ret->{SLAPD_CONF}, $ret->{OPENLDAP_PIDFILE}) = $self->mk_openldap($ldapdir, $basedn, $password, $privatedir, $dnsname, $configuration, join(' ', @provision_options)) or die("Unable to create openldap directories");
|
||||
} elsif ($self->{ldap} eq "fedora") {
|
||||
($ret->{FEDORA_DS_DIR}, $ret->{FEDORA_DS_PIDFILE}) = $self->mk_fedora($ldapdir, $basedn, $root, $password, $privatedir, $configuration) or die("Unable to create fedora ds directories");
|
||||
} elsif ($self->{ldap} eq "fedora-ds") {
|
||||
($ret->{FEDORA_DS_DIR}, $ret->{FEDORA_DS_PIDFILE}) = $self->mk_fedora_ds($ldapdir, $configuration) or die("Unable to create fedora ds directories");
|
||||
push (@provision_options, "--ldap-module=nsuniqueid");
|
||||
}
|
||||
|
||||
@ -711,7 +644,7 @@ sub provision_ldap($$)
|
||||
my ($self, $envvars) = @_;
|
||||
my $provision_aci = "";
|
||||
|
||||
if ($self->{ldap} eq "fedora") {
|
||||
if ($self->{ldap} eq "fedora-ds") {
|
||||
#it is easier to base64 encode this than correctly escape it:
|
||||
# (targetattr = "*") (version 3.0;acl "full access to all by all";allow (all)(userdn = "ldap:///anyone");)
|
||||
$provision_aci = "--aci=aci:: KHRhcmdldGF0dHIgPSAiKiIpICh2ZXJzaW9uIDMuMDthY2wgImZ1bGwgYWNjZXNzIHRvIGFsbCBieSBhbGwiO2FsbG93IChhbGwpKHVzZXJkbiA9ICJsZGFwOi8vL2FueW9uZSIpOykK";
|
||||
|
@ -422,7 +422,7 @@ Target Specific:
|
||||
--expected-failures=FILE specify list of tests that is guaranteed to fail
|
||||
|
||||
Samba4 Specific:
|
||||
--ldap=openldap|fedora back smbd onto specified ldap server
|
||||
--ldap=openldap|fedora-ds back smbd onto specified ldap server
|
||||
|
||||
Samba3 Specific:
|
||||
--bindir=PATH path to binaries
|
||||
@ -477,7 +477,7 @@ my $old_pwd = "$RealBin/..";
|
||||
# Backwards compatibility:
|
||||
if (defined($ENV{TEST_LDAP}) and $ENV{TEST_LDAP} eq "yes") {
|
||||
if (defined($ENV{FEDORA_DS_PREFIX})) {
|
||||
$ldap = "fedora";
|
||||
$ldap = "fedora-ds";
|
||||
} else {
|
||||
$ldap = "openldap";
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user