Beispiel #1
0
def parameters(request,function):
    if request.method=="POST":
        if function=='add':
            groupid=request.POST.get("groupid")
            data=eval(request.POST.get("data"))
            if groupid and data:
                for d in data:
                    parameter.createByGroup(groupid,d.keys()[0],d.values()[0])
                return HttpResponse("ok")
        elif function=='remove':
            pid=request.POST.get("pid")
            if pid:
                parameter.delete(pid)
                return HttpResponse("ok")
    else:
        if function=='add':
            context={}
            context['title']="Add Group Parameter"
            context['function']=function
            context['hostlist']=group.listByType("Host")
            return render(request,'puppet/parameter.html',context)
        elif function=='remove':
            context={}
            context['title']="Remove Group Parameter"
            context['function']=function
            context['hostlist']=group.listByType("Host")
            return render(request,'puppet/parameter.html',context)
Beispiel #2
0
def configs(request,configid=0,groupid=0):
    if (not configid):
        if request.method=='POST':
            meth=request.POST.get('_method','show')
            if meth=='new':
                name=request.POST.get('name')
                description=request.POST.get('description')
                classname=request.POST.get('classname')
                if name and classname:
                    config.create(name, description, classname)
                return HttpResponse("ok")
        else:
            context={}
            q=request.GET.get('q')
            p=int(request.GET.get('page',1))
            if q:
                re=config.search(q)
                context['title']="Configs in search"
            elif groupid:
                re=config.listByGroup(groupid)
                context['title']="Configs in Group"
            else:
                re=config.showAll()
                context['title']="Config List"
            if re:
                page=Paginator(re,10)
                if p>0 and p<=page.num_pages:
                    context['page']=page.page(p)
                else:
                    context['page']=page.page(1)
                context['num_pages']=page.num_pages
                for p in context['page']:
                    p.setUrl("/cmdb/config/"+str(p.id))
            context['grouplist']=group.listByType('CONFIG')
            context['uri']='config'
            context['with_group']=True
            context['with_new']=True
            return render(request,'list.html',context)
    else:
        if request.method=='POST':
            meth=request.POST.get('_method','show')
            if meth=='delete':
                config.delete(configid)
                return HttpResponse("ok")
            if meth=='edit':
                name=request.POST.get('name')
                description=request.POST.get('description')
                classname=request.POST.get('classname')
                if name and classname:
                    config.edit(configid, name, description, classname)
                return HttpResponse("ok")
        else:
            context={}
            context['title']="Config Info"
            context['config']=config.show(configid)
            context['ppfile']=config.ppfile(configid)
            context['host']=config.hostsWithConfig(configid)
            return render(request, 'puppet/config.html',context)
Beispiel #3
0
def hosts(request,hostid=0,groupid=0):
    if not hostid:
        context={}
        q=request.GET.get('q')
        p=int(request.GET.get('page',1))
        if q:
            re=host.search(q)
            context['title']="Hosts in search"
        elif groupid:
            re=host.listByGroup(groupid)
            context['title']="Hosts in Group"
        else:
            re=host.showAll()
            context['title']="Host List"
        if re:
            page=Paginator(re,10)
            if p>0 and p<=page.num_pages:
                context['page']=page.page(p)
            else:
                context['page']=page.page(1)
            context['num_pages']=page.num_pages
            for p in context['page']:
                p.setIP(host.getIP(p.id))
                p.setUrl("/cmdb/host/"+str(p.id))
        context['grouplist']=group.listByType('Host')
        context['uri']='host'
        context['with_group']=True
        context['with_new']=False
        return render(request, 'list.html',context)
    else:
        if request.method=='POST':
            meth=request.POST.get('_method','show')
            if meth=='delete':
                host.delete(hostid)
                return HttpResponse("ok")
            elif meth=='edit_desc':
                desc=unquote(request.POST.get('desc',''))
                host.edit_desc(hostid,desc)
                return HttpResponse("ok")
            elif meth=='addparam':
                key=request.POST.get('key')
                value=request.POST.get('value')
                return HttpResponse(parameter.createByHost(hostid,key,value))
            elif meth=='delparam':
                pid=request.POST.get('pid')
                parameter.delete(pid)
                return HttpResponse("ok")
        else:
            re=host.show(hostid)
            if re:
                context=re
                context['title']="Host Info"
                return render(request, 'core/host.html',context)
            else:
                return HttpResponseRedirect("/cmdb/host")
Beispiel #4
0
def hosts(request, hostid=0, groupid=0):
    if not hostid:
        context = {}
        q = request.GET.get('q')
        p = int(request.GET.get('page', 1))
        if q:
            re = host.search(q)
            context['title'] = "Hosts in search"
        elif groupid:
            re = host.listByGroup(groupid)
            context['title'] = "Hosts in Group"
        else:
            re = host.showAll()
            context['title'] = "Host List"
        if re:
            page = Paginator(re, 10)
            if p > 0 and p <= page.num_pages:
                context['page'] = page.page(p)
            else:
                context['page'] = page.page(1)
            context['num_pages'] = page.num_pages
            for p in context['page']:
                p.setIP(host.getIP(p.id))
                p.setUrl("/cmdb/host/" + str(p.id))
        context['grouplist'] = group.listByType('Host')
        context['uri'] = 'host'
        context['with_group'] = True
        context['with_new'] = False
        return render(request, 'list.html', context)
    else:
        if request.method == 'POST':
            meth = request.POST.get('_method', 'show')
            if meth == 'delete':
                host.delete(hostid)
                return HttpResponse("ok")
            elif meth == 'edit_desc':
                desc = unquote(request.POST.get('desc', ''))
                host.edit_desc(hostid, desc)
                return HttpResponse("ok")
            elif meth == 'addparam':
                key = request.POST.get('key')
                value = request.POST.get('value')
                return HttpResponse(parameter.createByHost(hostid, key, value))
            elif meth == 'delparam':
                pid = request.POST.get('pid')
                parameter.delete(pid)
                return HttpResponse("ok")
        else:
            re = host.show(hostid)
            if re:
                context = re
                context['title'] = "Host Info"
                return render(request, 'core/host.html', context)
            else:
                return HttpResponseRedirect("/cmdb/host")
Beispiel #5
0
def groups(request,groupid=0,grouptype=""):
    if (not groupid):
        if request.method=='POST':
            meth=request.POST.get('_method','show')
            if meth=='new':
                name=request.POST.get('name')
                t=request.POST.get('type')
                member=request.POST.get('member')
                if name and t and member:
                    m=member.split(';')
                    m.pop(-1)
                    group.addMember(group.create(name, t), m)
                return HttpResponse("ok")
        else:
            context={}
            q=request.GET.get('q')
            p=int(request.GET.get('page',1))
            if q:
                re=group.search(q)
                context['title']="Groups in search"
            elif grouptype:
                re=group.listByType(grouptype)
                context['title']=grouptype.capitalize()+" Groups Manage"
            else:
                re=group.showAll()
                context['title']="Group List"
            if re:
                page=Paginator(re,10)
                if p>0 and p<=page.num_pages:
                    context['page']=page.page(p)
                else:
                    context['page']=page.page(1)
                context['num_pages']=page.num_pages
                for p in context['page']:
                    p.setUrl("/cmdb/group/"+str(p.id))
            context['uri']='group'
            context['with_group']=False
            context['with_new']=True
            return render(request,'list.html',context)
    else:
        if request.method=="POST":
            meth=request.POST.get('_method','show')
            if meth=='delete':
                group.delete(groupid)
                return HttpResponse("ok")
            if meth=='edit':
                name=request.POST.get('name')
                add_list=request.POST.get('add')
                if add_list:
                    group.addMember(groupid, add_list.split(','))
                del_list=request.POST.get('del')
                if del_list:
                    group.delMember(groupid, del_list.split(','))
                group.changeName(groupid, name)
                return HttpResponse("ok")
        else:
            re=group.show(groupid)
            if re:
                context={}
                context['group']=group.show(groupid)
                context['members']=group.getMember(groupid)
                context['title']="Group Info"
                if context['group'].type=="Host":
                    for p in context['members']:
                        p.setIP(host.getIP(p.id))
                return render(request,'core/group.html',context)
            else:
                return HttpResponseRedirect("/cmdb/group")
Beispiel #6
0
def relationship(request,function,functype=''):
    if request.method=="POST":
        if function=='add':
            if functype=='single2single':
                hosts=request.POST.get('host')
                configs=request.POST.get('config')
                if hosts and configs:
                    h=host.get(hosts)
                    c=config.get(configs)
                    if h and c:
                        host.addConfig(h, c)
            elif functype=='group2single':
                hosts=request.POST.get('host')
                configs=request.POST.get('config')
                if hosts and configs:
                    h=host.get(hosts)
                    configlist=group.getMember(configs)
                    if h and configlist:
                        for c in configlist:
                            host.addConfig(h, c)
            elif functype=='single2group':
                hosts=request.POST.get('host')
                configs=request.POST.get('config')
                if hosts and configs:
                    hostlist=group.getMember(hosts)
                    c=config.get(configs)
                    if hostlist and c:
                        for h in hostlist:
                            host.addConfig(h, c)
            elif functype=='group2group':
                hosts=request.POST.get('host')
                configs=request.POST.get('config')
                if hosts and configs:
                    hostlist=group.getMember(hosts)
                    configlist=group.getMember(configs)
                    if hostlist and configlist:
                        for h in hostlist:
                            for c in configlist:
                                host.addConfig(h, c)
        if function=='remove':
            hosts=request.POST.get('host')
            configs=request.POST.get('config')
            if functype=='single2single':
                hosts=request.POST.get('host')
                configs=request.POST.get('config')
                if hosts and configs:
                    h=host.get(hosts)
                    c=config.get(configs)
                    if h and c:
                        host.removeConfig(h, c)
            elif functype=='group2single':
                hosts=request.POST.get('host')
                configs=request.POST.get('config')
                if hosts and configs:
                    h=host.get(hosts)
                    configlist=group.getMember(configs)
                    if h and configlist:
                        for c in configlist:
                            host.removeConfig(h, c)
            elif functype=='single2group':
                hosts=request.POST.get('host')
                configs=request.POST.get('config')
                if hosts and configs:
                    hostlist=group.getMember(hosts)
                    c=config.get(configs)
                    if hostlist and c:
                        for h in hostlist:
                            host.removeConfig(h, c)
            elif functype=='group2group':
                hosts=request.POST.get('host')
                configs=request.POST.get('config')
                if hosts and configs:
                    hostlist=group.getMember(hosts)
                    configlist=group.getMember(configs)
                    if hostlist and configlist:
                        for h in hostlist:
                            for c in configlist:
                                host.removeConfig(h, c)
        return HttpResponse("ok")
    else:
        context={}
        context['title']="Host and Config Relationship Manage"
        context['function']=function
        context['hostlist']=host.showAll()
        context['configlist']=config.showAll()
        context['hostgrouplist']=group.listByType("Host")
        context['configgrouplist']=group.listByType("CONFIG")
        return render(request,'core/relationship.html',context)
Beispiel #7
0
def groups(request, groupid=0, grouptype=""):
    if (not groupid):
        if request.method == 'POST':
            meth = request.POST.get('_method', 'show')
            if meth == 'new':
                name = request.POST.get('name')
                t = request.POST.get('type')
                member = request.POST.get('member')
                if name and t and member:
                    m = member.split(';')
                    m.pop(-1)
                    group.addMember(group.create(name, t), m)
                return HttpResponse("ok")
        else:
            context = {}
            q = request.GET.get('q')
            p = int(request.GET.get('page', 1))
            if q:
                re = group.search(q)
                context['title'] = "Groups in search"
            elif grouptype:
                re = group.listByType(grouptype)
                context['title'] = grouptype.capitalize() + " Groups Manage"
            else:
                re = group.showAll()
                context['title'] = "Group List"
            if re:
                page = Paginator(re, 10)
                if p > 0 and p <= page.num_pages:
                    context['page'] = page.page(p)
                else:
                    context['page'] = page.page(1)
                context['num_pages'] = page.num_pages
                for p in context['page']:
                    p.setUrl("/cmdb/group/" + str(p.id))
            context['uri'] = 'group'
            context['with_group'] = False
            context['with_new'] = True
            return render(request, 'list.html', context)
    else:
        if request.method == "POST":
            meth = request.POST.get('_method', 'show')
            if meth == 'delete':
                group.delete(groupid)
                return HttpResponse("ok")
            if meth == 'edit':
                name = request.POST.get('name')
                add_list = request.POST.get('add')
                if add_list:
                    group.addMember(groupid, add_list.split(','))
                del_list = request.POST.get('del')
                if del_list:
                    group.delMember(groupid, del_list.split(','))
                group.changeName(groupid, name)
                return HttpResponse("ok")
        else:
            re = group.show(groupid)
            if re:
                context = {}
                context['group'] = group.show(groupid)
                context['members'] = group.getMember(groupid)
                context['title'] = "Group Info"
                if context['group'].type == "Host":
                    for p in context['members']:
                        p.setIP(host.getIP(p.id))
                return render(request, 'core/group.html', context)
            else:
                return HttpResponseRedirect("/cmdb/group")
Beispiel #8
0
def relationship(request, function, functype=''):
    if request.method == "POST":
        if function == 'add':
            if functype == 'single2single':
                hosts = request.POST.get('host')
                configs = request.POST.get('config')
                if hosts and configs:
                    h = host.get(hosts)
                    c = config.get(configs)
                    if h and c:
                        host.addConfig(h, c)
            elif functype == 'group2single':
                hosts = request.POST.get('host')
                configs = request.POST.get('config')
                if hosts and configs:
                    h = host.get(hosts)
                    configlist = group.getMember(configs)
                    if h and configlist:
                        for c in configlist:
                            host.addConfig(h, c)
            elif functype == 'single2group':
                hosts = request.POST.get('host')
                configs = request.POST.get('config')
                if hosts and configs:
                    hostlist = group.getMember(hosts)
                    c = config.get(configs)
                    if hostlist and c:
                        for h in hostlist:
                            host.addConfig(h, c)
            elif functype == 'group2group':
                hosts = request.POST.get('host')
                configs = request.POST.get('config')
                if hosts and configs:
                    hostlist = group.getMember(hosts)
                    configlist = group.getMember(configs)
                    if hostlist and configlist:
                        for h in hostlist:
                            for c in configlist:
                                host.addConfig(h, c)
        if function == 'remove':
            hosts = request.POST.get('host')
            configs = request.POST.get('config')
            if functype == 'single2single':
                hosts = request.POST.get('host')
                configs = request.POST.get('config')
                if hosts and configs:
                    h = host.get(hosts)
                    c = config.get(configs)
                    if h and c:
                        host.removeConfig(h, c)
            elif functype == 'group2single':
                hosts = request.POST.get('host')
                configs = request.POST.get('config')
                if hosts and configs:
                    h = host.get(hosts)
                    configlist = group.getMember(configs)
                    if h and configlist:
                        for c in configlist:
                            host.removeConfig(h, c)
            elif functype == 'single2group':
                hosts = request.POST.get('host')
                configs = request.POST.get('config')
                if hosts and configs:
                    hostlist = group.getMember(hosts)
                    c = config.get(configs)
                    if hostlist and c:
                        for h in hostlist:
                            host.removeConfig(h, c)
            elif functype == 'group2group':
                hosts = request.POST.get('host')
                configs = request.POST.get('config')
                if hosts and configs:
                    hostlist = group.getMember(hosts)
                    configlist = group.getMember(configs)
                    if hostlist and configlist:
                        for h in hostlist:
                            for c in configlist:
                                host.removeConfig(h, c)
        return HttpResponse("ok")
    else:
        context = {}
        context['title'] = "Host and Config Relationship Manage"
        context['function'] = function
        context['hostlist'] = host.showAll()
        context['configlist'] = config.showAll()
        context['hostgrouplist'] = group.listByType("Host")
        context['configgrouplist'] = group.listByType("CONFIG")
        return render(request, 'core/relationship.html', context)