Пример #1
0
class PowerConnectionImportForm(BulkImportForm, BootstrapMixin):
    csv = CSVDataField(csv_form=PowerConnectionCSVForm)

    def clean(self):
        records = self.cleaned_data.get('csv')
        if not records:
            return

        connection_list = []

        for i, record in enumerate(records, start=1):
            form = self.fields['csv'].csv_form(data=record)
            if form.is_valid():
                power_port = PowerPort.objects.get(
                    device=form.cleaned_data['device'],
                    name=form.cleaned_data['power_port'])
                power_port.power_outlet = PowerOutlet.objects.get(
                    device=form.cleaned_data['pdu'],
                    name=form.cleaned_data['power_outlet'])
                if form.cleaned_data['status'] == 'planned':
                    power_port.connection_status = CONNECTION_STATUS_PLANNED
                else:
                    power_port.connection_status = CONNECTION_STATUS_CONNECTED
                connection_list.append(power_port)
            else:
                for field, errors in form.errors.items():
                    for e in errors:
                        self.add_error('csv',
                                       "Record {} {}: {}".format(i, field, e))

        self.cleaned_data['csv'] = connection_list
Пример #2
0
class InterfaceConnectionImportForm(BulkImportForm, BootstrapMixin):
    csv = CSVDataField(csv_form=InterfaceConnectionCSVForm)

    def clean(self):
        records = self.cleaned_data.get('csv')
        if not records:
            return

        connection_list = []

        for i, record in enumerate(records, start=1):
            form = self.fields['csv'].csv_form(data=record)
            if form.is_valid():
                interface_a = Interface.objects.get(
                    device=form.cleaned_data['device_a'],
                    name=form.cleaned_data['interface_a'])
                interface_b = Interface.objects.get(
                    device=form.cleaned_data['device_b'],
                    name=form.cleaned_data['interface_b'])
                connection = InterfaceConnection(interface_a=interface_a,
                                                 interface_b=interface_b)
                if form.cleaned_data['status'] == 'planned':
                    connection.connection_status = CONNECTION_STATUS_PLANNED
                else:
                    connection.connection_status = CONNECTION_STATUS_CONNECTED
                connection_list.append(connection)
            else:
                for field, errors in form.errors.items():
                    for e in errors:
                        self.add_error('csv',
                                       "Record {} {}: {}".format(i, field, e))

        self.cleaned_data['csv'] = connection_list
Пример #3
0
class PrefixImportForm(BulkImportForm, BootstrapMixin):
    csv = CSVDataField(csv_form=PrefixFromCSVForm)
Пример #4
0
class AggregateImportForm(BulkImportForm, BootstrapMixin):
    csv = CSVDataField(csv_form=AggregateFromCSVForm)
Пример #5
0
 class ImportForm(BootstrapMixin, Form):
     csv = CSVDataField(from_form=self.model_form,
                        widget=Textarea(attrs=self.widget_attrs))
Пример #6
0
class ProviderImportForm(BulkImportForm, BootstrapMixin):
    csv = CSVDataField(csv_form=ProviderFromCSVForm)
Пример #7
0
class CircuitImportForm(BulkImportForm, BootstrapMixin):
    csv = CSVDataField(csv_form=CircuitFromCSVForm)
Пример #8
0
class SecretImportForm(BulkImportForm, BootstrapMixin):
    private_key = forms.CharField(widget=forms.HiddenInput())
    csv = CSVDataField(
        csv_form=SecretFromCSVForm,
        widget=forms.Textarea(attrs={'class': 'requires-private-key'}))
Пример #9
0
class RackImportForm(BulkImportForm, BootstrapMixin):
    csv = CSVDataField(csv_form=RackFromCSVForm)
Пример #10
0
class SecretImportForm(BulkImportForm, BootstrapMixin):
    private_key = forms.CharField(widget=forms.HiddenInput())
    csv = CSVDataField(csv_form=SecretFromCSVForm)
Пример #11
0
class VRFImportForm(BootstrapMixin, BulkImportForm):
    csv = CSVDataField(csv_form=VRFFromCSVForm)
Пример #12
0
class SecretImportForm(BootstrapMixin, BulkImportForm):
    csv = CSVDataField(
        csv_form=SecretFromCSVForm,
        widget=forms.Textarea(attrs={'class': 'requires-session-key'}))
Пример #13
0
class TenantImportForm(BootstrapMixin, BulkImportForm):
    csv = CSVDataField(csv_form=TenantFromCSVForm)
Пример #14
0
 class ImportForm(BootstrapMixin, Form):
     csv = CSVDataField(fields=fields, required_fields=required_fields)
Пример #15
0
class DeviceImportForm(BulkImportForm, BootstrapMixin):
    csv = CSVDataField(csv_form=DeviceFromCSVForm)
Пример #16
0
class IPAddressImportForm(BulkImportForm, BootstrapMixin):
    csv = CSVDataField(csv_form=IPAddressFromCSVForm)
Пример #17
0
class VLANImportForm(BulkImportForm, BootstrapMixin):
    csv = CSVDataField(csv_form=VLANFromCSVForm)
Пример #18
0
 class ImportForm(BootstrapMixin, Form):
     csv = CSVDataField(fields=fields,
                        required_fields=required_fields,
                        widget=Textarea(attrs=self.widget_attrs))