# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
-import re
import ldb
import samba
-import time
from base64 import b64encode
-from samba import dsdb
-from samba import common
from samba import sd_utils
-from samba.dcerpc import misc
-from samba.dcerpc import drsuapi
from samba.ndr import ndr_unpack, ndr_pack
-from samba.dcerpc import drsblobs
-from samba.common import dsdb_Dn
from samba.dcerpc import security
from samba.dcerpc.security import SECINFO_DACL
from samba.descriptor import (
- get_wellknown_sds,
- get_diff_sds,
get_managed_service_accounts_descriptor,
)
-from samba.auth import system_session, admin_session
-from samba.netcmd import CommandError
-from samba.netcmd.fsmo import get_fsmo_roleowner
from samba.dsdb import (
DS_DOMAIN_FUNCTION_2008,
DS_DOMAIN_FUNCTION_2008_R2,
def check_updates_functional_level(self, functional_level,
old_functional_level=None,
update_revision=False):
+ """
+ Apply all updates for a given old and new functional level
+ :param functional_level: constant
+ :param old_functional_level: constant
+ :param update_revision: modify the stored version
+ :raise DomainUpdateException:
+ """
res = self.samdb.search(base=self.revision_object,
attrs=["revision"], scope=ldb.SCOPE_BASE)
self.raise_if_not_fix(op)
descriptor = get_managed_service_accounts_descriptor(self.domain_sid)
- managedservice_descr = b64encode(descriptor)
+ managedservice_descr = b64encode(descriptor).decode('utf8')
managed_service_dn = "CN=Managed Service Accounts,%s" % \
str(self.domain_dn)