1. 程式人生 > >Django SimpleCMDB API

Django SimpleCMDB API

gets pattern cmdb ali rep div 數據 圖片 append

編寫一個API,當我們訪問 http://192.168.216.128:8000/hostinfo/getjson 時,返回 json 格式的主機組和組成員信息:

[root@localhost SimpleCMDB]$ cat SimpleCMDB/urls.py
....
urlpatterns = patterns(‘‘,
    ....
    url(r^hostinfo/getjson/$, hostinfo.views.getjson),
)
[root@localhost SimpleCMDB]$ cat hostinfo/views.py
from django.shortcuts import
render from django.http import HttpResponse from hostinfo.models import Host, HostGroup import json ....

def getjson(request): data = [] host_group = HostGroup.objects.all() for group in host_group: result = {groupname: group.group_name, members: []} for hosts in
group.group_members.all(): hostinfo = {hostname: hosts.hostname, ip: hosts.ip, vendor: hosts.vendor, product: hosts.product, sn: hosts.sn, cpu_model: hosts.cpu_model,
cpu_num: hosts.cpu_num, memory: hosts.memory, osver: hosts.osver} result[members].append(hostinfo) data.append(result) return HttpResponse(json.dumps(data))

技術分享圖片

編寫一個API,當我們訪問 http://192.168.216.128:8000/hostinfo/getshell 時,返回 shell 格式的主機組和組成員信息(返回 shell 格式的信息,主要是為了我們能在 Linux 下使用 grep 、awk 等對返回的數據做進一步處理):

[root@localhost SimpleCMDB]$ cat SimpleCMDB/urls.py
....
urlpatterns = patterns(‘‘,
    ....
    url(r^hostinfo/getshell/$, hostinfo.views.getshell),
)
[root@localhost SimpleCMDB]$ cat hostinfo/views.py
from django.shortcuts import render
from django.http import HttpResponse
from hostinfo.models import Host, HostGroup
import json

....def getshell(request):
    data = ‘‘
    host_group = HostGroup.objects.all()
    for group in host_group:
        groupname = group.group_name
        for hosts in group.group_members.all():
            hostname = hosts.hostname
            ip = hosts.ip
            vendor = hosts.vendor
            product = hosts.product
            sn = hosts.sn
            cpu_model = hosts.cpu_model
            cpu_num = hosts.cpu_num
            memory = hosts.memory
            osver = hosts.osver
            data += groupname +   + hostname +   + ip +   + osver +   + memory + \n

    return HttpResponse(data)

技術分享圖片

Django SimpleCMDB API