示例#1
0
 def handle(self, dn, entry):
     """
     Append single record to dictionary of all records.
     """
     ent = Entry((dn, entry))
     normdn = DSAdmin.normalizeDN(dn)
     self.dndict[normdn] = ent
     cn = ent.cn
     if cn:
         self.cndict[cn] = ent
     self.dnlist.append(ent)
示例#2
0
 def handle(self,dn,entry):
     """
     Append single record to dictionary of all records.
     """
     ent = Entry((dn, entry))
     normdn = DSAdmin.normalizeDN(dn)
     self.dndict[normdn] = ent
     cn = ent.cn
     if cn:
         self.cndict[cn] = ent
     self.dnlist.append(ent);
示例#3
0
 def handle(self,dn,entry):
     """
     assumes basedns[0] is the parent, basedns[1] already exists,
     and we want to create entries for basedns[2]
     """
     normdn = DSAdmin.normalizeDN(dn)
     for (basedn, ld) in self.iterlist:
         if normdn.endswith(basedn):
             ld.unparse(dn,entry)
             if basedn == self.basedns[1]:
                 dn = normdn.replace(basedn,self.basedns[2])
                 for (attr, vals) in entry.iteritems():
                     for ii in xrange(0, len(vals)):
                         vals[ii] = vals[ii].replace(basedn,self.basedns[2])
                 self.outldifs[2].unparse(dn,entry)
             break
示例#4
0
agmts1to2 = srv1.findAgreementDNs()
agmts2to1 = srv2.findAgreementDNs()

suffixes = {}
srv1.lastnumchanges = {}
srv2.lastnumchanges = {}
srv1.avgrate = {}
srv2.avgrate = {}
srv1.count = {}
srv2.count = {}
repls = {}
for dn in agmts1to2:
    ents = srv1.search_s(dn, ldap.SCOPE_BASE, 'objectclass=*',
                         ['nsDS5ReplicaRoot'])
    ndn = DSAdmin.normalizeDN(dn)
    nrr = DSAdmin.normalizeDN(ents[0].nsDS5ReplicaRoot)
    suffixes[nrr] = dn
    srv1.lastnumchanges[ndn] = 0
    rdns = ldap.explode_dn(dn, 0)
    ndn = DSAdmin.normalizeDN(','.join(rdns[1:]))
    repls[ndn] = ndn
for dn in agmts2to1:
    ents = srv2.search_s(dn, ldap.SCOPE_BASE, 'objectclass=*',
                         ['nsDS5ReplicaRoot'])
    ndn = DSAdmin.normalizeDN(dn)
    nrr = DSAdmin.normalizeDN(ents[0].nsDS5ReplicaRoot)
    suffixes[nrr] = dn
    srv2.lastnumchanges[ndn] = 0
    rdns = ldap.explode_dn(dn, 0)
    ndn = DSAdmin.normalizeDN(','.join(rdns[1:]))
示例#5
0
    conn = DSAdmin(host, port, args.D[ii], args.w[ii])
    conn.lastnumchanges = {}
    conn.avgrate = {}
    conn.count = {}
    conn.starttime = {}
    conn.endtime = {}
    conns.append(conn)
    sufary = args.b
    if not sufary:
        sufary = conn.getSuffixes()
    for suf in sufary:
        filt = '(nsds5replicaroot=' + suf + ')'
        agmts = conn.findAgreementDNs(filt)
        if not agmts:
            raise Exception("error: server " + str(conn) + " has no agreements for suffix " + suf)
        suffixes[DSAdmin.normalizeDN(suf)] = suf
        for agmt in agmts:
            conn.lastnumchanges[agmt] = 0

sleeptime = args.t # seconds
print "Press Enter when the update is started"
sys.stdin.readline()
for conn in conns:
    for suf in suffixes.values():
        conn.starttime[suf] = int(time.time())

running = True
while running:
    notconverged = 0
    for suf in suffixes.values():
        if not running: break
示例#6
0
    conn.lastnumchanges = {}
    conn.avgrate = {}
    conn.count = {}
    conn.starttime = {}
    conn.endtime = {}
    conns.append(conn)
    sufary = args.b
    if not sufary:
        sufary = conn.getSuffixes()
    for suf in sufary:
        filt = '(nsds5replicaroot=' + suf + ')'
        agmts = conn.findAgreementDNs(filt)
        if not agmts:
            raise Exception("error: server " + str(conn) +
                            " has no agreements for suffix " + suf)
        suffixes[DSAdmin.normalizeDN(suf)] = suf
        for agmt in agmts:
            conn.lastnumchanges[agmt] = 0

sleeptime = args.t  # seconds
print "Press Enter when the update is started"
sys.stdin.readline()
for conn in conns:
    for suf in suffixes.values():
        conn.starttime[suf] = int(time.time())

running = True
while running:
    notconverged = 0
    for suf in suffixes.values():
        if not running: break
示例#7
0
srv2 = DSAdmin(host2, int(port2), dn2, pw2)

agmts1to2 = srv1.findAgreementDNs()
agmts2to1 = srv2.findAgreementDNs()

suffixes = {}
srv1.lastnumchanges = {}
srv2.lastnumchanges = {}
srv1.avgrate = {}
srv2.avgrate = {}
srv1.count = {}
srv2.count = {}
repls = {}
for dn in agmts1to2:
    ents = srv1.search_s(dn, ldap.SCOPE_BASE, "objectclass=*", ["nsDS5ReplicaRoot"])
    ndn = DSAdmin.normalizeDN(dn)
    nrr = DSAdmin.normalizeDN(ents[0].nsDS5ReplicaRoot)
    suffixes[nrr] = dn
    srv1.lastnumchanges[ndn] = 0
    rdns = ldap.explode_dn(dn, 0)
    ndn = DSAdmin.normalizeDN(",".join(rdns[1:]))
    repls[ndn] = ndn
for dn in agmts2to1:
    ents = srv2.search_s(dn, ldap.SCOPE_BASE, "objectclass=*", ["nsDS5ReplicaRoot"])
    ndn = DSAdmin.normalizeDN(dn)
    nrr = DSAdmin.normalizeDN(ents[0].nsDS5ReplicaRoot)
    suffixes[nrr] = dn
    srv2.lastnumchanges[ndn] = 0
    rdns = ldap.explode_dn(dn, 0)
    ndn = DSAdmin.normalizeDN(",".join(rdns[1:]))
    repls[ndn] = ndn