Closes #14861: Standardize URL path for virtual disks

This commit is contained in:
Jeremy Stretch 2024-07-24 14:29:39 -04:00
parent 8237c6accc
commit 909ee7d543
2 changed files with 22 additions and 8 deletions

View File

@ -1,4 +1,4 @@
from django.urls import include, path
from django.urls import include, path, re_path
from utilities.urls import get_model_urls
from . import views
@ -49,12 +49,16 @@ urlpatterns = [
path('virtual-machines/interfaces/add/', views.VirtualMachineBulkAddInterfaceView.as_view(), name='virtualmachine_bulk_add_vminterface'),
# Virtual disks
path('disks/', views.VirtualDiskListView.as_view(), name='virtualdisk_list'),
path('disks/add/', views.VirtualDiskCreateView.as_view(), name='virtualdisk_add'),
path('disks/import/', views.VirtualDiskBulkImportView.as_view(), name='virtualdisk_import'),
path('disks/edit/', views.VirtualDiskBulkEditView.as_view(), name='virtualdisk_bulk_edit'),
path('disks/rename/', views.VirtualDiskBulkRenameView.as_view(), name='virtualdisk_bulk_rename'),
path('disks/delete/', views.VirtualDiskBulkDeleteView.as_view(), name='virtualdisk_bulk_delete'),
path('disks/<int:pk>/', include(get_model_urls('virtualization', 'virtualdisk'))),
path('virtual-disks/', views.VirtualDiskListView.as_view(), name='virtualdisk_list'),
path('virtual-disks/add/', views.VirtualDiskCreateView.as_view(), name='virtualdisk_add'),
path('virtual-disks/import/', views.VirtualDiskBulkImportView.as_view(), name='virtualdisk_import'),
path('virtual-disks/edit/', views.VirtualDiskBulkEditView.as_view(), name='virtualdisk_bulk_edit'),
path('virtual-disks/rename/', views.VirtualDiskBulkRenameView.as_view(), name='virtualdisk_bulk_rename'),
path('virtual-disks/delete/', views.VirtualDiskBulkDeleteView.as_view(), name='virtualdisk_bulk_delete'),
path('virtual-disks/<int:pk>/', include(get_model_urls('virtualization', 'virtualdisk'))),
path('virtual-machines/disks/add/', views.VirtualMachineBulkAddVirtualDiskView.as_view(), name='virtualmachine_bulk_add_virtualdisk'),
# TODO: Remove in v4.2
# Redirect old (pre-v4.1) URLs for VirtualDisk views
re_path('disks/(?P<path>[a-z0-9/-]*)', views.VirtualDiskRedirectView.as_view()),
]

View File

@ -7,6 +7,7 @@ from django.http import HttpResponse
from django.shortcuts import get_object_or_404, redirect, render
from django.urls import reverse
from django.utils.translation import gettext as _
from django.views.generic.base import RedirectView
from jinja2.exceptions import TemplateError
from dcim.filtersets import DeviceFilterSet
@ -630,6 +631,15 @@ class VirtualDiskBulkDeleteView(generic.BulkDeleteView):
table = tables.VirtualDiskTable
# TODO: Remove in v4.2
class VirtualDiskRedirectView(RedirectView):
"""
Redirect old (pre-v4.1) URLs for VirtualDisk views.
"""
def get_redirect_url(self, path):
return f"{reverse('virtualization:virtualdisk_list')}{path}"
#
# Bulk Device component creation
#