コード例 #1
0
ファイル: views.py プロジェクト: lovejoy/Roshan
def children(request, path='/'):
    childrens = []
    data = zkutils._get_children(zh, path)
    if data[0] == False:
        return HttpResponse(jdumps({"error":str(data[1])}))
    for child in data[1]:
        child_path = os.path.join(path, child)
        if child_path == '/zookeeper':
            continue
        if check_path_perm(request, child_path) == False:
            continue
        child_dict = {"text":child, "id": child_path}
        stat = zkutils._get_stat(zh, child_path)
        if stat != False and stat['numChildren'] > 0:
            child_dict['leaf'] = False
        else:
            child_dict['leaf'] = True
        childrens.append(child_dict)
    return HttpResponse(jdumps(childrens))
コード例 #2
0
def children(request, path='/'):
    childrens = []
    data = zkutils._get_children(zh, path)
    if data[0] == False:
        return HttpResponse(jdumps({"error": str(data[1])}))
    for child in data[1]:
        child_path = os.path.join(path, child)
        if child_path == '/zookeeper':
            continue
        if check_path_perm(request, child_path) == False:
            continue
        child_dict = {"text": child, "id": child_path}
        stat = zkutils._get_stat(zh, child_path)
        if stat != False and stat['numChildren'] > 0:
            child_dict['leaf'] = False
        else:
            child_dict['leaf'] = True
        childrens.append(child_dict)
    return HttpResponse(jdumps(childrens))
コード例 #3
0
ファイル: views.py プロジェクト: lovejoy/Roshan
        # user added acl
        acl_str = request.POST['acl']
        acl_set.addmany(acl_str.split())

        stat, oldacls = zkutils._get_acl(zh, path)
        if stat == False:
            update_stat += "Get old acls failed"
        else:
            if 'isappend' in request.POST and request.POST['isappend'] == 'on':
                acl_set.addmany(oldacls)
            try:
                ret = zk.set_acl(zh, path, stat['aversion'], acl_set.to_dict())
                if ret is not zk.OK:
                    raise IOError("set acl failed")
                # apply to ephemeral child
                children = zkutils._get_children(zh, path)
                if children[0] == False:
                    raise IOError('get children failed')
                for child in children[1]:
                    child_path = os.path.join(path, child)
                    stat, oldacls = zkutils._get_acl(zh, child_path)
                    if stat['ephemeralOwner'] == 0:
                        continue
                    ret = zk.set_acl(zh, child_path, stat['aversion'],
                        acl_set.to_dict())
                    if ret is not zk.OK:
                        raise IOError("set acl failed for %s"%(child_path))
            except IOError, errmsg:
                update_stat += str(errmsg)
            except ValueError, errmsg:
                update_stat += str(errmsg)
コード例 #4
0
        # user added acl
        acl_str = request.POST['acl']
        acl_set.addmany(acl_str.split())

        stat, oldacls = zkutils._get_acl(zh, path)
        if stat == False:
            update_stat += "Get old acls failed"
        else:
            if 'isappend' in request.POST and request.POST['isappend'] == 'on':
                acl_set.addmany(oldacls)
            try:
                ret = zk.set_acl(zh, path, stat['aversion'], acl_set.to_dict())
                if ret is not zk.OK:
                    raise IOError("set acl failed")
                # apply to ephemeral child
                children = zkutils._get_children(zh, path)
                if children[0] == False:
                    raise IOError('get children failed')
                for child in children[1]:
                    child_path = os.path.join(path, child)
                    stat, oldacls = zkutils._get_acl(zh, child_path)
                    if stat['ephemeralOwner'] == 0:
                        continue
                    ret = zk.set_acl(zh, child_path, stat['aversion'],
                                     acl_set.to_dict())
                    if ret is not zk.OK:
                        raise IOError("set acl failed for %s" % (child_path))
            except IOError, errmsg:
                update_stat += str(errmsg)
            except ValueError, errmsg:
                update_stat += str(errmsg)