Add MAC address field to interfaces

This commit is contained in:
Nick Peelman
2016-07-01 10:30:49 -04:00
parent 35f3355cfe
commit 5034b836ea
6 changed files with 35 additions and 5 deletions

View File

@@ -925,7 +925,7 @@ class InterfaceForm(forms.ModelForm, BootstrapMixin):
class Meta:
model = Interface
fields = ['device', 'name', 'form_factor', 'mgmt_only', 'description']
fields = ['device', 'name', 'form_factor', 'mac_address', 'mgmt_only', 'description']
widgets = {
'device': forms.HiddenInput(),
}
@@ -936,7 +936,7 @@ class InterfaceCreateForm(forms.ModelForm, BootstrapMixin):
class Meta:
model = Interface
fields = ['name_pattern', 'form_factor', 'mgmt_only', 'description']
fields = ['name_pattern', 'form_factor', 'mac_address', 'mgmt_only', 'description']
class InterfaceBulkCreateForm(InterfaceCreateForm, BootstrapMixin):

View File

@@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.7 on 2016-07-01 13:53
from __future__ import unicode_literals
from django.db import migrations
import macaddress.fields
class Migration(migrations.Migration):
dependencies = [
('dcim', '0003_auto_20160628_1721'),
]
operations = [
migrations.AddField(
model_name='interface',
name='mac_address',
field=macaddress.fields.MACAddressField(blank=True, integer=True, null=True),
),
]

View File

@@ -10,6 +10,7 @@ from extras.rpc import RPC_CLIENTS
from utilities.fields import NullableCharField
from utilities.models import CreatedUpdatedModel
from macaddress.fields import MACAddressField
RACK_FACE_FRONT = 0
RACK_FACE_REAR = 1
@@ -856,6 +857,7 @@ class Interface(models.Model):
device = models.ForeignKey('Device', related_name='interfaces', on_delete=models.CASCADE)
name = models.CharField(max_length=30)
form_factor = models.PositiveSmallIntegerField(choices=IFACE_FF_CHOICES, default=IFACE_FF_SFP_PLUS)
mac_address = MACAddressField(null=True, blank=True, verbose_name='MAC Address')
mgmt_only = models.BooleanField(default=False, verbose_name='OOB Management',
help_text="This interface is used only for out-of-band management")
description = models.CharField(max_length=100, blank=True)

View File

@@ -1339,6 +1339,7 @@ class InterfaceBulkAddView(PermissionRequiredMixin, BulkEditView):
iface_form = forms.InterfaceForm({
'device': device.pk,
'name': name,
'mac_address': mac_address,
'form_factor': form.cleaned_data['form_factor'],
'mgmt_only': form.cleaned_data['mgmt_only'],
'description': form.cleaned_data['description'],