55 lines
1.6 KiB
Python
55 lines
1.6 KiB
Python
# This file is part of dnmapper, an AS--level mapping tool
|
|
# Licensed under GNU General Public License v3 or later
|
|
# Written by Sebastian Lohff (seba@someserver.de)
|
|
|
|
from tastypie.resources import ModelResource, ALL_WITH_RELATIONS, ALL
|
|
from tastypie import fields
|
|
from bgpdata.models import AS, CrawlRun, Announcement, BorderRouter
|
|
|
|
|
|
class ASResource(ModelResource):
|
|
crawl = fields.ForeignKey("bgpdata.api.CrawlResource", "crawl")
|
|
|
|
class Meta:
|
|
list_allowed_methods = ['get']
|
|
detail_allowed_methods = ['get']
|
|
filtering = {'crawl': ALL_WITH_RELATIONS, 'number': ALL}
|
|
|
|
queryset = AS.objects.all()
|
|
resource_name = "as"
|
|
|
|
|
|
class CrawlResource(ModelResource):
|
|
class Meta:
|
|
queryset = CrawlRun.objects.all()
|
|
resource_name = "crawl"
|
|
excludes = ["graph"]
|
|
|
|
|
|
class CrawlGraphResource(ModelResource):
|
|
class Meta:
|
|
queryset = CrawlRun.objects.all()
|
|
resource_name = "crawl_graph"
|
|
|
|
|
|
class BorderRouterResource(ModelResource):
|
|
AS = fields.ForeignKey("bgpdata.api.ASResource", "AS")
|
|
|
|
class Meta:
|
|
list_allowed_methods = ['get']
|
|
detail_allowed_methods = ['get']
|
|
filtering = {'AS': ALL_WITH_RELATIONS}
|
|
|
|
queryset = BorderRouter.objects.all()
|
|
resource_name = "borderrouter"
|
|
|
|
|
|
class AnnouncementResource(ModelResource):
|
|
router = fields.ForeignKey("bgpdata.api.BorderRouterResource", "router")
|
|
|
|
class Meta:
|
|
list_allowed_methods = ['get']
|
|
detail_allowed_methods = ['get']
|
|
filtering = {'originAS': ALL_WITH_RELATIONS, 'crawlAS': ALL_WITH_RELATIONS, 'router': ALL_WITH_RELATIONS}
|
|
queryset = Announcement.objects.all()
|