Пример #1
0
    def setupBackend(self, suffix, binddn=None, bindpw=None, urls=None, attrvals=None, benamebase=None, verbose=False):
        """Create a backends using the first available cn."""
        # if benamebase is set, try creating without appending
        if benamebase:
            benum = 0
        else:
            benum = 1

        # figure out what type of be based on args
        if binddn and bindpw and urls:  # its a chaining be
            benamebase = benamebase or "chaindb"
        else:  # its a ldbm be
            benamebase = benamebase or "localdb"

        done = False
        while not done:
            # if benamebase is set, benum starts at 0
            # and the first attempt tries to create the
            # simple benamebase. On failure benum is
            # incremented and the suffix is appended
            # to the cn
            if benum:
                benamebase_tmp = benamebase + str(benum)  # e.g. localdb1
            else:
                benamebase_tmp = benamebase

            try:
                cn = DSAdmin.setupBackend(suffix, binddn, bindpw,
                                          urls, attrvals, benamebase, verbose)
                done = True
            except ldap.ALREADY_EXISTS:
                benum += 1

        return cn
Пример #2
0
    def setupBackend(self,
                     suffix,
                     binddn=None,
                     bindpw=None,
                     urls=None,
                     attrvals=None,
                     benamebase=None,
                     verbose=False):
        """Create a backends using the first available cn."""
        # if benamebase is set, try creating without appending
        if benamebase:
            benum = 0
        else:
            benum = 1

        # figure out what type of be based on args
        if binddn and bindpw and urls:  # its a chaining be
            benamebase = benamebase or "chaindb"
        else:  # its a ldbm be
            benamebase = benamebase or "localdb"

        done = False
        while not done:
            # if benamebase is set, benum starts at 0
            # and the first attempt tries to create the
            # simple benamebase. On failure benum is
            # incremented and the suffix is appended
            # to the cn
            if benum:
                benamebase_tmp = benamebase + str(benum)  # e.g. localdb1
            else:
                benamebase_tmp = benamebase

            try:
                cn = DSAdmin.setupBackend(suffix, binddn, bindpw, urls,
                                          attrvals, benamebase, verbose)
                done = True
            except ldap.ALREADY_EXISTS:
                benum += 1

        return cn