@@ -2822,25 +2822,72 @@ def setUpTestData(cls):
2822
2822
)
2823
2823
Rack .objects .bulk_create (racks )
2824
2824
2825
+ # VirtualChassis assignment for filtering
2826
+ virtual_chassis = VirtualChassis (name = 'Virtual Chassis' )
2827
+ virtual_chassis .save ()
2828
+
2825
2829
devices = (
2826
- Device (name = 'Device 1' , device_type = device_types [0 ], role = roles [0 ], site = sites [0 ], location = locations [0 ], rack = racks [0 ]),
2827
- Device (name = 'Device 2' , device_type = device_types [1 ], role = roles [1 ], site = sites [1 ], location = locations [1 ], rack = racks [1 ]),
2828
- Device (name = 'Device 3' , device_type = device_types [2 ], role = roles [2 ], site = sites [2 ], location = locations [2 ], rack = racks [2 ]),
2829
- Device (name = None , device_type = device_types [2 ], role = roles [2 ], site = sites [3 ]), # For cable connections
2830
+ Device (
2831
+ name = 'Device 1A' ,
2832
+ device_type = device_types [0 ],
2833
+ role = roles [0 ],
2834
+ site = sites [0 ],
2835
+ location = locations [0 ],
2836
+ rack = racks [0 ],
2837
+ virtual_chassis = virtual_chassis ,
2838
+ vc_position = 1 ,
2839
+ vc_priority = 1
2840
+ ),
2841
+ Device (
2842
+ name = 'Device 1B' ,
2843
+ device_type = device_types [2 ],
2844
+ role = roles [2 ],
2845
+ site = sites [2 ],
2846
+ location = locations [2 ],
2847
+ rack = racks [2 ],
2848
+ virtual_chassis = virtual_chassis ,
2849
+ vc_position = 2 ,
2850
+ vc_priority = 1
2851
+ ),
2852
+ Device (
2853
+ name = 'Device 2' ,
2854
+ device_type = device_types [1 ],
2855
+ role = roles [1 ],
2856
+ site = sites [1 ],
2857
+ location = locations [1 ],
2858
+ rack = racks [1 ]
2859
+ ),
2860
+ Device (
2861
+ name = 'Device 3' ,
2862
+ device_type = device_types [2 ],
2863
+ role = roles [2 ],
2864
+ site = sites [2 ],
2865
+ location = locations [2 ],
2866
+ rack = racks [2 ]
2867
+ ),
2868
+ # For cable connections
2869
+ Device (
2870
+ name = None ,
2871
+ device_type = device_types [2 ],
2872
+ role = roles [2 ],
2873
+ site = sites [3 ]
2874
+ ),
2830
2875
)
2831
2876
Device .objects .bulk_create (devices )
2832
2877
2833
2878
module_bays = (
2834
2879
ModuleBay (device = devices [0 ], name = 'Module Bay 1' ),
2835
2880
ModuleBay (device = devices [1 ], name = 'Module Bay 2' ),
2836
2881
ModuleBay (device = devices [2 ], name = 'Module Bay 3' ),
2882
+ ModuleBay (device = devices [3 ], name = 'Module Bay 4' ),
2837
2883
)
2838
2884
ModuleBay .objects .bulk_create (module_bays )
2839
2885
2840
2886
modules = (
2841
2887
Module (device = devices [0 ], module_bay = module_bays [0 ], module_type = module_type ),
2842
2888
Module (device = devices [1 ], module_bay = module_bays [1 ], module_type = module_type ),
2843
2889
Module (device = devices [2 ], module_bay = module_bays [2 ], module_type = module_type ),
2890
+ Module (device = devices [3 ], module_bay = module_bays [3 ], module_type = module_type ),
2844
2891
)
2845
2892
Module .objects .bulk_create (modules )
2846
2893
@@ -2853,16 +2900,11 @@ def setUpTestData(cls):
2853
2900
2854
2901
# Virtual Device Context Creation
2855
2902
vdcs = (
2856
- VirtualDeviceContext (device = devices [3 ], name = 'VDC 1' , identifier = 1 , status = VirtualDeviceContextStatusChoices .STATUS_ACTIVE ),
2857
- VirtualDeviceContext (device = devices [3 ], name = 'VDC 2' , identifier = 2 , status = VirtualDeviceContextStatusChoices .STATUS_PLANNED ),
2903
+ VirtualDeviceContext (device = devices [4 ], name = 'VDC 1' , identifier = 1 , status = VirtualDeviceContextStatusChoices .STATUS_ACTIVE ),
2904
+ VirtualDeviceContext (device = devices [4 ], name = 'VDC 2' , identifier = 2 , status = VirtualDeviceContextStatusChoices .STATUS_PLANNED ),
2858
2905
)
2859
2906
VirtualDeviceContext .objects .bulk_create (vdcs )
2860
2907
2861
- # VirtualChassis assignment for filtering
2862
- virtual_chassis = VirtualChassis .objects .create (master = devices [0 ])
2863
- Device .objects .filter (pk = devices [0 ].pk ).update (virtual_chassis = virtual_chassis , vc_position = 1 , vc_priority = 1 )
2864
- Device .objects .filter (pk = devices [1 ].pk ).update (virtual_chassis = virtual_chassis , vc_position = 2 , vc_priority = 2 )
2865
-
2866
2908
interfaces = (
2867
2909
Interface (
2868
2910
device = devices [0 ],
@@ -2885,6 +2927,13 @@ def setUpTestData(cls):
2885
2927
Interface (
2886
2928
device = devices [1 ],
2887
2929
module = modules [1 ],
2930
+ name = 'VC Chassis Interface' ,
2931
+ type = InterfaceTypeChoices .TYPE_1GE_SFP ,
2932
+ enabled = True
2933
+ ),
2934
+ Interface (
2935
+ device = devices [2 ],
2936
+ module = modules [2 ],
2888
2937
name = 'Interface 2' ,
2889
2938
label = 'B' ,
2890
2939
type = InterfaceTypeChoices .TYPE_1GE_GBIC ,
@@ -2901,8 +2950,8 @@ def setUpTestData(cls):
2901
2950
poe_type = InterfacePoETypeChoices .TYPE_1_8023AF
2902
2951
),
2903
2952
Interface (
2904
- device = devices [2 ],
2905
- module = modules [2 ],
2953
+ device = devices [3 ],
2954
+ module = modules [3 ],
2906
2955
name = 'Interface 3' ,
2907
2956
label = 'C' ,
2908
2957
type = InterfaceTypeChoices .TYPE_1GE_FIXED ,
@@ -2919,7 +2968,7 @@ def setUpTestData(cls):
2919
2968
poe_type = InterfacePoETypeChoices .TYPE_2_8023AT
2920
2969
),
2921
2970
Interface (
2922
- device = devices [3 ],
2971
+ device = devices [4 ],
2923
2972
name = 'Interface 4' ,
2924
2973
label = 'D' ,
2925
2974
type = InterfaceTypeChoices .TYPE_OTHER ,
@@ -2932,7 +2981,7 @@ def setUpTestData(cls):
2932
2981
poe_type = InterfacePoETypeChoices .TYPE_2_8023AT
2933
2982
),
2934
2983
Interface (
2935
- device = devices [3 ],
2984
+ device = devices [4 ],
2936
2985
name = 'Interface 5' ,
2937
2986
label = 'E' ,
2938
2987
type = InterfaceTypeChoices .TYPE_OTHER ,
@@ -2941,7 +2990,7 @@ def setUpTestData(cls):
2941
2990
tx_power = 40
2942
2991
),
2943
2992
Interface (
2944
- device = devices [3 ],
2993
+ device = devices [4 ],
2945
2994
name = 'Interface 6' ,
2946
2995
label = 'F' ,
2947
2996
type = InterfaceTypeChoices .TYPE_OTHER ,
@@ -2950,7 +2999,7 @@ def setUpTestData(cls):
2950
2999
tx_power = 40
2951
3000
),
2952
3001
Interface (
2953
- device = devices [3 ],
3002
+ device = devices [4 ],
2954
3003
name = 'Interface 7' ,
2955
3004
type = InterfaceTypeChoices .TYPE_80211AC ,
2956
3005
rf_role = WirelessRoleChoices .ROLE_AP ,
@@ -2959,7 +3008,7 @@ def setUpTestData(cls):
2959
3008
rf_channel_width = 22
2960
3009
),
2961
3010
Interface (
2962
- device = devices [3 ],
3011
+ device = devices [4 ],
2963
3012
name = 'Interface 8' ,
2964
3013
type = InterfaceTypeChoices .TYPE_80211AC ,
2965
3014
rf_role = WirelessRoleChoices .ROLE_STATION ,
@@ -2977,8 +3026,8 @@ def setUpTestData(cls):
2977
3026
interfaces [7 ].vdcs .set ([vdcs [1 ]])
2978
3027
2979
3028
# Cables
2980
- Cable (a_terminations = [interfaces [0 ]], b_terminations = [interfaces [3 ]]).save ()
2981
- Cable (a_terminations = [interfaces [1 ]], b_terminations = [interfaces [4 ]]).save ()
3029
+ Cable (a_terminations = [interfaces [0 ]], b_terminations = [interfaces [5 ]]).save ()
3030
+ Cable (a_terminations = [interfaces [1 ]], b_terminations = [interfaces [6 ]]).save ()
2982
3031
# Third pair is not connected
2983
3032
2984
3033
def test_name (self ):
@@ -2991,7 +3040,7 @@ def test_label(self):
2991
3040
2992
3041
def test_enabled (self ):
2993
3042
params = {'enabled' : 'true' }
2994
- self .assertEqual (self .filterset (params , self .queryset ).qs .count (), 6 )
3043
+ self .assertEqual (self .filterset (params , self .queryset ).qs .count (), 7 )
2995
3044
params = {'enabled' : 'false' }
2996
3045
self .assertEqual (self .filterset (params , self .queryset ).qs .count (), 2 )
2997
3046
@@ -3011,7 +3060,7 @@ def test_mgmt_only(self):
3011
3060
params = {'mgmt_only' : 'true' }
3012
3061
self .assertEqual (self .filterset (params , self .queryset ).qs .count (), 4 )
3013
3062
params = {'mgmt_only' : 'false' }
3014
- self .assertEqual (self .filterset (params , self .queryset ).qs .count (), 4 )
3063
+ self .assertEqual (self .filterset (params , self .queryset ).qs .count (), 5 )
3015
3064
3016
3065
def test_poe_mode (self ):
3017
3066
params = {'poe_mode' : [InterfacePoEModeChoices .MODE_PD , InterfacePoEModeChoices .MODE_PSE ]}
@@ -3116,6 +3165,14 @@ def test_device(self):
3116
3165
params = {'device' : [devices [0 ].name , devices [1 ].name ]}
3117
3166
self .assertEqual (self .filterset (params , self .queryset ).qs .count (), 2 )
3118
3167
3168
+ def test_virtual_chassis_member (self ):
3169
+ # Device 1A & 3 have 1 management interface, Device 1B has 1 interfaces
3170
+ devices = Device .objects .filter (name__in = ['Device 1A' , 'Device 3' ])
3171
+ params = {'virtual_chassis_member_id' : [devices [0 ].pk , devices [1 ].pk ]}
3172
+ self .assertEqual (self .filterset (params , self .queryset ).qs .count (), 3 )
3173
+ params = {'virtual_chassis_member' : [devices [0 ].name , devices [1 ].name ]}
3174
+ self .assertEqual (self .filterset (params , self .queryset ).qs .count (), 3 )
3175
+
3119
3176
def test_module (self ):
3120
3177
modules = Module .objects .all ()[:2 ]
3121
3178
params = {'module_id' : [modules [0 ].pk , modules [1 ].pk ]}
@@ -3125,23 +3182,23 @@ def test_cabled(self):
3125
3182
params = {'cabled' : True }
3126
3183
self .assertEqual (self .filterset (params , self .queryset ).qs .count (), 4 )
3127
3184
params = {'cabled' : False }
3128
- self .assertEqual (self .filterset (params , self .queryset ).qs .count (), 4 )
3185
+ self .assertEqual (self .filterset (params , self .queryset ).qs .count (), 5 )
3129
3186
3130
3187
def test_occupied (self ):
3131
3188
params = {'occupied' : True }
3132
3189
self .assertEqual (self .filterset (params , self .queryset ).qs .count (), 4 )
3133
3190
params = {'occupied' : False }
3134
- self .assertEqual (self .filterset (params , self .queryset ).qs .count (), 4 )
3191
+ self .assertEqual (self .filterset (params , self .queryset ).qs .count (), 5 )
3135
3192
3136
3193
def test_connected (self ):
3137
3194
params = {'connected' : True }
3138
3195
self .assertEqual (self .filterset (params , self .queryset ).qs .count (), 4 )
3139
3196
params = {'connected' : False }
3140
- self .assertEqual (self .filterset (params , self .queryset ).qs .count (), 4 )
3197
+ self .assertEqual (self .filterset (params , self .queryset ).qs .count (), 5 )
3141
3198
3142
3199
def test_kind (self ):
3143
3200
params = {'kind' : 'physical' }
3144
- self .assertEqual (self .filterset (params , self .queryset ).qs .count (), 6 )
3201
+ self .assertEqual (self .filterset (params , self .queryset ).qs .count (), 7 )
3145
3202
params = {'kind' : 'virtual' }
3146
3203
self .assertEqual (self .filterset (params , self .queryset ).qs .count (), 0 )
3147
3204
0 commit comments