def __init__(self, *args, **kwargs): super(InterfacesForm, self).__init__(*args, **kwargs) self.fields['int_interface'].choices = choices.NICChoices() self.fields['int_dhcp'].widget.attrs['onChange'] = ( 'javascript:toggleGeneric("id_int_dhcp", ["id_int_ipv4address", ' '"id_int_v4netmaskbit"]);') self.fields['int_ipv6auto'].widget.attrs['onChange'] = ( 'javascript:toggleGeneric("id_int_ipv6auto", ' '["id_int_ipv6address", "id_int_v6netmaskbit"]);') dhcp = False ipv6auto = False if self.data: if self.data.get("int_dhcp"): dhcp = True if self.data.get("int_ipv6auto"): ipv6auto = True elif self.instance.id: if self.instance.int_dhcp: dhcp = True if self.instance.int_ipv6auto: ipv6auto = True if dhcp: self.fields['int_ipv4address'].widget.attrs['disabled'] = ( 'disabled') self.fields['int_v4netmaskbit'].widget.attrs['disabled'] = ( 'disabled') if ipv6auto: self.fields['int_ipv6address'].widget.attrs['disabled'] = ( 'disabled') self.fields['int_v6netmaskbit'].widget.attrs['disabled'] = ( 'disabled') if self.instance.id: if self.instance.int_interface.startswith('carp'): self.fields['int_v4netmaskbit'].widget.attrs['readonly'] = True self.fields['int_v4netmaskbit'].widget.attrs['class'] = ( 'dijitDisabled dijitSelectDisabled' ) self.fields['int_v4netmaskbit'].initial = '32' self.instance.int_v4netmaskbit = '32' self.fields['int_interface'] = \ forms.CharField( label=self.fields['int_interface'].label, initial=self.instance.int_interface, widget=forms.TextInput( attrs={ 'readonly': True, 'class': ( 'dijitDisabled dijitTextBoxDisabled' ' dijitValidationTextBoxDisabled' ), }, ) )
def __init__(self, *args, **kwargs): super(InterfaceEditForm, self).__init__(*args, **kwargs) instance = getattr(self, 'instance', None) if instance and instance.id: self.fields['int_interface'] = \ forms.CharField(label=self.fields['int_interface'].label, initial=instance.int_interface, widget=forms.TextInput( attrs={ 'readonly': True, 'class': 'dijitDisabled dijitTextBoxDisabled' \ ' dijitValidationTextBoxDisabled', }, ) )
def __set_ro(self, instance, key): if instance and instance.id: self.fields[key] = \ forms.CharField( label=self.fields[key].label, initial=instance.__dict__[key], widget=forms.TextInput( attrs={ 'readonly': True, 'class': ( 'dijitDisabled dijitTextBoxDisabled' 'dijitValidationTextBoxDisabled' ), }, ) )
def __init__(self, *args, **kwargs): super(InterfacesForm, self).__init__(*args, **kwargs) self._carp = False _n = notifier() if not _n.is_freenas() and _n.failover_licensed(): from freenasUI.failover.utils import node_label_field self._carp = True node_label_field( _n.failover_node(), self.fields['int_ipv4address'], self.fields['int_ipv4address_b'], ) if not self._carp: del self.fields['int_vip'] del self.fields['int_vhid'] del self.fields['int_critical'] del self.fields['int_group'] del self.fields['int_ipv4address_b'] self.fields['int_interface'].choices = choices.NICChoices(nocarp=True) self.fields['int_dhcp'].widget.attrs['onChange'] = ( 'javascript:toggleGeneric("id_int_dhcp", ["id_int_ipv4address", ' '"id_int_ipv4address_b", "id_int_v4netmaskbit"]);') self.fields['int_ipv6auto'].widget.attrs['onChange'] = ( 'javascript:toggleGeneric("id_int_ipv6auto", ' '["id_int_ipv6address", "id_int_v6netmaskbit"]);') if 'int_critical' in self.fields: self.fields['int_critical'].widget.attrs['onChange'] = ( 'javascript:toggleGeneric("id_int_critical", ' '["id_int_group"], true);') dhcp = False ipv6auto = False if self.data: if self.data.get("int_dhcp"): dhcp = True if self.data.get("int_ipv6auto"): ipv6auto = True elif self.instance.id: if self.instance.int_dhcp: dhcp = True if self.instance.int_ipv6auto: ipv6auto = True if dhcp: if 'int_ipv4address' in self.fields: self.fields['int_ipv4address'].widget.attrs['disabled'] = ( 'disabled') if 'int_ipv4address_b' in self.fields: self.fields['int_ipv4address_b'].widget.attrs['disabled'] = ( 'disabled') self.fields['int_v4netmaskbit'].widget.attrs['disabled'] = ( 'disabled') if ipv6auto: self.fields['int_ipv6address'].widget.attrs['disabled'] = ( 'disabled') self.fields['int_v6netmaskbit'].widget.attrs['disabled'] = ( 'disabled') if self.instance.id: if 'int_group' in self.fields and not self.instance.int_critical: self.fields['int_group'].widget.attrs['disabled'] = ( 'disabled') self.fields['int_interface'] = \ forms.CharField( label=self.fields['int_interface'].label, initial=self.instance.int_interface, widget=forms.TextInput( attrs={ 'readonly': True, 'class': ( 'dijitDisabled dijitTextBoxDisabled' ' dijitValidationTextBoxDisabled' ), }, ) )
def __init__(self, *args, **kwargs): super(DeviceForm, self).__init__(*args, **kwargs) self.fields['dtype'].widget.attrs['onChange'] = ("deviceTypeToggle();") self.fields['VNC_bind'].choices = self.ipv4_list() self.fields['NIC_attach'].choices = choices.NICChoices( exclude_configured=False, include_vlan_parent=True, include_lagg_parent=False, ) diskchoices = {} with client as c: for zvol in c.call('pool.dataset.query', [('type', '=', 'VOLUME')]): diskchoices[f'zvol/{zvol["name"]}'] = "%s (%s)" % ( zvol['name'], humanize_size(zvol['volsize']['parsed'])) self.fields['DISK_zvol'].choices = diskchoices.items() if self.instance.id: if self.instance.dtype == 'CDROM': self.fields[ 'CDROM_path'].initial = self.instance.attributes.get( 'path', '') elif self.instance.dtype == 'DISK': self.fields[ 'DISK_zvol'].initial = self.instance.attributes.get( 'path', '').replace('/dev/', '') self.fields[ 'DISK_mode'].initial = self.instance.attributes.get('type') self.fields[ 'DISK_sectorsize'].initial = self.instance.attributes.get( 'sectorsize', 0) elif self.instance.dtype == 'RAW': self.fields['DISK_raw'].initial = self.instance.attributes.get( 'path', '') self.fields[ 'DISK_mode'].initial = self.instance.attributes.get('type') self.fields[ 'DISK_sectorsize'].initial = self.instance.attributes.get( 'sectorsize', 0) if self.instance.vm.vm_type == 'Container Provider': self.fields['DISK_raw_boot'].widget = forms.CheckboxInput() self.fields['DISK_raw_size'].widget = forms.TextInput() self.fields['ROOT_password'].widget = forms.PasswordInput( render_value=True, ) self.fields[ 'DISK_raw_boot'].initial = self.instance.attributes.get( 'boot', False) self.fields[ 'DISK_raw_size'].initial = self.instance.attributes.get( 'size', '') self.fields[ 'ROOT_password'].initial = self.instance.attributes.get( 'rootpwd', '') elif self.instance.dtype == 'NIC': self.fields['NIC_type'].initial = self.instance.attributes.get( 'type') self.fields['NIC_mac'].initial = self.instance.attributes.get( 'mac') self.fields[ 'NIC_attach'].initial = self.instance.attributes.get( 'nic_attach') elif self.instance.dtype == 'VNC': vnc_port = self.instance.attributes.get('vnc_port') vnc_port = 0 if vnc_port is None else vnc_port self.fields['VNC_wait'].initial = self.instance.attributes.get( 'wait') self.fields['VNC_port'].initial = vnc_port self.fields[ 'VNC_resolution'].initial = self.instance.attributes.get( 'vnc_resolution') self.fields['VNC_bind'].initial = self.instance.attributes.get( 'vnc_bind') self.fields[ 'VNC_password'].initial = self.instance.attributes.get( 'vnc_password') self.fields['VNC_web'].initial = self.instance.attributes.get( 'vnc_web')
def __init__(self, *args, **kwargs): super(DeviceForm, self).__init__(*args, **kwargs) self.fields['dtype'].widget.attrs['onChange'] = ("deviceTypeToggle();") self.fields['VNC_bind'].choices = self.ipv4_list() diskchoices = {} _n = notifier() used_zvol = [] for volume in Volume.objects.filter(): zvols = _n.list_zfs_vols(volume.vol_name, sort='name') for zvol, attrs in zvols.items(): if "zvol/" + zvol not in used_zvol: diskchoices["zvol/" + zvol] = "%s (%s)" % ( zvol, humanize_size(attrs['volsize'])) self.fields['DISK_zvol'].choices = diskchoices.items() if self.instance.id: if self.instance.dtype == 'CDROM': self.fields[ 'CDROM_path'].initial = self.instance.attributes.get( 'path', '') elif self.instance.dtype == 'DISK': self.fields[ 'DISK_zvol'].initial = self.instance.attributes.get( 'path', '').replace('/dev/', '') self.fields[ 'DISK_mode'].initial = self.instance.attributes.get('type') self.fields[ 'DISK_sectorsize'].initial = self.instance.attributes.get( 'sectorsize', 0) elif self.instance.dtype == 'RAW': self.fields['DISK_raw'].initial = self.instance.attributes.get( 'path', '') self.fields[ 'DISK_mode'].initial = self.instance.attributes.get('type') self.fields[ 'DISK_sectorsize'].initial = self.instance.attributes.get( 'sectorsize', 0) if self.instance.vm.vm_type == 'Container Provider': self.fields['DISK_raw_boot'].widget = forms.CheckboxInput() self.fields['DISK_raw_size'].widget = forms.TextInput() self.fields['ROOT_password'].widget = forms.PasswordInput( render_value=True, ) self.fields[ 'DISK_raw_boot'].initial = self.instance.attributes.get( 'boot', False) self.fields[ 'DISK_raw_size'].initial = self.instance.attributes.get( 'size', '') self.fields[ 'ROOT_password'].initial = self.instance.attributes.get( 'rootpwd', '') elif self.instance.dtype == 'NIC': self.fields['NIC_type'].initial = self.instance.attributes.get( 'type') self.fields['NIC_mac'].initial = self.instance.attributes.get( 'mac') self.fields[ 'NIC_attach'].initial = self.instance.attributes.get( 'nic_attach') elif self.instance.dtype == 'VNC': vnc_port = self.instance.attributes.get('vnc_port') vnc_port = 0 if vnc_port is None else vnc_port self.fields['VNC_wait'].initial = self.instance.attributes.get( 'wait') self.fields['VNC_port'].initial = vnc_port self.fields[ 'VNC_resolution'].initial = self.instance.attributes.get( 'vnc_resolution') self.fields['VNC_bind'].initial = self.instance.attributes.get( 'vnc_bind') self.fields[ 'VNC_password'].initial = self.instance.attributes.get( 'vnc_password') self.fields['VNC_web'].initial = self.instance.attributes.get( 'vnc_web')
def __init__(self, *args, **kwargs): super(InterfacesForm, self).__init__(*args, **kwargs) self.fields['int_interface'].choices = choices.NICChoices() self.fields['int_dhcp'].widget.attrs['onChange'] = ( 'javascript:toggleGeneric("id_int_dhcp", ["id_int_ipv4address", ' '"id_int_v4netmaskbit"]);') self.fields['int_ipv6auto'].widget.attrs['onChange'] = ( 'javascript:toggleGeneric("id_int_ipv6auto", ' '["id_int_ipv6address", "id_int_v6netmaskbit"]);') dhcp = False ipv6auto = False if self.data: if self.data.get("int_dhcp"): dhcp = True if self.data.get("int_ipv6auto"): ipv6auto = True elif self.instance.id: if self.instance.int_dhcp: dhcp = True if self.instance.int_ipv6auto: ipv6auto = True if dhcp: self.fields['int_ipv4address'].widget.attrs['disabled'] = ( 'disabled') self.fields['int_v4netmaskbit'].widget.attrs['disabled'] = ( 'disabled') if ipv6auto: self.fields['int_ipv6address'].widget.attrs['disabled'] = ( 'disabled') self.fields['int_v6netmaskbit'].widget.attrs['disabled'] = ( 'disabled') if self.instance.id: if self.instance.int_interface.startswith('carp'): self.fields['int_v4netmaskbit'].widget.attrs['readonly'] = True self.fields['int_v4netmaskbit'].widget.attrs['class'] = ( 'dijitDisabled dijitSelectDisabled') self.fields['int_v4netmaskbit'].initial = '32' self.instance.int_v4netmaskbit = '32' self.fields['int_interface'] = \ forms.CharField( label=self.fields['int_interface'].label, initial=self.instance.int_interface, widget=forms.TextInput( attrs={ 'readonly': True, 'class': ( 'dijitDisabled dijitTextBoxDisabled' ' dijitValidationTextBoxDisabled' ), }, ) ) else: # In case there is a CARP instance but no Interfaces instance if hasattr(notifier, 'failover_status'): from freenasUI.failover.models import CARP int_interfaces = [ o.int_interface for o in models.Interfaces.objects.all() ] for o in CARP.objects.all(): if o.carp_name not in int_interfaces: self.fields['int_interface'].choices += [ (o.carp_name, o.carp_name), ]