urls.py 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. from django.conf.urls import include, url
  2. from rest_framework import routers
  3. from extras.models import GRAPH_TYPE_INTERFACE, GRAPH_TYPE_SITE
  4. from extras.api.views import GraphListView, TopologyMapView
  5. from . import views
  6. router = routers.DefaultRouter()
  7. router.register(r'sites', views.SiteViewSet)
  8. router.register(r'rack-groups', views.RackGroupViewSet)
  9. router.register(r'rack-roles', views.RackRoleViewSet)
  10. router.register(r'racks', views.RackViewSet)
  11. router.register(r'manufacturers', views.ManufacturerViewSet)
  12. router.register(r'device-types', views.DeviceTypeViewSet)
  13. router.register(r'device-roles', views.DeviceRoleViewSet)
  14. router.register(r'platforms', views.PlatformViewSet)
  15. router.register(r'devices', views.DeviceViewSet)
  16. router.register(r'interface-connections', views.InterfaceConnectionViewSet)
  17. urlpatterns = [
  18. url(r'', include(router.urls)),
  19. # Sites
  20. url(r'^sites/(?P<pk>\d+)/graphs/$', GraphListView.as_view(), {'type': GRAPH_TYPE_SITE}, name='site_graphs'),
  21. # Racks
  22. url(r'^racks/(?P<pk>\d+)/rack-units/$', views.RackUnitListView.as_view(), name='rack_units'),
  23. # Device types
  24. # TODO: Nested DeviceType components
  25. # Devices
  26. url(r'^devices/(?P<pk>\d+)/lldp-neighbors/$', views.LLDPNeighborsView.as_view(), name='device_lldp-neighbors'),
  27. url(r'^devices/(?P<pk>\d+)/console-ports/$', views.NestedConsolePortViewSet.as_view({'get': 'list'}), name='device_consoleports'),
  28. url(r'^devices/(?P<pk>\d+)/console-server-ports/$', views.NestedConsoleServerPortViewSet.as_view({'get': 'list'}), name='device_consoleserverports'),
  29. url(r'^devices/(?P<pk>\d+)/power-ports/$', views.NestedPowerPortViewSet.as_view({'get': 'list'}), name='device_powerports'),
  30. url(r'^devices/(?P<pk>\d+)/power-outlets/$', views.NestedPowerOutletViewSet.as_view({'get': 'list'}), name='device_poweroutlets'),
  31. url(r'^devices/(?P<pk>\d+)/interfaces/$', views.NestedInterfaceViewSet.as_view({'get': 'list'}), name='device_interfaces'),
  32. url(r'^devices/(?P<pk>\d+)/device-bays/$', views.NestedDeviceBayViewSet.as_view({'get': 'list'}), name='device_devicebays'),
  33. url(r'^devices/(?P<pk>\d+)/modules/$', views.NestedModuleViewSet.as_view({'get': 'list'}), name='device_modules'),
  34. # TODO: Services
  35. # Console ports
  36. url(r'^console-ports/(?P<pk>\d+)/$', views.ConsolePortViewSet.as_view({'get': 'retrieve'}), name='consoleport'),
  37. # Console server ports
  38. url(r'^console-server-ports/(?P<pk>\d+)/$', views.ConsoleServerPortViewSet.as_view({'get': 'retrieve'}), name='consoleserverport'),
  39. # Power ports
  40. url(r'^power-ports/(?P<pk>\d+)/$', views.PowerPortViewSet.as_view({'get': 'retrieve'}), name='powerport'),
  41. # Power outlets
  42. url(r'^power-outlets/(?P<pk>\d+)/$', views.PowerOutletViewSet.as_view({'get': 'retrieve'}), name='poweroutlet'),
  43. # Interfaces
  44. url(r'^interfaces/(?P<pk>\d+)/$', views.InterfaceViewSet.as_view({'get': 'retrieve'}), name='interface'),
  45. url(r'^interfaces/(?P<pk>\d+)/graphs/$', GraphListView.as_view(), {'type': GRAPH_TYPE_INTERFACE},
  46. name='interface_graphs'),
  47. # Device bays
  48. url(r'^device-bays/(?P<pk>\d+)/$', views.DeviceBayViewSet.as_view({'get': 'retrieve'}), name='devicebay'),
  49. # Modules
  50. url(r'^modules/(?P<pk>\d+)/$', views.ModuleViewSet.as_view({'get': 'retrieve'}), name='module'),
  51. # Miscellaneous
  52. url(r'^related-connections/$', views.RelatedConnectionsView.as_view(), name='related_connections'),
  53. url(r'^topology-maps/(?P<slug>[\w-]+)/$', TopologyMapView.as_view(), name='topology_map'),
  54. ]