コード例 #1
0
def report_invalid_voip_addresses(logger, report):
    """Find voipAddress-objects owned by persons without primary account.

    @param logger
    @type list
    @param report is a list of dicts.
    """
    logger.debug('-' * 8 + 'voipAddresses' + '-' * 8)
    db = Factory.get("Database")()
    va = VoipAddress(db)
    for entry in va.list_voip_attributes():
        if entry['voipOwnerType'] != 'person':
            continue  # skip objects owned by services
        if not entry.get("cn"):
            entry["cn"] = ()
        # find addresses owner
        va.clear()
        va.find(entry['entity_id'])
        entry["voipOwnerId"] = va.owner_entity_id
        if entry["uid"] is None:
            logger.debug('uid is None')
            entry['reason'] = find_reason(db, entry)
            entr = {}
            for k, v in entry.iteritems():
                if k in ('entity_id', 'voipOwnerId', 'cn', 'reason',
                         'voipExtensionUri', 'uid'):
                    if k == 'voipExtensionUri':
                        k = 'extension'
                        if isinstance(v, basestring):
                            v = v.strip('sip:@uio.no')
                    entr[k] = v
            report.append(entr)
    logger.debug('-' * 8 + 'end voipAddresses' + '-' * 8)
コード例 #2
0
def report_invalid_voip_addresses(logger, report):
    """Find voipAddress-objects owned by persons without primary account.

    @param logger
    @type list
    @param report is a list of dicts.
    """
    logger.debug("-" * 8 + "voipAddresses" + "-" * 8)
    db = Factory.get("Database")()
    va = VoipAddress(db)
    for entry in va.list_voip_attributes():
        if entry["voipOwnerType"] != "person":
            continue  # skip objects owned by services
        if not entry.get("cn"):
            entry["cn"] = ()
        # find addresses owner
        va.clear()
        va.find(entry["entity_id"])
        entry["voipOwnerId"] = va.owner_entity_id
        if entry["uid"] is None:
            logger.debug("uid is None")
            entry["reason"] = find_reason(db, entry)
            entr = {}
            for k, v in entry.iteritems():
                if k in ("entity_id", "voipOwnerId", "cn", "reason", "voipExtensionUri", "uid"):
                    if k == "voipExtensionUri":
                        k = "extension"
                        if isinstance(v, basestring):
                            v = v.strip("sip:@uio.no")
                    entr[k] = v
            report.append(entr)
    logger.debug("-" * 8 + "end voipAddresses" + "-" * 8)
コード例 #3
0
def generate_voip_addresses(sink, *args):
    va = VoipAddress(db)
    sink.write(container_entry_string('VOIP_ADDRESS'))
    addr_id2dn = dict()
    for entry in va.list_voip_attributes(*args):
        entry['objectClass'] = ['top', 'voipAddress']
        dn = "voipOwnerId={},{}".format(entry['voipOwnerId'],
                                        ldapconf('VOIP_ADDRESS', 'dn', None))
        entity_id = entry.pop("entity_id")
        addr_id2dn[entity_id] = dn
        if not entry.get("cn"):
            entry["cn"] = ()
        sink.write(entry_string(dn, entry))
    return addr_id2dn
コード例 #4
0
def generate_voip_addresses(sink, *args):
    va = VoipAddress(db)
    sink.write(container_entry_string('VOIP_ADDRESS'))
    addr_id2dn = dict()
    for entry in va.list_voip_attributes(*args):
        entry['objectClass'] = ['top', 'voipAddress']
        dn = "voipOwnerId={},{}".format(entry['voipOwnerId'],
                                        ldapconf('VOIP_ADDRESS', 'dn', None))
        entity_id = entry.pop("entity_id")
        addr_id2dn[entity_id] = dn
        if not entry.get("cn"):
            entry["cn"] = ()
        sink.write(entry_string(dn, entry))
    return addr_id2dn
コード例 #5
0
def generate_voip_addresses(sink, encoding, *args):
    db = Factory.get("Database")()
    va = VoipAddress(db)
    sink.write(container_entry_string("VOIP_ADDRESS"))
    addr_id2dn = dict()
    for entry in va.list_voip_attributes(*args):
        entry["objectClass"] = ["top", "voipAddress"]
        dn = "voipOwnerId=%s,%s" % (entry["voipOwnerId"], ldapconf("VOIP_ADDRESS", "dn", None))
        entity_id = entry.pop("entity_id")
        addr_id2dn[entity_id] = dn
        entry = object2encoding(entry, encoding)
        if not entry.get("cn"):
            entry["cn"] = ()
        sink.write(entry_string(object2encoding(dn, encoding), entry))

    return addr_id2dn
コード例 #6
0
ファイル: generate_voip_ldif.py プロジェクト: chrnux/cerebrum
def generate_voip_addresses(sink, encoding, *args):
    db = Factory.get("Database")()
    va = VoipAddress(db)
    sink.write(container_entry_string('VOIP_ADDRESS'))
    addr_id2dn = dict()
    for entry in va.list_voip_attributes(*args):
        entry['objectClass'] = ['top', 'voipAddress']
        dn = "voipOwnerId=%s,%s" % (entry['voipOwnerId'],
                                    ldapconf('VOIP_ADDRESS', 'dn', None))
        entity_id = entry.pop("entity_id")
        addr_id2dn[entity_id] = dn
        entry = object2encoding(entry, encoding)
        if not entry.get("cn"):
            entry["cn"] = ()
        sink.write(entry_string(object2encoding(dn, encoding), entry))

    return addr_id2dn