示例#1
0
文件: auth.py 项目: btorch/stalker
def remove_user(username, email):
    try:
        q = r.table("users").get(
            genPrimaryKey64("%s%s" % (username, email))).delete().run(rdb.conn)
        if q["deleted"] == 1:
            return True
        else:
            return False
    except Exception as err:
        print err
        return False
示例#2
0
文件: auth.py 项目: btorch/stalker
def add_user(username, password, email):
    pw_hash = generate_password_hash(password)
    try:
        res = r.table("users").insert({'id': genPrimaryKey64("%s%s" % (
            username, email)), 'username': username, 'hash': pw_hash, 'email': email}).run(rdb.conn)
        if res["inserted"] == 1:
            return True
        else:
            return False
    except Exception:
        return False
示例#3
0
def remove_user(username, email):
    try:
        q = r.table("users").get(genPrimaryKey64(
            "%s%s" % (username, email))).delete().run(rdb.conn)
        if q["deleted"] == 1:
            return True
        else:
            return False
    except Exception as err:
        print err
        return False
示例#4
0
文件: auth.py 项目: btorch/stalker
def change_pass(username, email, password):
    pw_hash = generate_password_hash(password)
    try:
        q = r.table("users").get(genPrimaryKey64("%s%s" % (username, email))).update(
            {"hash": pw_hash}).run(rdb.conn)
        if q["replaced"]:
            return True
        else:
            return False
    except Exception as err:
        print err
        return False
示例#5
0
文件: views.py 项目: thrawn01/stalker
def register():
    if request.headers.get('X-REGISTER-KEY') != app.config['REGISTER_KEY']:
        abort(412)
    if not request.json:
        abort(400)
    if not _valid_registration(request.json):
        abort(400)
    hid = request.json['hostname']
    checks = request.json['checks']
    roles = request.json['roles']
    ip_addr = request.json.get('ip', request.remote_addr)
    if ip_addr == '':
        ip_addr = request.remote_addr
    try:
        pkey = genPrimaryKey64("%s%s" % (hid, ip_addr))
        q = r.table("hosts").insert({
                "id": pkey,
                "hostname": hid,
                "ip": ip_addr,
                "checks": checks,
                "roles": roles
            },conflict="update").run(rdb.conn)
        q = r.table("checks").filter({"hostname": hid}).delete().run(rdb.conn) #we're about to reinstart all so just delete all incase checks got removed
        bulk_load = []
        for i in checks:
            bulk_load.append({'id': genPrimaryKey64("%s%s%s" % (hid, ip_addr, i)),
                              'hostname': hid, 'ip': ip_addr,
                              'check': i, 'last': 0, 'next': _rand_start(),
                              'interval': checks[i]['interval'],
                              'follow_up': checks[i]['follow_up'],
                              'pending': False,
                              'status': None, 'in_maintenance': False,
                              'suspended': False, 'out': '',
                              'priority': checks[i].get('priority', 1)})
            q = r.table("checks").insert(bulk_load, conflict="update").run(rdb.conn)
    except Exception as err:
        logger.error(err)
        return jsonify({'status': 'fail', 'error': str(err)}), 400
    return jsonify({'status': 'ok'})
示例#6
0
def register():
    if request.headers.get('X-REGISTER-KEY') != app.config['REGISTER_KEY']:
        abort(412)
    if not request.json:
        abort(400)
    if not _valid_registration(request.json):
        abort(400)
    hid = request.json['hostname']
    checks = request.json['checks']
    roles = request.json['roles']
    ip_addr = request.json.get('ip', request.remote_addr)
    if ip_addr == '':
        ip_addr = request.remote_addr
    try:
        pkey = genPrimaryKey64("%s%s" % (hid, ip_addr))
        q = r.table("hosts").insert({
                "id": pkey,
                "hostname": hid,
                "ip": ip_addr,
                "checks": checks,
                "roles": roles
            },conflict="update").run(rdb.conn)
        q = r.table("checks").filter({"hostname": hid}).delete().run(rdb.conn) #we're about to reinstart all so just delete all incase checks got removed
        bulk_load = []
        for i in checks:
            bulk_load.append({'id': genPrimaryKey64("%s%s%s" % (hid, ip_addr, i)),
                              'hostname': hid, 'ip': ip_addr,
                              'check': i, 'last': 0, 'next': _rand_start(),
                              'interval': checks[i]['interval'],
                              'follow_up': checks[i]['follow_up'],
                              'pending': False,
                              'status': None, 'in_maintenance': False,
                              'suspended': False, 'out': '',
                              'priority': checks[i].get('priority', 1)})
            q = r.table("checks").insert(bulk_load, conflict="update").run(rdb.conn)
    except Exception as err:
        logger.error(err)
        return jsonify({'status': 'fail', 'error': str(err)}), 400
    return jsonify({'status': 'ok'})
示例#7
0
def change_pass(username, email, password):
    pw_hash = generate_password_hash(password)
    try:
        q = r.table("users").get(genPrimaryKey64("%s%s" %
                                                 (username, email))).update({
                                                     "hash":
                                                     pw_hash
                                                 }).run(rdb.conn)
        if q["replaced"]:
            return True
        else:
            return False
    except Exception as err:
        print err
        return False
示例#8
0
def add_user(username, password, email):
    pw_hash = generate_password_hash(password)
    try:
        res = r.table("users").insert({
            'id':
            genPrimaryKey64("%s%s" % (username, email)),
            'username':
            username,
            'hash':
            pw_hash,
            'email':
            email
        }).run(rdb.conn)
        if res["inserted"] == 1:
            return True
        else:
            return False
    except Exception:
        return False