Exemple #1
0
def fixrev():
    """Let us test the api from a brower so I can debug the damn thing."""
    # first authenticate
    show("Begin api route #########################################\n\n")
    retval = 'begin'
    updateresult = {}
    if not token_verify():
        retval = jsonify(retval='No Token')
    username = getheadervalue(request.headers, 'X-API-User')
    user = db.session.query(User) \
             .filter(User.username == username) \
             .first()
    dom_ = Domain()

    recorddata = json.loads(request.data)
    show("fixrev print of recorddata is :\n%s" % (recorddata), level=6)
    if retval == 'begin' and 'hostname' in recorddata and 'revname' in recorddata:
        show("fixrev pformat of recorddata is :\n%s" %
             (pformat(recorddata, indent=4)),
             level=6)
        hostname = recorddata['hostname'] + '.'
        revname = recorddata['revname']
        revnamewdot = recorddata['revname'] + '.'

        domain_reverse_name = dom_.get_reverse_domain_name(revname)
        show("fixrev name is :%s revname is %s domain_reverse_name %s" %
             (hostname, revname, domain_reverse_name),
             level=6)

        is_allowed = is_allowed_domain(domain_reverse_name, user.id)
        if not is_allowed:
            return jsonify(error='error not allowed to modify domainname %s' %
                           (domain_reverse_name))

        mdl = db.session.query(Domain)\
                .filter(Domain.name == domain_reverse_name)\
                .first()
        if not mdl:
            show("fixrev domain_reverse_name %s DOES NOT EXIST" %
                 (domain_reverse_name),
                 level=6)
            dom_ = Domain()
            domain = 'pop'
            dom_.create_reverse_domain(domain, domain_reverse_name)
            # return jsonify(retval='No Domain %s' % (domain_reverse_name))

        rec = Record(name=revnamewdot,
                     type='PTR',
                     status=False,
                     ttl=86400,
                     data=hostname)
        updateresult = rec.update(domain_reverse_name, hostname, username)

    return jsonify(retval=retval, **updateresult)
Exemple #2
0
def addhost():
    """Let us test the api from a brower so I can debug the damn thing."""
    # first authenticate
    show("Begin api route #########################################\n\n")
    retval = 'begin'
    if not token_verify():
        return jsonify(retval='No Token')
    username = getheadervalue(request.headers, 'X-API-User')
    user = db.session.query(User) \
             .filter(User.username == username) \
             .first()
    addresult = {}

    recorddata = json.loads(request.data)
    show("print of recorddata is :\n%s" % (recorddata), level=6)
    if 'name' in recorddata and 'content' in recorddata:
        show("pformat of recorddata is :\n%s" %
             (pformat(recorddata, indent=4)),
             level=6)
        name = recorddata['name']
        show("name is : '%s'" % (name), level=6)
        domainname = get_domain_fromname(name)
        if not domainname:
            return jsonify(error='error getting domain name')
        if not is_allowed_domain(domainname, user.id):
            return jsonify(error='error not allowed to modify domainname %s' %
                           (domainname))

        # show("type of recorddata is :\n%s" % (type(recorddata)), level=6)
        # , type_='A', ttl=86400, disabled=False
        # pdnsdata = build_rrset(name=recorddata['name'], ipaddr=recorddata['ipaddr'])
        # show("print of pdnsdata is :\n%s" % (pformat(pdnsdata, indent=4)), level=6)
        # , rrsetid=None)
        ttl = 86400
        if 'ttl' in recorddata:
            ttl = int(recorddata['ttl'])
        rectype = 'A'
        if 'rectype' in recorddata:
            rectype = recorddata['rectype']

        show("name be is %s" % name, level=6)
        show("content be is %s" % (recorddata['content']), level=6)
        rec = Record(name=name,
                     type=rectype,
                     status=False,
                     ttl=ttl,
                     data=recorddata['content'])
        addresult = rec.add(domainname, created_by=username)

        if rectype == 'A':
            show("name is %s" % name, level=6)
            show("content is %s" % (recorddata['content']), level=6)
            # r_name = dns.reversename.to_address(recorddata['content'])
            reverse_host_address = dns.reversename.from_address(
                recorddata['content']).to_text()
            show("r_name is %s" % (reverse_host_address), level=6)
            if AUTOREVERSE:
                revrec = Record(name=reverse_host_address,
                                type='PTR',
                                status=False,
                                ttl=86400,
                                data=name)
                dom_ = Domain()
                domain_reverse_name = dom_.get_reverse_domain_name(
                    reverse_host_address)
                show("r_name is %s about to update" % (reverse_host_address),
                     level=6)
                revresult = revrec.update(domain_reverse_name, name, username)
                if 'status' in revresult:
                    addresult['revstatus'] = revresult['status']
                if 'msg' in revresult:
                    addresult['revmsg'] = revresult['msg']

    return jsonify(retval=retval, **addresult)