2016-09-29 16:32:16 -04:00
|
|
|
from django.conf import settings
|
2016-03-01 11:23:03 -05:00
|
|
|
from django.conf.urls import include, url
|
2017-03-30 21:55:57 -04:00
|
|
|
from django.views.static import serve
|
2018-02-22 17:46:50 -05:00
|
|
|
from drf_yasg import openapi
|
2018-11-02 15:20:08 -04:00
|
|
|
from drf_yasg.views import get_schema_view
|
2016-03-01 11:23:03 -05:00
|
|
|
|
2017-11-03 13:24:31 -04:00
|
|
|
from netbox.views import APIRootView, HomeView, SearchView
|
2017-05-19 15:47:19 -04:00
|
|
|
from users.views import LoginView, LogoutView
|
2018-08-16 09:44:00 -04:00
|
|
|
from .admin import admin_site
|
2016-03-01 11:23:03 -05:00
|
|
|
|
2018-02-22 17:46:50 -05:00
|
|
|
schema_view = get_schema_view(
|
|
|
|
openapi.Info(
|
|
|
|
title="NetBox API",
|
|
|
|
default_version='v2',
|
|
|
|
description="API to access NetBox",
|
|
|
|
terms_of_service="https://github.com/digitalocean/netbox",
|
|
|
|
contact=openapi.Contact(email="netbox@digitalocean.com"),
|
|
|
|
license=openapi.License(name="Apache v2 License"),
|
|
|
|
),
|
|
|
|
validators=['flex', 'ssv'],
|
|
|
|
public=True,
|
|
|
|
)
|
2016-07-15 11:04:03 -04:00
|
|
|
|
2016-09-30 11:19:50 -04:00
|
|
|
_patterns = [
|
|
|
|
|
2017-03-29 12:04:57 -04:00
|
|
|
# Base views
|
2017-05-19 16:03:51 -04:00
|
|
|
url(r'^$', HomeView.as_view(), name='home'),
|
2017-03-29 12:04:57 -04:00
|
|
|
url(r'^search/$', SearchView.as_view(), name='search'),
|
2016-09-30 11:19:50 -04:00
|
|
|
|
|
|
|
# Login/logout
|
2017-05-19 15:47:19 -04:00
|
|
|
url(r'^login/$', LoginView.as_view(), name='login'),
|
|
|
|
url(r'^logout/$', LogoutView.as_view(), name='logout'),
|
2016-09-30 11:19:50 -04:00
|
|
|
|
|
|
|
# Apps
|
2017-04-05 14:26:33 -04:00
|
|
|
url(r'^circuits/', include('circuits.urls')),
|
|
|
|
url(r'^dcim/', include('dcim.urls')),
|
|
|
|
url(r'^extras/', include('extras.urls')),
|
|
|
|
url(r'^ipam/', include('ipam.urls')),
|
|
|
|
url(r'^secrets/', include('secrets.urls')),
|
|
|
|
url(r'^tenancy/', include('tenancy.urls')),
|
|
|
|
url(r'^user/', include('users.urls')),
|
2017-08-04 17:02:52 -04:00
|
|
|
url(r'^virtualization/', include('virtualization.urls')),
|
2016-09-30 11:19:50 -04:00
|
|
|
|
|
|
|
# API
|
2017-03-21 13:23:56 -04:00
|
|
|
url(r'^api/$', APIRootView.as_view(), name='api-root'),
|
2017-04-05 14:26:33 -04:00
|
|
|
url(r'^api/circuits/', include('circuits.api.urls')),
|
|
|
|
url(r'^api/dcim/', include('dcim.api.urls')),
|
|
|
|
url(r'^api/extras/', include('extras.api.urls')),
|
|
|
|
url(r'^api/ipam/', include('ipam.api.urls')),
|
|
|
|
url(r'^api/secrets/', include('secrets.api.urls')),
|
|
|
|
url(r'^api/tenancy/', include('tenancy.api.urls')),
|
2017-08-08 16:33:34 -04:00
|
|
|
url(r'^api/virtualization/', include('virtualization.api.urls')),
|
2018-07-02 15:25:49 -04:00
|
|
|
url(r'^api/docs/$', schema_view.with_ui('swagger'), name='api_docs'),
|
|
|
|
url(r'^api/redoc/$', schema_view.with_ui('redoc'), name='api_redocs'),
|
|
|
|
url(r'^api/swagger(?P<format>.json|.yaml)$', schema_view.without_ui(), name='schema_swagger'),
|
2016-09-30 11:19:50 -04:00
|
|
|
|
2017-03-31 15:51:17 -04:00
|
|
|
# Serving static media in Django to pipe it through LoginRequiredMiddleware
|
|
|
|
url(r'^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}),
|
|
|
|
|
2016-09-30 11:19:50 -04:00
|
|
|
# Admin
|
2018-08-16 09:44:00 -04:00
|
|
|
url(r'^admin/', admin_site.urls),
|
2016-09-29 16:32:16 -04:00
|
|
|
|
2016-09-30 11:19:50 -04:00
|
|
|
]
|
2016-05-18 16:35:35 -04:00
|
|
|
|
2018-05-30 14:51:59 -04:00
|
|
|
if settings.WEBHOOKS_ENABLED:
|
2018-05-30 11:19:10 -04:00
|
|
|
_patterns += [
|
|
|
|
url(r'^admin/webhook-backend-status/', include('django_rq.urls')),
|
|
|
|
]
|
|
|
|
|
2016-12-26 12:15:14 -05:00
|
|
|
if settings.DEBUG:
|
|
|
|
import debug_toolbar
|
|
|
|
_patterns += [
|
|
|
|
url(r'^__debug__/', include(debug_toolbar.urls)),
|
|
|
|
]
|
|
|
|
|
2019-04-25 01:09:19 -04:00
|
|
|
if settings.METRICS_ENABLED:
|
|
|
|
_patterns += [
|
|
|
|
url('', include('django_prometheus.urls')),
|
|
|
|
]
|
|
|
|
|
2016-09-30 11:19:50 -04:00
|
|
|
# Prepend BASE_PATH
|
|
|
|
urlpatterns = [
|
|
|
|
url(r'^{}'.format(settings.BASE_PATH), include(_patterns))
|
2016-03-01 11:23:03 -05:00
|
|
|
]
|
2018-07-23 23:00:09 -04:00
|
|
|
|
|
|
|
handler500 = 'utilities.views.server_error'
|