[SCM] Samba Shared Repository - branch master updated

Michael Adam obnox at samba.org
Thu Oct 23 10:20:02 MDT 2014


The branch, master has been updated
       via  4bec186 samba-tool group add: Add option --nis-domain and --gid
       via  4ab6df6 samba-tool: Add exception when trying to add/remove none existent users from a group.
       via  1c7b81e selftest: Fix test samba4.blackbox.group.py
       via  5340be1 subunit: report [X/Y at Zs] instead of [X/Y in Zs]
      from  88f9f50 Add missing parameters to drs_Replicate in rodc.py

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 4bec1867987845fc40e9a17a283d2affc36e0dc5
Author: Marc Muehlfeld <mmuehlfeld at samba.org>
Date:   Sat Oct 18 00:34:35 2014 +0200

    samba-tool group add: Add option --nis-domain and --gid
    
    This allows creating RFC2307 enabled groups via samba-tool
    
    Signed-off-by: Marc Muehlfeld <mmuehlfeld at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>
    
    Autobuild-User(master): Michael Adam <obnox at samba.org>
    Autobuild-Date(master): Thu Oct 23 18:19:35 CEST 2014 on sn-devel-104

commit 4ab6df622c81363b8acb31113016ecfbbe1ec5c4
Author: Marc Muehlfeld <mmuehlfeld at samba.org>
Date:   Sun Oct 12 16:32:08 2014 +0200

    samba-tool: Add exception when trying to add/remove none existent users from a group.
    
    This allows a better scripting around samba-tool for adding/removing users
    to/from groups. Before the output and the return code had indicated that
    everything was successul.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=10871
    
    Signed-off-by: Marc Muehlfeld <mmuehlfeld at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 1c7b81e76824ce78ecc5d700b76b8a68b1beb1bd
Author: Marc Muehlfeld <mmuehlfeld at samba.org>
Date:   Sat Oct 18 02:17:22 2014 +0200

    selftest: Fix test samba4.blackbox.group.py
    
    The test created two users and in later steps it tried adding two
    non-existend users to groups. This fix adds now the two created
    accounts to the groups instead.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=10871
    
    Signed-off-by: Marc Muehlfeld <mmuehlfeld at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 5340be1740fa753f9e1471b025c9f29ed2ba2234
Author: Michael Adam <obnox at samba.org>
Date:   Fri Oct 17 11:17:53 2014 +0200

    subunit: report [X/Y at Zs] instead of [X/Y in Zs]
    
    when running test X out of Y after Z secons have passed
    
    Signed-off-by: Michael Adam <obnox at samba.org>
    Reviewed-by: Matthieu Patou <mat at matws.net>

-----------------------------------------------------------------------

Summary of changes:
 python/samba/netcmd/group.py          |   15 +++++++++++++--
 python/samba/samdb.py                 |   15 +++++++++++++--
 selftest/subunithelper.py             |    2 +-
 source4/setup/tests/blackbox_group.sh |   24 ++++++++++++------------
 4 files changed, 39 insertions(+), 17 deletions(-)


Changeset truncated at 500 lines:

diff --git a/python/samba/netcmd/group.py b/python/samba/netcmd/group.py
index 1a24e5f..4b5fd27 100644
--- a/python/samba/netcmd/group.py
+++ b/python/samba/netcmd/group.py
@@ -70,6 +70,11 @@ Example2:
 sudo samba-tool group add Group2 --group-type=Distribution
 
 Example2 adds a new distribution group to the local server.  The command is run under root using the sudo command.
+
+Example3:
+samba-tool group add Group3 --nis-domain=samdom --gid=12345
+
+Example3 adds a new RFC2307 enabled group for NIS domain samdom and GID 12345 (both options are required to enable this feature).
 """
 
     synopsis = "%prog <groupname> [options]"
@@ -93,19 +98,24 @@ Example2 adds a new distribution group to the local server.  The command is run
         Option("--description", help="Group's description", type=str),
         Option("--mail-address", help="Group's email address", type=str),
         Option("--notes", help="Groups's notes", type=str),
+        Option("--gid-number", help="Group's Unix/RFC2307 GID number", type=int),
+        Option("--nis-domain", help="SFU30 NIS Domain", type=str),
     ]
 
     takes_args = ["groupname"]
 
     def run(self, groupname, credopts=None, sambaopts=None,
             versionopts=None, H=None, groupou=None, group_scope=None,
-            group_type=None, description=None, mail_address=None, notes=None):
+            group_type=None, description=None, mail_address=None, notes=None, gid_number=None, nis_domain=None):
 
         if (group_type or "Security") == "Security":
             gtype = security_group.get(group_scope, GTYPE_SECURITY_GLOBAL_GROUP)
         else:
             gtype = distribution_group.get(group_scope, GTYPE_DISTRIBUTION_GLOBAL_GROUP)
 
+        if (gid_number is None and nis_domain is not None) or (gid_number is not None and nis_domain is None):
+            raise CommandError('Both --gid-number and --nis-domain have to be set for a RFC2307-enabled group. Operation cancelled.')
+
         lp = sambaopts.get_loadparm()
         creds = credopts.get_credentials(lp, fallback_machine=True)
 
@@ -113,7 +123,8 @@ Example2 adds a new distribution group to the local server.  The command is run
             samdb = SamDB(url=H, session_info=system_session(),
                           credentials=creds, lp=lp)
             samdb.newgroup(groupname, groupou=groupou, grouptype = gtype,
-                          description=description, mailaddress=mail_address, notes=notes)
+                          description=description, mailaddress=mail_address, notes=notes,
+                          gidnumber=gid_number, nisdomain=nis_domain)
         except Exception, e:
             # FIXME: catch more specific exception
             raise CommandError('Failed to create group "%s"' % groupname, e)
diff --git a/python/samba/samdb.py b/python/samba/samdb.py
index 2dfc839..0ea52fb 100644
--- a/python/samba/samdb.py
+++ b/python/samba/samdb.py
@@ -169,7 +169,8 @@ pwdLastSet: 0
         self.modify_ldif(mod)
 
     def newgroup(self, groupname, groupou=None, grouptype=None,
-                 description=None, mailaddress=None, notes=None, sd=None):
+                 description=None, mailaddress=None, notes=None, sd=None,
+                 gidnumber=None, nisdomain=None):
         """Adds a new group with additional parameters
 
         :param groupname: Name of the new group
@@ -177,6 +178,8 @@ pwdLastSet: 0
         :param description: Description of the new group
         :param mailaddress: Email address of the new group
         :param notes: Notes of the new group
+        :param gidnumber: GID Number of the new group
+        :param nisdomain: NIS Domain Name of the new group
         :param sd: security descriptor of the object
         """
 
@@ -188,6 +191,8 @@ pwdLastSet: 0
             "sAMAccountName": groupname,
             "objectClass": "group"}
 
+        ldbmessage["msSFU30Name"] = groupname
+
         if grouptype is not None:
             ldbmessage["groupType"] = normalise_int32(grouptype)
 
@@ -200,6 +205,12 @@ pwdLastSet: 0
         if notes is not None:
             ldbmessage["info"] = notes
 
+        if gidnumber is not None:
+            ldbmessage["gidNumber"] = normalise_int32(gidnumber)
+
+        if nisdomain is not None:
+            ldbmessage["msSFU30NisDomain"] = nisdomain
+
         if sd is not None:
             ldbmessage["nTSecurityDescriptor"] = ndr_pack(sd)
 
@@ -260,7 +271,7 @@ changetype: modify
                     ldb.binary_encode(member), ldb.binary_encode(member)), attrs=[])
 
                 if len(targetmember) != 1:
-                    continue
+                    raise Exception('Unable to find "%s". Operation cancelled.' % member)
 
                 if add_members_operation is True and (targetgroup[0].get('member') is None or str(targetmember[0].dn) not in targetgroup[0]['member']):
                     modified = True
diff --git a/selftest/subunithelper.py b/selftest/subunithelper.py
index 6f1fdce..dcea5a8 100644
--- a/selftest/subunithelper.py
+++ b/selftest/subunithelper.py
@@ -489,7 +489,7 @@ class PlainFormatter(TestsuiteEnabledTestResult):
         if self.totalsuites is not None:
             out += "/%d" % self.totalsuites
         if self.start_time is not None:
-            out += " in " + self._format_time(self.last_time - self.start_time)
+            out += " at " + self._format_time(self.last_time - self.start_time)
         if self.suitesfailed:
             out += ", %d errors" % (len(self.suitesfailed),)
         out += "] %s" % name
diff --git a/source4/setup/tests/blackbox_group.sh b/source4/setup/tests/blackbox_group.sh
index f5569c3..ee344cf 100755
--- a/source4/setup/tests/blackbox_group.sh
+++ b/source4/setup/tests/blackbox_group.sh
@@ -32,20 +32,20 @@ testit "group add" $samba_tool group add $CONFIG --group-scope='Global' --group-
 testit "group add" $samba_tool group add $CONFIG --group-scope='Universal' --group-type='Distribution' --description='UniversalDistributionGroup' --mail-address='udg at samba.org' --notes='Notes' udg
 
 #test adding test users to all groups by their username
-testit "group addmembers" $samba_tool group addmembers $CONFIG dsg newuser,newuser1
-testit "group addmembers" $samba_tool group addmembers $CONFIG gsg newuser,newuser1
-testit "group addmembers" $samba_tool group addmembers $CONFIG usg newuser,newuser1
-testit "group addmembers" $samba_tool group addmembers $CONFIG ddg newuser,newuser1
-testit "group addmembers" $samba_tool group addmembers $CONFIG gdg newuser,newuser1
-testit "group addmembers" $samba_tool group addmembers $CONFIG udg newuser,newuser1
+testit "group addmembers" $samba_tool group addmembers $CONFIG dsg testuser,testuser1
+testit "group addmembers" $samba_tool group addmembers $CONFIG gsg testuser,testuser1
+testit "group addmembers" $samba_tool group addmembers $CONFIG usg testuser,testuser1
+testit "group addmembers" $samba_tool group addmembers $CONFIG ddg testuser,testuser1
+testit "group addmembers" $samba_tool group addmembers $CONFIG gdg testuser,testuser1
+testit "group addmembers" $samba_tool group addmembers $CONFIG udg testuser,testuser1
 
 #test removing test users from all groups by their username
-testit "group removemembers" $samba_tool group removemembers $CONFIG dsg newuser,newuser1
-testit "group removemembers" $samba_tool group removemembers $CONFIG gsg newuser,newuser1
-testit "group removemembers" $samba_tool group removemembers $CONFIG usg newuser,newuser1
-testit "group removemembers" $samba_tool group removemembers $CONFIG ddg newuser,newuser1
-testit "group removemembers" $samba_tool group removemembers $CONFIG gdg newuser,newuser1
-testit "group removemembers" $samba_tool group removemembers $CONFIG udg newuser,newuser1
+testit "group removemembers" $samba_tool group removemembers $CONFIG dsg testuser,testuser1
+testit "group removemembers" $samba_tool group removemembers $CONFIG gsg testuser,testuser1
+testit "group removemembers" $samba_tool group removemembers $CONFIG usg testuser,testuser1
+testit "group removemembers" $samba_tool group removemembers $CONFIG ddg testuser,testuser1
+testit "group removemembers" $samba_tool group removemembers $CONFIG gdg testuser,testuser1
+testit "group removemembers" $samba_tool group removemembers $CONFIG udg testuser,testuser1
 
 #test adding test users to all groups by their cn
 #testit "group addmembers" $samba_tool group addmembers $CONFIG dsg "User UT. Tester,User1 UT. Tester"


-- 
Samba Shared Repository


More information about the samba-cvs mailing list