libds:common Remove DS_DC_* domain functionality flags
authorAndrew Bartlett <abartlet@samba.org>
Mon, 21 Jun 2010 10:19:02 +0000 (20:19 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 23 Jun 2010 10:10:03 +0000 (20:10 +1000)
These are just a subset of the DS_DOMAIN_ functionality flags, are compared and often confused with each other.  Just make them one set.

Andrew Bartlett

libds/common/flags.h
source4/dsdb/pydsdb.c
source4/lib/ldb/tests/python/ldap_schema.py
source4/libnet/libnet_become_dc.c
source4/scripting/python/samba/netcmd/domainlevel.py
source4/scripting/python/samba/provision.py

index 396df7c1a9828cfd350e124ed4cf7c8de59188ec..be1e83917d38173d470b122b22aeb974c97b2f8d 100644 (file)
 #define SEARCH_FLAG_NEVERVALUEAUDIT    0x0000100
 #define SEARCH_FLAG_RODC_ATTRIBUTE     0x0000200
 
-/* "domainFunctionality", "forestFunctionality" in the rootDSE */
+/* "domainFunctionality", "forestFunctionality" and "domainControllerFunctionality" in the rootDSE */
 #define DS_DOMAIN_FUNCTION_2000                0
-#define DS_DOMAIN_FUNCTION_2003_MIXED  1
+#define DS_DOMAIN_FUNCTION_2003_MIXED  1 /* Not a valid/meaningfulxs
+                                          * domainControllerFunctionality
+                                          * Level */
 #define DS_DOMAIN_FUNCTION_2003                2
 #define DS_DOMAIN_FUNCTION_2008                3
 #define DS_DOMAIN_FUNCTION_2008_R2     4 
 
-/* "domainControllerFunctionality" in the rootDSE */
-#define DS_DC_FUNCTION_2000            0
-#define DS_DC_FUNCTION_2003            2
-#define DS_DC_FUNCTION_2008            3
-#define DS_DC_FUNCTION_2008_R2         4
-
 /* sa->systemFlags on attributes */
 #define DS_FLAG_ATTR_NOT_REPLICATED    0x00000001
 #define DS_FLAG_ATTR_REQ_PARTIAL_SET_MEMBER 0x00000002
index bddda8d092c67e5741b27b3c6e9d960772606600..4060b327af3b8503927fc8bc74b200fd1774a007 100644 (file)
@@ -578,14 +578,4 @@ void initdsdb(void)
                                           PyInt_FromLong(DS_DOMAIN_FUNCTION_2008));
        PyModule_AddObject(m, "DS_DOMAIN_FUNCTION_2008_R2",
                                           PyInt_FromLong(DS_DOMAIN_FUNCTION_2008_R2));
-
-       /* "domainControllerFunctionality" flags in the rootDSE */
-       PyModule_AddObject(m, "DS_DC_FUNCTION_2000",
-                                          PyInt_FromLong(DS_DC_FUNCTION_2000));
-       PyModule_AddObject(m, "DS_DC_FUNCTION_2003",
-                                          PyInt_FromLong(DS_DC_FUNCTION_2003));
-       PyModule_AddObject(m, "DS_DC_FUNCTION_2008",
-                                          PyInt_FromLong(DS_DC_FUNCTION_2008));
-       PyModule_AddObject(m, "DS_DC_FUNCTION_2008_R2",
-                                          PyInt_FromLong(DS_DC_FUNCTION_2008_R2));
 }
index 8e6865a4d248ac7ff00260301d1379b5a2b0edfb..8d1f0d00f45e5927075625dc8c9132814dd58d56 100755 (executable)
@@ -20,7 +20,7 @@ from ldb import ERR_CONSTRAINT_VIOLATION
 from ldb import Message, MessageElement, Dn
 from ldb import FLAG_MOD_REPLACE
 from samba import Ldb
-from samba.dsdb import DS_DC_FUNCTION_2003
+from samba.dsdb import DS_DOMAIN_FUNCTION_2003
 
 from subunit.run import SubunitTestRunner
 import unittest
@@ -278,7 +278,7 @@ systemOnly: FALSE
 
         # 1. Create attribute without systemFlags
         # msDS-IntId should be created if forest functional
-        # level is >= DS_DC_FUNCTION_2003
+        # level is >= DS_DOMAIN_FUNCTION_2003
         # and missing otherwise
         (attr_name, attr_ldap_name, attr_dn) = self._make_obj_names("msDS-IntId-Attr-1-")
         ldif = self._make_attr_ldif(attr_name, attr_dn)
@@ -300,7 +300,7 @@ systemOnly: FALSE
         res = self.ldb.search(attr_dn, scope=SCOPE_BASE, attrs=["*"])
         self.assertEquals(len(res), 1)
         self.assertEquals(res[0]["lDAPDisplayName"][0], attr_ldap_name)
-        if self.forest_level >= DS_DC_FUNCTION_2003:
+        if self.forest_level >= DS_DOMAIN_FUNCTION_2003:
             if self._is_schema_base_object(res[0]):
                 self.assertTrue("msDS-IntId" not in res[0])
             else:
@@ -319,7 +319,7 @@ systemOnly: FALSE
 
         # 2. Create attribute with systemFlags = FLAG_SCHEMA_BASE_OBJECT
         # msDS-IntId should be created if forest functional
-        # level is >= DS_DC_FUNCTION_2003
+        # level is >= DS_DOMAIN_FUNCTION_2003
         # and missing otherwise
         (attr_name, attr_ldap_name, attr_dn) = self._make_obj_names("msDS-IntId-Attr-2-")
         ldif = self._make_attr_ldif(attr_name, attr_dn)
@@ -342,7 +342,7 @@ systemOnly: FALSE
         res = self.ldb.search(attr_dn, scope=SCOPE_BASE, attrs=["*"])
         self.assertEquals(len(res), 1)
         self.assertEquals(res[0]["lDAPDisplayName"][0], attr_ldap_name)
-        if self.forest_level >= DS_DC_FUNCTION_2003:
+        if self.forest_level >= DS_DOMAIN_FUNCTION_2003:
             if self._is_schema_base_object(res[0]):
                 self.assertTrue("msDS-IntId" not in res[0])
             else:
@@ -384,7 +384,7 @@ systemOnly: FALSE
 
         # 1. Create Class without systemFlags
         # msDS-IntId should be created if forest functional
-        # level is >= DS_DC_FUNCTION_2003
+        # level is >= DS_DOMAIN_FUNCTION_2003
         # and missing otherwise
         (class_name, class_ldap_name, class_dn) = self._make_obj_names("msDS-IntId-Class-1-")
         ldif = self._make_class_ldif(class_dn, class_name)
@@ -421,7 +421,7 @@ systemOnly: FALSE
 
         # 2. Create Class with systemFlags = FLAG_SCHEMA_BASE_OBJECT
         # msDS-IntId should be created if forest functional
-        # level is >= DS_DC_FUNCTION_2003
+        # level is >= DS_DOMAIN_FUNCTION_2003
         # and missing otherwise
         (class_name, class_ldap_name, class_dn) = self._make_obj_names("msDS-IntId-Class-3-")
         ldif = self._make_class_ldif(class_dn, class_name)
@@ -469,7 +469,7 @@ systemOnly: FALSE
                               attrs=["systemFlags", "msDS-IntId", "attributeID", "cn"])
         self.assertTrue(len(res) > 1)
         for ldb_msg in res:
-            if self.forest_level >= DS_DC_FUNCTION_2003:
+            if self.forest_level >= DS_DOMAIN_FUNCTION_2003:
                 if self._is_schema_base_object(ldb_msg):
                     self.assertTrue("msDS-IntId" not in ldb_msg)
                 else:
index d64e415f8cc22a30bd688d3b9aed267e8483b6ba..25a216524e4ab3368c3f2aef21cddbace810e69c 100644 (file)
@@ -741,7 +741,7 @@ static int32_t get_dc_function_level(struct loadparm_context *lp_ctx)
 {
        /* per default we are (Windows) 2008 compatible */
        return lp_parm_int(lp_ctx, NULL, "ads", "dc function level",
-               DS_DC_FUNCTION_2008);
+               DS_DOMAIN_FUNCTION_2008);
 }
 
 static void becomeDC_recv_cldap(struct tevent_req *req);
index 4278ae5e4aa1a8af54770fcc19d324d77e096336..69e0afb6007eda5ca1cd33ce70428ba539b886b2 100644 (file)
@@ -40,10 +40,6 @@ from samba.dsdb import (
     DS_DOMAIN_FUNCTION_2003_MIXED,
     DS_DOMAIN_FUNCTION_2008,
     DS_DOMAIN_FUNCTION_2008_R2,
-    DS_DC_FUNCTION_2000,
-    DS_DC_FUNCTION_2003,
-    DS_DC_FUNCTION_2008,
-    DS_DC_FUNCTION_2008_R2,
     )
 
 class cmd_domainlevel(Command):
@@ -119,7 +115,7 @@ class cmd_domainlevel(Command):
                 self.message("\nATTENTION: You run SAMBA 4 on a forest function level lower than Windows 2003 (Native). This isn't supported! Please raise!")
             if level_domain < DS_DOMAIN_FUNCTION_2003:
                 self.message("\nATTENTION: You run SAMBA 4 on a domain function level lower than Windows 2003 (Native). This isn't supported! Please raise!")
-            if min_level_dc < DS_DC_FUNCTION_2003:
+            if min_level_dc < DS_DOMAIN_FUNCTION_2003:
                 self.message("\nATTENTION: You run SAMBA 4 on a lowest function level of a DC lower than Windows 2003. This isn't supported! Please step-up or upgrade the concerning DC(s)!")
 
             self.message("")
@@ -154,13 +150,13 @@ class cmd_domainlevel(Command):
                 outstr = "higher than 2008 R2"
             self.message("Domain function level: (Windows) " + outstr)
 
-            if min_level_dc == DS_DC_FUNCTION_2000:
+            if min_level_dc == DS_DOMAIN_FUNCTION_2000:
                 outstr = "2000"
-            elif min_level_dc == DS_DC_FUNCTION_2003:
+            elif min_level_dc == DS_DOMAIN_FUNCTION_2003:
                 outstr = "2003"
-            elif min_level_dc == DS_DC_FUNCTION_2008:
+            elif min_level_dc == DS_DOMAIN_FUNCTION_2008:
                 outstr = "2008"
-            elif min_level_dc == DS_DC_FUNCTION_2008_R2:
+            elif min_level_dc == DS_DOMAIN_FUNCTION_2008_R2:
                 outstr = "2008 R2"
             else:
                 outstr = "higher than 2008 R2"
index cfba780baf137371e39e35a4c570cc6d2e83d28e..1b7cfca64d4d84f84919c3d25846ebb53afb5b80 100644 (file)
@@ -43,7 +43,7 @@ from samba.auth import system_session, admin_session
 import samba
 from samba import version, Ldb, substitute_var, valid_netbios_name
 from samba import check_all_substituted, read_and_sub_file, setup_file
-from samba.dsdb import DS_DOMAIN_FUNCTION_2003, DS_DC_FUNCTION_2008
+from samba.dsdb import DS_DOMAIN_FUNCTION_2003, DS_DOMAIN_FUNCTION_2008
 from samba.dcerpc import security
 from samba.dcerpc.misc import SEC_CHAN_BDC, SEC_CHAN_WKSTA
 from samba.idmap import IDmapDB
@@ -955,7 +955,7 @@ def setup_samdb(path, setup_path, session_info, provision_backend, lp, names,
 
     # ATTENTION: Do NOT change these default values without discussion with the
     # team and/or release manager. They have a big impact on the whole program!
-    domainControllerFunctionality = DS_DC_FUNCTION_2008
+    domainControllerFunctionality = DS_DOMAIN_FUNCTION_2008
 
     if dom_for_fun_level is None:
         dom_for_fun_level = DS_DOMAIN_FUNCTION_2003