3
3
from drf_yasg import openapi
4
4
from drf_yasg .openapi import Parameter
5
5
from drf_yasg .utils import swagger_auto_schema
6
+ from netbox .api .authentication import IsAuthenticatedOrLoginNotRequired
6
7
from rest_framework import serializers , status
7
8
from rest_framework .response import Response
8
9
from rest_framework .views import APIView
9
10
10
- from netbox .api .authentication import IsAuthenticatedOrLoginNotRequired
11
11
from netbox_cmdb .models .bgp import BGPPeerGroup , BGPSession , DeviceBGPSession
12
+ from netbox_cmdb .models .bgp_community_list import BGPCommunityList
12
13
from netbox_cmdb .models .prefix_list import PrefixList
13
14
from netbox_cmdb .models .route_policy import RoutePolicy
14
15
from netbox_cmdb .models .snmp import SNMP
@@ -37,8 +38,8 @@ def post(self, request):
37
38
{"error" : "Device name is required" }, status = status .HTTP_400_BAD_REQUEST
38
39
)
39
40
40
- with transaction . atomic () :
41
- try :
41
+ try :
42
+ with transaction . atomic () :
42
43
# Delete objects in reverse order of dependencies
43
44
BGPSession .objects .filter (
44
45
Q (peer_a__device__name = device_name ) | Q (peer_b__device__name = device_name )
@@ -47,9 +48,10 @@ def post(self, request):
47
48
BGPPeerGroup .objects .filter (device__name = device_name ).delete ()
48
49
RoutePolicy .objects .filter (device__name = device_name ).delete ()
49
50
PrefixList .objects .filter (device__name = device_name ).delete ()
51
+ BGPCommunityList .objects .filter (device_name = device_name ).delete ()
50
52
SNMP .objects .filter (device__name = device_name ).delete ()
51
- except Exception as e :
52
- return Response ({"error" : str (e )}, status = status .HTTP_500_INTERNAL_SERVER_ERROR )
53
+ except Exception as e :
54
+ return Response ({"error" : str (e )}, status = status .HTTP_500_INTERNAL_SERVER_ERROR )
53
55
54
56
return Response (
55
57
{"message" : f"Objects related to device { device_name } have been deleted successfully" },
0 commit comments