def view(request, id): cluster = get_cluster_or_404(id) cluster = _get_overview(cluster) leader, followers = _group_stats_by_role(cluster) return render('view.mako', request, dict(cluster=cluster, leader=leader, followers=followers))
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 '/')
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))
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))
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))