| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- from django.shortcuts import render
- from backend.mongodb import db
- from exfo.lib import Exfo
- from pprint import pprint
- from ttp import ttp
- from django.http import JsonResponse
- exfo = Exfo("administrator", "exf0w0rxC@t4dm!n")
- exfo.login()
- def index(request):
- collection = db['mascot']
- mascot_details = collection.find({})
- rapi = exfo.list_api()
- sla = exfo.call_api("sla")
-
- data_to_parse = """
- interface Loopback0
- description Router-id-loopback
- ip address 192.168.0.113/24
- !
- interface Vlan778
- description CPE_Acces_Vlan
- ip address 2002::fd37/124
- ip vrf CPE1
- !
- """
- ttp_template = """
- interface {{ interface }}
- ip address {{ ip }}/{{ mask }}
- description {{ description }}
- ip vrf {{ vrf }}
- """
- template = """
- <input load="text">
- interface Loopback0
- description Router-id-loopback
- ip address 192.168.0.113/24
- !
- interface Loopback1
- description Router-id-loopback
- ip address 192.168.0.1/24
- !
- interface Vlan778
- ip address 2002::fd37/124
- ip vrf CPE1
- !
- interface Vlan779
- ip address 2002::bbcd/124
- ip vrf CPE2
- !
- </input>
- <group name="loopbacks_new**.{{ interface }}">
- interface {{ interface | contains("Loop") }}
- ip address {{ ip }}/{{ mask }}
- description {{ description }}
- ip vrf {{ vrf }}
- </group>
- <group name="vlans*">
- interface {{ interface | contains("Vlan") }}
- ip address {{ ip }}/{{ mask }}
- description {{ description }}
- ip vrf {{ vrf }}
- </group>
- """
- parser = ttp(template=template)
- parser.parse()
- # form excel table and save in file
- parser.result(
- format="excel",
- filename="excel_out_test_excel_formatter_update.xlsx",
- returner="file",
- update=True,
- url="./Output/",
- table=[
- {
- "headers": ["interface", "ip", "mask", "vrf", "description"],
- "path": "loopbacks_new",
- "key": "interface",
- "tab_name": "loopbacks_new",
- },
- {"path": "vlans"},
- ],
- )
- # create parser object and parse data using template:
- # parser = ttp(data=data_to_parse, template=ttp_template)
- # parser.parse()
- # # print result in JSON format
- # results = parser.result(format='xlsx')[0]
- # pprint(results)
- return render(request, 'backend/index.html', {'objs': mascot_details, 'output': rapi.json(),\
- 'sla': sla.json()})
- #Define Collection
- def remote(request):
- cmd = request.GET.get('cmd', None)
- # exfo = Exfo("administrator", "exf0w0rxC@t4dm!n")
- # exfo.login()
- r = exfo.call_remote_api(cmd)
- pprint(r.json())
- # return JsonResponse(r.json())
- return render(request, 'backend/remote_render.html', {'res': r})
-
|