mirror of
				https://github.com/netbox-community/netbox.git
				synced 2024-05-10 07:54:54 +00:00 
			
		
		
		
	Merge branch 'develop' into feature
This commit is contained in:
		@@ -258,11 +258,18 @@ class IPAddressCSVForm(CustomFieldModelCSVForm):
 | 
			
		||||
 | 
			
		||||
        device = self.cleaned_data.get('device')
 | 
			
		||||
        virtual_machine = self.cleaned_data.get('virtual_machine')
 | 
			
		||||
        interface = self.cleaned_data.get('interface')
 | 
			
		||||
        is_primary = self.cleaned_data.get('is_primary')
 | 
			
		||||
 | 
			
		||||
        # Validate is_primary
 | 
			
		||||
        if is_primary and not device and not virtual_machine:
 | 
			
		||||
            raise forms.ValidationError("No device or virtual machine specified; cannot set as primary IP")
 | 
			
		||||
            raise forms.ValidationError({
 | 
			
		||||
                "is_primary": "No device or virtual machine specified; cannot set as primary IP"
 | 
			
		||||
            })
 | 
			
		||||
        if is_primary and not interface:
 | 
			
		||||
            raise forms.ValidationError({
 | 
			
		||||
                "is_primary": "No interface specified; cannot set as primary IP"
 | 
			
		||||
            })
 | 
			
		||||
 | 
			
		||||
    def save(self, *args, **kwargs):
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -92,7 +92,7 @@ class RIRTable(BaseTable):
 | 
			
		||||
 | 
			
		||||
    class Meta(BaseTable.Meta):
 | 
			
		||||
        model = RIR
 | 
			
		||||
        fields = ('pk', 'name', 'slug', 'is_private', 'aggregate_count', 'description', 'tags', 'actions')
 | 
			
		||||
        fields = ('pk', 'id', 'name', 'slug', 'is_private', 'aggregate_count', 'description', 'tags', 'actions')
 | 
			
		||||
        default_columns = ('pk', 'name', 'is_private', 'aggregate_count', 'description', 'actions')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -124,7 +124,7 @@ class AggregateTable(BaseTable):
 | 
			
		||||
 | 
			
		||||
    class Meta(BaseTable.Meta):
 | 
			
		||||
        model = Aggregate
 | 
			
		||||
        fields = ('pk', 'prefix', 'rir', 'tenant', 'child_count', 'utilization', 'date_added', 'description', 'tags')
 | 
			
		||||
        fields = ('pk', 'id', 'prefix', 'rir', 'tenant', 'child_count', 'utilization', 'date_added', 'description', 'tags')
 | 
			
		||||
        default_columns = ('pk', 'prefix', 'rir', 'tenant', 'child_count', 'utilization', 'date_added', 'description')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -154,7 +154,7 @@ class RoleTable(BaseTable):
 | 
			
		||||
 | 
			
		||||
    class Meta(BaseTable.Meta):
 | 
			
		||||
        model = Role
 | 
			
		||||
        fields = ('pk', 'name', 'slug', 'prefix_count', 'vlan_count', 'description', 'weight', 'tags', 'actions')
 | 
			
		||||
        fields = ('pk', 'id', 'name', 'slug', 'prefix_count', 'vlan_count', 'description', 'weight', 'tags', 'actions')
 | 
			
		||||
        default_columns = ('pk', 'name', 'prefix_count', 'vlan_count', 'description', 'actions')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -236,7 +236,7 @@ class PrefixTable(BaseTable):
 | 
			
		||||
    class Meta(BaseTable.Meta):
 | 
			
		||||
        model = Prefix
 | 
			
		||||
        fields = (
 | 
			
		||||
            'pk', 'prefix', 'prefix_flat', 'status', 'children', 'vrf', 'utilization', 'tenant', 'site', 'vlan', 'role',
 | 
			
		||||
            'pk', 'id', 'prefix', 'prefix_flat', 'status', 'children', 'vrf', 'utilization', 'tenant', 'site', 'vlan', 'role',
 | 
			
		||||
            'is_pool', 'mark_utilized', 'description', 'tags',
 | 
			
		||||
        )
 | 
			
		||||
        default_columns = (
 | 
			
		||||
@@ -270,12 +270,15 @@ class IPRangeTable(BaseTable):
 | 
			
		||||
        accessor='utilization',
 | 
			
		||||
        orderable=False
 | 
			
		||||
    )
 | 
			
		||||
    tags = TagColumn(
 | 
			
		||||
        url_name='ipam:iprange_list'
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    class Meta(BaseTable.Meta):
 | 
			
		||||
        model = IPRange
 | 
			
		||||
        fields = (
 | 
			
		||||
            'pk', 'start_address', 'end_address', 'size', 'vrf', 'status', 'role', 'tenant', 'description',
 | 
			
		||||
            'utilization',
 | 
			
		||||
            'pk', 'id', 'start_address', 'end_address', 'size', 'vrf', 'status', 'role', 'tenant', 'description',
 | 
			
		||||
            'utilization', 'tags',
 | 
			
		||||
        )
 | 
			
		||||
        default_columns = (
 | 
			
		||||
            'pk', 'start_address', 'end_address', 'size', 'vrf', 'status', 'role', 'tenant', 'description',
 | 
			
		||||
@@ -332,7 +335,7 @@ class IPAddressTable(BaseTable):
 | 
			
		||||
    class Meta(BaseTable.Meta):
 | 
			
		||||
        model = IPAddress
 | 
			
		||||
        fields = (
 | 
			
		||||
            'pk', 'address', 'vrf', 'status', 'role', 'tenant', 'nat_inside', 'assigned', 'dns_name', 'description',
 | 
			
		||||
            'pk', 'id', 'address', 'vrf', 'status', 'role', 'tenant', 'nat_inside', 'assigned', 'dns_name', 'description',
 | 
			
		||||
            'tags',
 | 
			
		||||
        )
 | 
			
		||||
        default_columns = (
 | 
			
		||||
@@ -356,6 +359,7 @@ class IPAddressAssignTable(BaseTable):
 | 
			
		||||
    class Meta(BaseTable.Meta):
 | 
			
		||||
        model = IPAddress
 | 
			
		||||
        fields = ('address', 'dns_name', 'vrf', 'status', 'role', 'tenant', 'assigned_object', 'description')
 | 
			
		||||
        exclude = ('id', )
 | 
			
		||||
        orderable = False
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -380,3 +384,4 @@ class AssignedIPAddressesTable(BaseTable):
 | 
			
		||||
    class Meta(BaseTable.Meta):
 | 
			
		||||
        model = IPAddress
 | 
			
		||||
        fields = ('address', 'vrf', 'status', 'role', 'tenant', 'description')
 | 
			
		||||
        exclude = ('id', )
 | 
			
		||||
 
 | 
			
		||||
@@ -31,5 +31,5 @@ class ServiceTable(BaseTable):
 | 
			
		||||
 | 
			
		||||
    class Meta(BaseTable.Meta):
 | 
			
		||||
        model = Service
 | 
			
		||||
        fields = ('pk', 'name', 'parent', 'protocol', 'ports', 'ipaddresses', 'description', 'tags')
 | 
			
		||||
        fields = ('pk', 'id', 'name', 'parent', 'protocol', 'ports', 'ipaddresses', 'description', 'tags')
 | 
			
		||||
        default_columns = ('pk', 'name', 'parent', 'protocol', 'ports', 'description')
 | 
			
		||||
 
 | 
			
		||||
@@ -84,7 +84,7 @@ class VLANGroupTable(BaseTable):
 | 
			
		||||
 | 
			
		||||
    class Meta(BaseTable.Meta):
 | 
			
		||||
        model = VLANGroup
 | 
			
		||||
        fields = ('pk', 'name', 'scope_type', 'scope', 'vlan_count', 'slug', 'description', 'tags', 'actions')
 | 
			
		||||
        fields = ('pk', 'id', 'name', 'scope_type', 'scope', 'vlan_count', 'slug', 'description', 'tags', 'actions')
 | 
			
		||||
        default_columns = ('pk', 'name', 'scope_type', 'scope', 'vlan_count', 'description', 'actions')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -122,7 +122,7 @@ class VLANTable(BaseTable):
 | 
			
		||||
 | 
			
		||||
    class Meta(BaseTable.Meta):
 | 
			
		||||
        model = VLAN
 | 
			
		||||
        fields = ('pk', 'vid', 'name', 'site', 'group', 'prefixes', 'tenant', 'status', 'role', 'description', 'tags')
 | 
			
		||||
        fields = ('pk', 'id', 'vid', 'name', 'site', 'group', 'prefixes', 'tenant', 'status', 'role', 'description', 'tags')
 | 
			
		||||
        default_columns = ('pk', 'vid', 'name', 'site', 'group', 'prefixes', 'tenant', 'status', 'role', 'description')
 | 
			
		||||
        row_attrs = {
 | 
			
		||||
            'class': lambda record: 'success' if not isinstance(record, VLAN) else '',
 | 
			
		||||
@@ -152,6 +152,7 @@ class VLANDevicesTable(VLANMembersTable):
 | 
			
		||||
    class Meta(BaseTable.Meta):
 | 
			
		||||
        model = Interface
 | 
			
		||||
        fields = ('device', 'name', 'tagged', 'actions')
 | 
			
		||||
        exclude = ('id', )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class VLANVirtualMachinesTable(VLANMembersTable):
 | 
			
		||||
@@ -163,6 +164,7 @@ class VLANVirtualMachinesTable(VLANMembersTable):
 | 
			
		||||
    class Meta(BaseTable.Meta):
 | 
			
		||||
        model = VMInterface
 | 
			
		||||
        fields = ('virtual_machine', 'name', 'tagged', 'actions')
 | 
			
		||||
        exclude = ('id', )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class InterfaceVLANTable(BaseTable):
 | 
			
		||||
@@ -190,6 +192,7 @@ class InterfaceVLANTable(BaseTable):
 | 
			
		||||
    class Meta(BaseTable.Meta):
 | 
			
		||||
        model = VLAN
 | 
			
		||||
        fields = ('vid', 'tagged', 'site', 'group', 'name', 'tenant', 'status', 'role', 'description')
 | 
			
		||||
        exclude = ('id', )
 | 
			
		||||
 | 
			
		||||
    def __init__(self, interface, *args, **kwargs):
 | 
			
		||||
        self.interface = interface
 | 
			
		||||
 
 | 
			
		||||
@@ -47,7 +47,7 @@ class VRFTable(BaseTable):
 | 
			
		||||
    class Meta(BaseTable.Meta):
 | 
			
		||||
        model = VRF
 | 
			
		||||
        fields = (
 | 
			
		||||
            'pk', 'name', 'rd', 'tenant', 'enforce_unique', 'description', 'import_targets', 'export_targets', 'tags',
 | 
			
		||||
            'pk', 'id', 'name', 'rd', 'tenant', 'enforce_unique', 'description', 'import_targets', 'export_targets', 'tags',
 | 
			
		||||
        )
 | 
			
		||||
        default_columns = ('pk', 'name', 'rd', 'tenant', 'description')
 | 
			
		||||
 | 
			
		||||
@@ -68,5 +68,5 @@ class RouteTargetTable(BaseTable):
 | 
			
		||||
 | 
			
		||||
    class Meta(BaseTable.Meta):
 | 
			
		||||
        model = RouteTarget
 | 
			
		||||
        fields = ('pk', 'name', 'tenant', 'description', 'tags')
 | 
			
		||||
        fields = ('pk', 'id', 'name', 'tenant', 'description', 'tags')
 | 
			
		||||
        default_columns = ('pk', 'name', 'tenant', 'description')
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user