示例#1
0
文件: views.py 项目: libin/chef_stock
def node(request,node_name):    
    request.breadcrumbs("Nodes",reverse("nodes"))
    request.breadcrumbs(node_name,"#")
    node = ChefQueryManager.get_node(node_name)
    if not node:
        raise Http404
    return render_to_response("node.html",{'node':node},RequestContext(request))
示例#2
0
文件: views.py 项目: libin/chef_stock
def nodes(request):
    request.breadcrumbs("Nodes","#")

    cur_environment = request.GET.get("cur_environment",None)
    cur_role = request.GET.get("cur_role",None)
    cur_name = request.GET.get("cur_name",None)

    nodes = ChefQueryManager.list_nodes()
    if cur_environment or cur_role or cur_name:
        chef_map = dict([(node_name,ChefQueryManager.get_node(node_name)) for node_name in nodes])


    if cur_name:
        nodes = filter(lambda x: chef_map.get(x,None) and cur_name in chef_map.get(x)['name'],nodes)
    if cur_environment:
        nodes = filter(lambda x: chef_map.get(x,None) and chef_map.get(x)['chef_environment'] == cur_environment,nodes)
    if cur_role:
        nodes = filter(lambda x: chef_map.get(x,None) and chef_map.get(x)['automatic'].has_key("roles") and cur_role in chef_map.get(x)['automatic']['roles'],nodes)

    return render_to_response("nodes.html",
                              {'nodes':nodes,
                               'cur_name':cur_name,
                               'cur_role':cur_role,
                               'cur_environment':cur_environment},
                              RequestContext(request))