
    >TfU)                        d dl mZ 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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 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% d dl&T d dl'T dZ( G d de          Z) G d de          Z* G d de          Z+ G d de          Z, G d de          Z- G d de          Z. G d de          Z/ G d de          Z0d S )!    )forms)gettext_lazy)InterfaceModeChoices)INTERFACE_MTU_MAXINTERFACE_MTU_MIN)Device
DeviceRolePlatformRegionSite	SiteGroup)ConfigTemplate)VLAN	VLANGroupVRF)NetBoxModelBulkEditForm)Tenant)BulkRenameFormadd_blank_choice)CommentFieldDynamicModelChoiceFieldDynamicModelMultipleChoiceField)FieldSet)BulkEditNullBooleanSelect)*)ClusterBulkEditFormClusterGroupBulkEditFormClusterTypeBulkEditFormVirtualDiskBulkEditFormVirtualDiskBulkRenameFormVirtualMachineBulkEditFormVMInterfaceBulkEditFormVMInterfaceBulkRenameFormc                   f    e Zd Z ej         ed          dd          ZeZ e	d          fZ
dZdS )r   Description   Flabel
max_lengthrequireddescriptionr+   N)__name__
__module____qualname__r   	CharField_r+   ClusterTypemodelr   	fieldsetsnullable_fields     C/var/www/html/netbox-4.1.3/netbox/virtualization/forms/bulk_edit.pyr   r      s[        !%/a  K EI 'OOOr7   r   c                   f    e Zd Z ej         ed          dd          ZeZ e	d          fZ
dZdS )r   r%   r&   Fr'   r+   r,   N)r-   r.   r/   r   r0   r1   r+   ClusterGroupr3   r   r4   r5   r6   r7   r8   r   r   ,   s[        !%/a  K EI 'OOOr7   r   c            	       ,   e Zd Z e ed          ej                                        d          Z e ed          e	j                                        d          Z
 ej         ed           ee          dd          Z e ed          ej                                        d          Z e ed	          ej                                        d          Z e ed
          ej                                        d          Z e ed          ej                                        dddd          Z ej         ed          dd          Z e            ZeZ eddddd           eddd ed                    fZdZ dS )r   TypeFr(   querysetr*   GroupStatus r(   choicesr*   initialr   r   z
Site groupr   z$regionz$site_group)	region_idgroup_idr(   r>   r*   query_paramsr%   r&   r'   typegroupstatustenantr+   region
site_groupsitename)rJ   rO   rL   r+   commentsN)!r-   r.   r/   r   r1   r2   objectsallrI   r:   rJ   r   ChoiceFieldr   ClusterStatusChoicesrK   r   rL   r   rM   r   rN   r   rO   r0   r+   r   rR   Clusterr3   r   r4   r5   r6   r7   r8   r   r   :   s*       ""aii$((**  D
 $#ajj%))++  E
 Uakk  !566	  F %$akk##%%  F
 %$akk##%%  F
 )(aoo"&&((  J
 #"aii!!##"%
 
	  D "%/a  K
 |~~HE(HmDD<aaii@@@IOOOr7   r   c            
       T   e Zd Z ej         ed           ee          dd          Z e	 ed          e
j                                        d          Z e	 ed          ej                                        ddd	i
          Z e	 ed          ej                                        dddi
          Z e	 ed          ej                            d          dddi
          Z e	 ed          ej                                        d          Z e	 ed          ej                                        d          Z ej        d ed                    Z ej        d ed                    Z ej        d ed                    Z ej         ed          dd          Z e	ej                                        d          Z  e!            Z"e#Z$ e%dddd d!d"d#d$           e%d%d&d' ed(          )           e%d* ed+          )          fZ&d,Z'd-S ).r!   r@   FrA   rB   r   r=   rW   site_idz$siterG   r   
cluster_idz$clusterRoleT)vm_roler\   Truer   r
   vCPUsr*   r(   zMemory (MB)z	Disk (GB)r%   r&   r'   )r>   r*   rO   clusterdevicerK   rolerL   platformr+   vcpusmemorydisk	ResourcesrP   config_templateConfiguration)rO   r`   ra   rb   rL   rc   rd   re   rf   r+   rR   N)(r-   r.   r/   r   rU   r1   r   VirtualMachineStatusChoicesrK   r   r   rS   rT   rO   rW   r`   r   ra   r	   filterrb   r   rL   r
   rc   IntegerFieldrd   re   rf   r0   r+   r   rh   r   rR   VirtualMachiner3   r   r4   r5   r6   r7   r8   r!   r!   t   s       Uakk  !<==	  F #"aii!!##  D
 &%a	ll$$&&w
	  G %$akk##%%*
	  F #"aii#** + 
 
 v
	 	 	D %$akk##%%  F
 '&a
mm!%%''  H
 Eajj  E  Ua  F 5ann  D "%/a  K
 .-'++--  O |~~HEHh*Vcdd(F;@@@"?););<<<I
OOOr7   r!   c                   \    e Zd Z ej         ed          ej                                        dd ej	                              Z
 e ed          ej                                        d          Z e ed          ej                                        d          Z ej         ed          d e            	          Z ej        dee ed
                    Z ej         ed          dd          Z ej         ed           ee          d          Z eej                                        d ed                    Z eej                                        dddi ed                    Z e ej                                        dddi ed                    Z! ee"j                                        d ed                    Z#eZ$ e%dddd           e%dd ed                      e%d!d"d#d$ ed%                     fZ&d&Z' fd'Z( xZ)S )(r"   Virtual machineFTr(   r>   r*   disabledwidgetParentr=   BridgeEnabled)r(   r*   rr   MTU)r*   	min_value	max_valuer(   r%   d   r'   Mode)r(   rC   r*   z
VLAN group)r>   r*   r(   rF   z$vlan_groupzUntagged VLAN)r>   r*   rH   r(   zTagged VLANsr   mtuenabledvrfr+   parentbridgezRelated InterfacesrP   mode
vlan_groupuntagged_vlantagged_vlansz802.1Q Switching)r~   r   r{   r}   r+   c                     t                      j        |i | d| j        v r| j                            d          }| j        d         j                            d|           | j        d         j                            d|           | j        d         j                            d|           | j        d         j                            d|           d S d| j        v rd }t          j        	                    | j        d         	          
                    d
          }|D ],}|j        j        p|j        j        j        }||}$||urd } n-|V| j        d         j                            d|j                   | j        d         j                            d|j                   d| j        d         _        d| j        d         j        j        d<   d| j        d         _        d| j        d         j        j        d<   d S )Nvirtual_machiner~   virtual_machine_idr   r   available_on_virtualmachiner   pk)pk__invirtual_machine__siterY   r6   Trq   )super__init__rD   getfieldsrr   add_query_paramVMInterfacerS   rk   prefetch_relatedr   rO   r`   r   rC   attrs)	selfargskwargsvm_idrO   
interfaces	interfacevm_site	__class__s	           r8   r   z VMInterfaceBulkEditForm.__init__  s   $)&))),,L$$%677E K!(889MuUUUK!(889MuUUU K(/??@]_deeeK'.>>?\^cddddd t|##(077<- 8  ""+   ",  I'7<f	@Y@a@fG|& ,,# - #K07GG	SWSZ[[[K/6FFyRVRYZZZ,.DK!)=ADK!(.z:,.DK!)=ADK!(.z:::r7   )*r-   r.   r/   r   ModelChoiceFieldr1   rm   rS   rT   HiddenInputr   r   r   r~   r   NullBooleanFieldr   r|   rl   r   r   r{   r0   r+   rU   r   r   r   r   r   r   r   r   r   r   r}   r3   r   r4   r5   r   __classcell__)r   s   @r8   r"   r"      s.       ,e,a!""'++-- u ""  O %$akk$((**  F
 %$akk$((**  F
 %e$a	ll((**  G
 %
##ahh	  C "%/a  K
 5aii  !566  D
 )("&&((aoo  J
 ,+!!##
 a    M 32!!##
 a  L "
!""ahh  C E	5-888!!,@*A*ABBBQQOaMbMbcccI
O(B (B (B (B (B (B (B (B (Br7   r"   c                   z    e Zd Z ej        ej                                         ej                              Z	dS )r#   r>   rr   N)
r-   r.   r/   r   ModelMultipleChoiceFieldr   rS   rT   MultipleHiddenInputr   r6   r7   r8   r#   r#   =  G        	'	'$((**(u(**
 
 
BBBr7   r#   c                   "   e Zd Z ej         ed          ej                                        dd ej	                              Z
 ej        d ed                    Z ej         ed          dd	          ZeZ ed
d          fZdZdS )r   ro   FTrp   z	Size (GB)r_   r%   ry   r'   sizer+   r,   N)r-   r.   r/   r   r   r1   rm   rS   rT   r   r   rl   r   r0   r+   VirtualDiskr3   r   r4   r5   r6   r7   r8   r   r   D  s        ,e,a!""'++-- u ""  O 5ann  D "%/a  K E''I 'OOOr7   r   c                   z    e Zd Z ej        ej                                         ej                              Z	dS )r    r   N)
r-   r.   r/   r   r   r   rS   rT   r   r   r6   r7   r8   r    r    ]  r   r7   r    N)1djangor   django.utils.translationr   r1   dcim.choicesr   dcim.constantsr   r   dcim.modelsr   r	   r
   r   r   r   extras.modelsr   ipam.modelsr   r   r   netbox.formsr   tenancy.modelsr   utilities.formsr   r   utilities.forms.fieldsr   r   r   utilities.forms.renderingr   utilities.forms.widgetsr   virtualization.choicesvirtualization.models__all__r   r   r   r!   r"   r#   r   r    r6   r7   r8   <module>r      s         6 6 6 6 6 6 - - - - - - ? ? ? ? ? ? ? ? M M M M M M M M M M M M M M M M ( ( ( ( ( ( , , , , , , , , , , 0 0 0 0 0 0 ! ! ! ! ! ! < < < < < < < < i i i i i i i i i i . . . . . . = = = = = = $ $ $ $ # # # #	' ' ' ' '5 ' ' '' ' ' ' '6 ' ' '7 7 7 7 71 7 7 7tO O O O O!8 O O OdtB tB tB tB tB5 tB tB tBn       ' ' ' ' '5 ' ' '2         r7   