HACK selftest s3member admember...
authorStefan Metzmacher <metze@samba.org>
Thu, 24 Feb 2011 10:38:17 +0000 (11:38 +0100)
committerStefan Metzmacher <metze@samba.org>
Sat, 9 Apr 2011 09:36:09 +0000 (11:36 +0200)
selftest/target/Samba3.pm
selftest/target/Samba4.pm
source4/selftest/tests.py

index 9a3be7d72fa6238537d11da65b262c0dbc89eabe..04bd74adda9a89e796aa50addd52171379ea77be 100644 (file)
@@ -195,6 +195,47 @@ sub setup_member($$$)
        return $ret;
 }
 
+sub setup_admember($$$$)
+{
+       my ($self, $prefix, $dcvars, $iface) = @_;
+
+       print "PROVISIONING S3 AD MEMBER$iface...";
+
+       my $member_options = "
+       security = domain
+       server signing = on
+";
+       my $ret = $self->provision($prefix,
+                                  "LOCALADMEMBER$iface",
+                                  $iface,
+                                  "loCalMember${iface}Pass",
+                                  $member_options);
+
+       $ret or die("Unable to provision");
+
+       my $net = $self->binpath("net");
+       my $cmd = "";
+       $cmd .= "SOCKET_WRAPPER_DEFAULT_IFACE=\"$ret->{SOCKET_WRAPPER_DEFAULT_IFACE}\" ";
+       $cmd .= "selftest/gdb_run test $net join $ret->{CONFIGURATION} $dcvars->{DOMAIN} member";
+       $cmd .= " -U$dcvars->{USERNAME}\%$dcvars->{PASSWORD} -d 10 2>&1 | tee s3member-join.txt";
+
+       system($cmd) == 0 or die("Join failed\n$cmd");
+
+       $self->check_or_start($ret,
+                             ($ENV{SMBD_MAXTIME} or 2700),
+                              "yes", "yes", "yes");
+
+       $self->wait_for_start($ret);
+
+       $ret->{DC_SERVER} = $dcvars->{SERVER};
+       $ret->{DC_SERVER_IP} = $dcvars->{SERVER_IP};
+       $ret->{DC_NETBIOSNAME} = $dcvars->{NETBIOSNAME};
+       $ret->{DC_USERNAME} = $dcvars->{USERNAME};
+       $ret->{DC_PASSWORD} = $dcvars->{PASSWORD};
+
+       return $ret;
+}
+
 sub setup_secshare($$)
 {
        my ($self, $path) = @_;
index 07dcf3620654a5153d6b1d562b0d9c9a49a9e752..04abbc158fe1ac32cd65f1fc0992a8aef9e8dd3e 100644 (file)
@@ -11,6 +11,8 @@ use FindBin qw($RealBin);
 use POSIX;
 use SocketWrapper;
 
+use target::Samba3;
+
 sub new($$$$$) {
        my ($classname, $bindir, $ldap, $srcdir, $exeext) = @_;
        $exeext = "" unless defined($exeext);
@@ -19,7 +21,8 @@ sub new($$$$$) {
                ldap => $ldap,
                bindir => $bindir,
                srcdir => $srcdir,
-               exeext => $exeext
+               exeext => $exeext,
+               target3 => new Samba3($bindir,$srcdir),
        };
        bless $self;
        return $self;
@@ -1293,6 +1296,7 @@ sub check_env($$)
 sub setup_env($$$)
 {
        my ($self, $envname, $path) = @_;
+       my $target3 = $self->{target3};
 
        $ENV{ENVNAME} = $envname;
 
@@ -1324,6 +1328,11 @@ sub setup_env($$$)
                        $self->setup_dc("$path/dc");
                }
                return $self->setup_rodc("$path/rodc", $self->{vars}->{dc});
+       } elsif ($envname eq "s3member") {
+               if (not defined($self->{vars}->{dc})) {
+                       $self->setup_dc("$path/dc");
+               }
+               return $target3->setup_admember("$path/s3member", $self->{vars}->{dc}, 9);
        } elsif ($envname eq "all") {
                if (not defined($self->{vars}->{dc})) {
                        $ENV{ENVNAME} = "dc";
@@ -1374,6 +1383,18 @@ sub setup_env($$$)
                        $ret->{FL2008R2DC_USERNAME} = $fl2008r2dc_ret->{USERNAME};
                        $ret->{FL2008R2DC_PASSWORD} = $fl2008r2dc_ret->{PASSWORD};
                }
+               if (not defined($self->{vars}->{s3member})) {
+                       $ENV{ENVNAME} = "s3member";
+                       my $s3member_ret = $target3->setup_admember("$path/s3member", $self->{vars}->{dc}, 9);
+                       $self->{vars}->{s3member} = $s3member_ret;
+
+                       $ret->{S3MEMBER_SERVER} = $s3member_ret->{SERVER};
+                       $ret->{S3MEMBER_SERVER_IP} = $s3member_ret->{SERVER_IP};
+                       $ret->{S3MEMBER_NETBIOSNAME} = $s3member_ret->{NETBIOSNAME};
+                       $ret->{S3MEMBER_NETBIOSALIAS} = $s3member_ret->{NETBIOSALIAS};
+                       $ret->{S3MEMBER_USERNAME} = $s3member_ret->{USERNAME};
+                       $ret->{S3MEMBER_PASSWORD} = $s3member_ret->{PASSWORD};
+               }
                return $ret;
        } else {
                warn("Samba4 can't provide environment '$envname'");
index c4707b08868f46d6cb332eebc62dd56fdb089ac3..f55d452e912da8882ffeaebb92a2d2a4360f89ca 100755 (executable)
@@ -275,6 +275,7 @@ plantestsuite("samba4.blackbox.masktest", "dc", [os.path.join(samba4srcdir, "tor
 plantestsuite("samba4.blackbox.gentest(dc)", "dc", [os.path.join(samba4srcdir, "torture/tests/test_gentest.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$DOMAIN', "$PREFIX"])
 plantestsuite("samba4.blackbox.wbinfo(dc:local)", "dc:local", [os.path.join(samba4srcdir, "../nsswitch/tests/test_wbinfo.sh"), '$DOMAIN', '$USERNAME', '$PASSWORD', "dc"])
 plantestsuite("samba4.blackbox.wbinfo(member:local)", "member:local", [os.path.join(samba4srcdir, "../nsswitch/tests/test_wbinfo.sh"), '$DOMAIN', '$DC_USERNAME', '$DC_PASSWORD', "member"])
+plantestsuite("samba4.blackbox.wbinfo(s3member:local)", "s3member:local", [os.path.join(samba4srcdir, "../nsswitch/tests/test_wbinfo.sh"), '$DOMAIN', '$DC_USERNAME', '$DC_PASSWORD', "s3member"])
 plantestsuite("samba4.blackbox.chgdcpass(dc)", "dc", [os.path.join(bbdir, "test_chgdcpass.sh"), '$SERVER', "LOCALDC\$", '$REALM', '$DOMAIN', '$PREFIX', "aes256-cts-hmac-sha1-96", '$SELFTEST_PREFIX/dc'])
 
 # Tests using the "Simple" NTVFS backend