Пример #1
0
def delete(request, id, path):
    cluster = get_cluster_or_404(id)
    if request.method == 'POST':
        zk = ZooKeeper(cluster['rest_gateway'])
        try:
            zk.recursive_delete(path)
        except ZooKeeper.NotFound:
            pass

    return tree(request, id, path[:path.rindex('/')] or '/')
Пример #2
0
def tree(request, id, path):
    cluster = get_cluster_or_404(id)
    zk = ZooKeeper(cluster['rest_gateway'])

    znode = zk.get(path)
    children = sorted(zk.get_children_paths(path))

    return render('tree.mako', request,
      dict(cluster=cluster, path=path, \
        znode=znode, children=children))
Пример #3
0
def edit_as_text(request, id, path):
    cluster = get_cluster_or_404(id)
    zk = ZooKeeper(cluster['rest_gateway'])
    node = zk.get(path)

    if request.method == 'POST':
        form = EditZNodeForm(request.POST)
        if form.is_valid():
            zk.set(path, form.cleaned_data['data'])

        return tree(request, id, path)
    else:
        form = EditZNodeForm(dict(data=node.get('data64', '')\
          .decode('base64').strip(),
          version=node.get('version', '-1')))

    return render('edit.mako', request, dict(path=path, form=form))
Пример #4
0
def create(request, id, path):
    cluster = get_cluster_or_404(id)

    if request.method == 'POST':
        form = CreateZNodeForm(request.POST)
        if form.is_valid():
            zk = ZooKeeper(cluster['rest_gateway'])

            full_path = ("%s/%s" % (path, form.cleaned_data['name']))\
              .replace('//', '/')

            zk.create(full_path, \
              form.cleaned_data['data'], \
              sequence = form.cleaned_data['sequence'])
            return tree(request, id, path)
    else:
        form = CreateZNodeForm()

    return render('create.mako', request, dict(path=path, form=form))