
    >Tf@                         d dl mZ d dlmZ d dlmZmZmZm	Z	m
Z
mZ d dlT d dlT d dlT d dlmZ d dlmZ d dlmZmZ d dlmZmZmZ d d	lmZ d d
lmZmZmZ d dl m!Z! dZ" ed  e#e$e%dz             D                       Z& ed  e#e'e(dz             D                       Z) G d dee          Z* G d dee          Z+ G d de          Z, G d dee          Z- G d dee          Z. G d dee          Z/ G d de          Z0 G d dee          Z1 G d  d!ee          Z2 G d" d#ee          Z3 G d$ d%e          Z4 G d& d'e          Z5 G d( d)ee          Z6 G d* d+e          Z7 G d, d-e7          Z8d.S )/    )forms)gettext_lazy)LocationRackRegionSite	SiteGroupDevice)*)NetBoxModelFilterSetForm)TenancyFilterForm)BOOLEAN_WITH_BLANK_CHOICESadd_blank_choice)DynamicModelChoiceFieldDynamicModelMultipleChoiceFieldTagFilterField)FieldSet)VirtualMachineClusterGroupCluster)L2VPN)AggregateFilterFormASNFilterFormASNRangeFilterFormFHRPGroupFilterFormIPAddressFilterFormIPRangeFilterFormPrefixFilterFormRIRFilterFormRoleFilterFormRouteTargetFilterFormServiceFilterFormServiceTemplateFilterFormVLANFilterFormVLANGroupFilterFormVRFFilterFormc                     g | ]}||fS  r(   .0is     :/var/www/html/netbox-4.1.3/netbox/ipam/forms/filtersets.py
<listcomp>r-   "   s)     / / /QF/ / /       c                     g | ]}||fS r(   r(   r)   s     r,   r-   r-   &   s)     2 2 2QF2 2 2r.   c            	       T   e Zd ZeZ eddd           edd ed                     edd	 ed
                    fZ ee	j
                                        d ed                    Z ee	j
                                        d ed                    Z ee          ZdS )r&   q	filter_idtagimport_target_idexport_target_idzRoute Targetsnametenant_group_id	tenant_idTenantFzImport targetsquerysetrequiredlabelzExport targetsN)__name__
__module____qualname__VRFmodelr   _	fieldsetsr   RouteTargetobjectsallr5   r6   r   r4   r(   r.   r,   r&   r&   +   s        Ek5))#%7aa>P>PQQQ"KaakkBBBI
 76$((**a !!  
 76$((**a !!  
 .

CCCr.   r&   c            	       T   e Zd ZeZ eddd           edd ed                     edd	 ed
                    fZ ee	j
                                        d ed                    Z ee	j
                                        d ed                    Z ee          ZdS )r!   r2   r3   r4   importing_vrf_idexporting_vrf_idrC   r7   r9   r:   r;   FzImported by VRFr<   zExported by VRFN)r@   rA   rB   rG   rD   r   rE   rF   r   rC   rH   rI   rK   rL   r   r4   r(   r.   r,   r!   r!   ?   s        Ek5))#%7aahhGGG"KaakkBBBI
 76""a!""  
 76""a!""  
 .

CCCr.   r!   c                   ~    e Zd ZeZ ej        d ed           ej        e	                    Z
 ee          ZdS )r   FPrivatechoicesr>   r?   widgetN)r@   rA   rB   RIRrD   r   NullBooleanFieldrE   Selectr   
is_privater   r4   r(   r.   r,   r   r   S   sd        E''a	llu|.
 
 
  J .

CCCr.   r   c            	       B   e Zd ZeZ eddd           edd ed                     edd	 ed
                    fZ ej	        d e
e           ed                    Z eej                                        d ed                    Z ee          ZdS )r   r2   r3   r4   familyrir_id
Attributesr7   r9   r:   r;   FAddress familyr>   rP   r?   rS   r<   N)r@   rA   rB   	AggregaterD   r   rE   rF   r   ChoiceFieldr   IPAddressFamilyChoicesrX   r   rS   rH   rI   rY   r   r4   r(   r.   r,   r   r   _   s        Ek5))8!!L//:::"KaakkBBBI
 U  !788a !!  F
 -,""ahh  F
 .

CCCr.   r   c            	       f   e Zd ZeZ eddd           eddd ed                     ed	d
 ed                    fZ ee	j
                                        d ed                    Z ej         ed          d          Z ej         ed          d          Z ee          ZdS )r   r2   r3   r4   rY   startendRanger7   r9   r:   r;   FrS   r<   Startr?   r>   EndN)r@   rA   rB   ASNRangerD   r   rE   rF   r   rS   rH   rI   rY   r   IntegerFieldra   rb   r   r4   r(   r.   r,   r   r   s   s        Ek5))7E'

;;;"KaakkBBBI
 -,""ahh  F
 Eajj  E %
ahh  C .

CCCr.   r   c            	       T   e Zd ZeZ eddd           edd ed                     edd	 ed
                    fZ ee	j
                                        d ed                    Z eej
                                        d ed                    Z ee          ZdS )r   r2   r3   r4   rY   site_id
Assignmentr7   r9   r:   r;   FrS   r<   r   N)r@   rA   rB   ASNrD   r   rE   rF   r   rS   rH   rI   rY   r   rj   r   r4   r(   r.   r,   r   r      s        Ek5))911\??;;;"KaakkBBBI
 -,""ahh  F
 .-!!##aii  G
 .

CCCr.   r   c                   (    e Zd ZeZ ee          ZdS )r    N)r@   rA   rB   RolerD   r   r4   r(   r.   r,   r    r       s"        E
.

CCCr.   r    c                      e Zd ZeZ eddd           edddddd	d
 ed                     ed ed                     edd ed                     eddd ed                     edd ed                    fZ ej	         ej
                              Z ej        d ej        ddi           ed                    Z ej        d ee           ed           !          Z ej        de ed"          !          Z eej                                        d ed#          d$%          Z eej                                        d ed&          '          Z ej         ed(          ed)          Z eej                                        d ed*          '          Z  ee!j                                        d ed+          '          Z" ee#j                                        dd,dd-i ed.          /          Z$ ee%j                                        dd, ed0          1          Z& ej'        d ed2           ej(        e)3          4          Z* ej'        d ed5           ej(        e)3          4          Z+ ee,j                                        d ed6          '          Z- e.e          Z/d7S )8r   r2   r3   r4   within_includerX   statusrole_idmask_lengthis_poolmark_utilized
Addressingr7   vlan_idzVLAN Assignmentvrf_idpresent_in_vrf_idrC   	region_idsite_group_idrj   r   r9   r:   r;   )rR   FplaceholderPrefixattrszSearch withinr>   rR   r?   r[   r\   Mask lengthAssigned VRFGlobalr=   r>   r?   null_optionPresent in VRFr<   Statusr?   rP   r>   r   
Site groupNonez
$region_idr   r=   r>   r   query_paramsr?   rn   r=   r>   r   r?   z	Is a poolrO   rQ   Treat as fully utilizedVLANN)0r@   rA   rB   r}   rD   r   rE   rF   r   rh   HiddenInputmask_length__lte	CharField	TextInputrp   r^   r   r_   rX   MultipleChoiceFieldPREFIX_MASK_LENGTH_CHOICESrs   r   rC   rH   rI   rx   r   ry   PrefixStatusChoicesrq   r   rz   r	   r{   r   rj   rn   rr   rT   rU   r   rt   ru   r   rw   r   r4   r(   r.   r,   r   r      s       Ek5))h)]IWf<	
 	
 	
 	#4!5!5666.QQuXX>>>oyqq}}MMM"KaakkBBB
I *u) u ""   %U_ux
 
 

 a    N U  !788a !!  F
 ,%+*a  K
 -,""a	  F 0/""a !!  
 'U&akk#  F
 0/##%%akk  I
 43"&&((aoo  M
 .-!!##
 aii  G .-!!##aii	  G %e$annu|.
 
 
  G +E*a)**u|.
 
 
  M .-!!##aii  G .

CCCr.   r   c                   6   e Zd ZeZ eddd           eddddd ed	          
           edd ed          
          fZ ej	        d e
e           ed                    Z eej                                        d ed          d          Z ej         ed          ed          Z eej                                        dd ed                    Z ej        d ed           ej        e                    Z ee          ZdS )r   r2   r3   r4   rX   rx   rq   rr   ru   rZ   r7   r9   r:   r;   Fr[   r\   r   r   r   r   r   r   rn   r   r   rO   rQ   N)r@   rA   rB   IPRangerD   r   rE   rF   r   r^   r   r_   rX   r   rC   rH   rI   rx   r   IPRangeStatusChoicesrq   rn   rr   rT   rU   r   ru   r   r4   r(   r.   r,   r   r     s       Ek5))8Xy/PQPQR^P_P_```"KaakkBBBI
 U  !788a !!  F
 -,""a	  F 'U&akk$  F
 .-!!##aii	  G +E*a)**u|.
 
 
  M .

CCCr.   r   c                   L   e Zd ZeZ eddd           edddddd	d
 ed                     edd ed                     edd ed                     edd ed                    fZdZ e	j
        d e	j        ddi           ed                    Z e	j        d ee           ed                    Z e	j        de ed                    Z eej                                        d ed           d!"          Z eej                                        d ed#          $          Z eej                                        d ed%          $          Z eej                                        d ed&          $          Z e	j         ed'          ed(          Z  e	j         ed)          e!d(          Z" e	j#        d ed*           e	j$        e%+          ,          Z& e	j
        d ed-          .          Z' e(e          Z)d/S )0r   r2   r3   r4   parentrX   rq   rolers   assigned_to_interfacedns_namerZ   r7   rx   ry   rC   r9   r:   r;   	device_idvirtual_machine_idz	Device/VM)r3   r2   rz   group_idr   rq   r   Fr|   r}   r~   zParent Prefixr   r[   r\   r   r   r   r   r   r<   zAssigned DevicezAssigned VMr   r   rn   zAssigned to an interfacerO   rQ   zDNS Namer>   r?   N)*r@   rA   rB   	IPAddressrD   r   rE   rF   selector_fieldsr   r   r   r   r^   r   r_   rX   IPADDRESS_MASK_LENGTH_CHOICESrs   r   rC   rH   rI   rx   r   ry   r
   r   r   r   r   IPAddressStatusChoicesrq   IPAddressRoleChoicesr   rT   rU   r   r   r   r   r4   r(   r.   r,   r   r   -  s2       Ek5))h&-AXZd<	
 	
 	
 	.QQuXX>>>"KaakkBBB2;HHH	I ^OU_ux
 
 

 a    F U  !788a !!  F
 $%#-a  K
 -,""a	  F 0/""a !!  
 0/##%%a!""  I
 98'++--a  
 'U&akk&  F
 %5$aii$  D
 3E2a*++u|.
 
 
   ua
mm  H .

CCCr.   r   c            	          e Zd ZeZ eddd           eddd ed                     ed	d
 ed                    fZ ej	         ed          d          Z
 ej         ed          ed          Z ej        dd ed                    Z ej        ed ed                    Z ej	        d ed                    Z ee          ZdS )r   r2   r3   r4   r8   protocolr   rZ   r7   	auth_typeauth_keyAuthenticationNameFre   Protocolr   r   zGroup ID	min_valuer>   r?   zAuthentication type)rP   r>   r?   zAuthentication keyr   N)r@   rA   rB   	FHRPGrouprD   r   rE   rF   r   r   r8   r   FHRPGroupProtocolChoicesr   rh   r   FHRPGroupAuthTypeChoicesr   r   r   r4   r(   r.   r,   r   r   z  sS       Ek5))ZaaooFFFjqq1A/B/BCCCI
 5?aii  D )u(a
mm(  H
 "u!a
mm  H
 *)(a%&&  I
 ua$%%  H .

CCCr.   r   c                      e Zd Z eddd           eddddd ed	          
           edd ed          
           ed ed          
          fZeZ ee	j
                                        d ed                    Z eej
                                        d ed                    Z eej
                                        d ed                    Z eej
                                        d ed	                    Z eej
                                        d ed                    Z eej
                                        d ed                    Z eej
                                        d ed                    Z ej        dd ed                    Z ee          ZdS )r%   r2   r3   r4   region	sitegroupsitelocationrackr   r7   cluster_groupclusterr   contains_vidVLANsFr   r<   r   r   r   zCluster groupr   zContains VLAN IDr   N)r@   rA   rB   r   rE   rF   	VLANGrouprD   r   r   rH   rI   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   rh   r   r   r4   r(   r.   r,   r%   r%     sP       k5));
F:WWW)!!I,,???aajj111	I E,,##%%akk  F
 0/"&&((aoo  I
 +*!!##aii  D
 /.!%%''a
mm  H
 +*!!##aii  D
 .-$$&&a	ll  G
 43%))++a    M
 &5%a"##  L .

CCCr.   r%   c                   |   e Zd ZeZ eddd           eddd ed                     ed	d
ddd ed                     edd ed                    fZdZ e	e
j                                        d ed                    Z e	ej                                        d ed                    Z e	ej                                        ddddi ed                    Z e	ej                                        ddddi ed                    Z ej         ed          ed          Z e	ej                                        dd ed                     Z ej        d ed!          "          Z e	ej                                        d ed#                    Z ee          Zd$S )%r$   r2   r3   r4   rz   r{   rj   r   r7   r   rq   rr   vidl2vpn_idrZ   r9   r:   r;   )r3   r2   rj   Fr   r<   r   r   r   z$regionr   r   z
VLAN groupr   r   rn   r   zVLAN IDr   r   N) r@   rA   rB   r   rD   r   rE   rF   r   r   r   rH   rI   rz   r	   r{   r   rj   r   r   r   r   VLANStatusChoicesrq   rn   rr   rh   r   r   r   r   r4   r(   r.   r,   r$   r$     sf       Ek5))oyqq}}MMMXy%!!L//ZZZ"KaakkBBB	I 4O//##%%akk  I
 43"&&((aoo  M
 .-!!##i
 aii  G /."&&((i
 aoo  H 'U&akk!  F
 .-!!##aii	  G %
a	ll  C /.""$$ajj  H
 .

CCCr.   r$   c                       e Zd ZeZ eddd           edd ed                    fZ ej	         ed           e
e          d	
          Z ej         ed          d	          Z ee          ZdS )r#   r2   r3   r4   r   portrZ   r7   r   Fr   Portre   N)r@   rA   rB   ServiceTemplaterD   r   rE   rF   r   r^   r   ServiceProtocolChoicesr   rh   r   r   r4   r(   r.   r,   r#   r#     s        Ek5))V!!L//:::I !u a
mm  !788  H
 5aii  D .

CCCr.   r#   c            	       T   e Zd ZeZ eddd           edd ed                     edd	 ed
                    fZ ee	j
                                        d ed                    Z eej
                                        d ed                    Z ee          ZdS )r"   r2   r3   r4   r   r   rZ   r7   r   r   rk   Fr
   r<   zVirtual MachineN)r@   rA   rB   ServicerD   r   rE   rF   r   r
   rH   rI   r   r   r   r   r4   r(   r.   r,   r"   r"     s        Ek5))V!!L//:::2<IIII
 0/##%%akk  I
 98'++--a!""  
 .

CCCr.   r"   N)9djangor   django.utils.translationr   rE   dcim.modelsr   r   r   r   r	   r
   ipam.choicesipam.constantsipam.modelsnetbox.formsr   tenancy.formsr   utilities.formsr   r   utilities.forms.fieldsr   r   r   utilities.forms.renderingr   virtualization.modelsr   r   r   
vpn.modelsr   __all__rangePREFIX_LENGTH_MINPREFIX_LENGTH_MAXr   IPADDRESS_MASK_LENGTH_MINIPADDRESS_MASK_LENGTH_MAXr   r&   r!   r   r   r   r   r    r   r   r   r   r%   r$   r#   r"   r(   r.   r,   <module>r      si         6 6 6 6 6 6 G G G G G G G G G G G G G G G G             1 1 1 1 1 1 + + + + + + H H H H H H H H k k k k k k k k k k . . . . . . G G G G G G G G G G      $ .- / /E+->-BCC/ / /    !1 0 2 2E35NQR5RSS2 2 2 ! ! 
         %'?      (         -/G      (	  	  	  	  	 , 	  	  	          +-E      (         *,D      .         %'?      (         -      
`  `  `  `  ` (*B `  `  ` F$  $  $  $  $ )+C $  $  $ NJ  J  J  J  J +-E J  J  J Z         2      B1  1  1  1  1 2 1  1  1 h9  9  9  9  9 &(@ 9  9  9 x          8      $         1          r.   