1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Closes #5011: Standardized name field lengths across all models

This commit is contained in:
Jeremy Stretch
2020-10-15 15:37:34 -04:00
parent 8781cf1c57
commit c9c8d337a0
16 changed files with 327 additions and 28 deletions

View File

@ -60,6 +60,7 @@ All end-to-end cable paths are now cached using the new CablePath model. This al
* [#4360](https://github.com/netbox-community/netbox/issues/4360) - Remove support for the Django template language from export templates
* [#4878](https://github.com/netbox-community/netbox/issues/4878) - Custom field data is now stored directly on each object
* [#4941](https://github.com/netbox-community/netbox/issues/4941) - `commit` argument is now required argument in a custom script's `run()` method
* [#5011](https://github.com/netbox-community/netbox/issues/5011) - Standardized name field lengths across all models
* [#5225](https://github.com/netbox-community/netbox/issues/5225) - Circuit termination port speed is now an optional field
### REST API Changes

View File

@ -0,0 +1,38 @@
# Generated by Django 3.1 on 2020-10-15 19:33
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('circuits', '0023_circuittermination_port_speed_optional'),
]
operations = [
migrations.AlterField(
model_name='circuit',
name='cid',
field=models.CharField(max_length=100),
),
migrations.AlterField(
model_name='circuittype',
name='name',
field=models.CharField(max_length=100, unique=True),
),
migrations.AlterField(
model_name='circuittype',
name='slug',
field=models.SlugField(max_length=100, unique=True),
),
migrations.AlterField(
model_name='provider',
name='name',
field=models.CharField(max_length=100, unique=True),
),
migrations.AlterField(
model_name='provider',
name='slug',
field=models.SlugField(max_length=100, unique=True),
),
]

View File

@ -27,10 +27,11 @@ class Provider(ChangeLoggedModel, CustomFieldModel):
stores information pertinent to the user's relationship with the Provider.
"""
name = models.CharField(
max_length=50,
max_length=100,
unique=True
)
slug = models.SlugField(
max_length=100,
unique=True
)
asn = ASNField(
@ -98,10 +99,11 @@ class CircuitType(ChangeLoggedModel):
"Long Haul," "Metro," or "Out-of-Band".
"""
name = models.CharField(
max_length=50,
max_length=100,
unique=True
)
slug = models.SlugField(
max_length=100,
unique=True
)
description = models.CharField(
@ -138,7 +140,7 @@ class Circuit(ChangeLoggedModel, CustomFieldModel):
in Kbps.
"""
cid = models.CharField(
max_length=50,
max_length=100,
verbose_name='Circuit ID'
)
provider = models.ForeignKey(

View File

@ -0,0 +1,98 @@
# Generated by Django 3.1 on 2020-10-15 19:33
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('dcim', '0121_cablepath'),
]
operations = [
migrations.AlterField(
model_name='devicerole',
name='name',
field=models.CharField(max_length=100, unique=True),
),
migrations.AlterField(
model_name='devicerole',
name='slug',
field=models.SlugField(max_length=100, unique=True),
),
migrations.AlterField(
model_name='devicetype',
name='model',
field=models.CharField(max_length=100),
),
migrations.AlterField(
model_name='devicetype',
name='slug',
field=models.SlugField(max_length=100),
),
migrations.AlterField(
model_name='manufacturer',
name='name',
field=models.CharField(max_length=100, unique=True),
),
migrations.AlterField(
model_name='manufacturer',
name='slug',
field=models.SlugField(max_length=100, unique=True),
),
migrations.AlterField(
model_name='powerfeed',
name='name',
field=models.CharField(max_length=100),
),
migrations.AlterField(
model_name='powerpanel',
name='name',
field=models.CharField(max_length=100),
),
migrations.AlterField(
model_name='rack',
name='name',
field=models.CharField(max_length=100),
),
migrations.AlterField(
model_name='rackgroup',
name='name',
field=models.CharField(max_length=100),
),
migrations.AlterField(
model_name='rackgroup',
name='slug',
field=models.SlugField(max_length=100),
),
migrations.AlterField(
model_name='rackrole',
name='name',
field=models.CharField(max_length=100, unique=True),
),
migrations.AlterField(
model_name='rackrole',
name='slug',
field=models.SlugField(max_length=100, unique=True),
),
migrations.AlterField(
model_name='region',
name='name',
field=models.CharField(max_length=100, unique=True),
),
migrations.AlterField(
model_name='region',
name='slug',
field=models.SlugField(max_length=100, unique=True),
),
migrations.AlterField(
model_name='site',
name='name',
field=models.CharField(max_length=100, unique=True),
),
migrations.AlterField(
model_name='site',
name='slug',
field=models.SlugField(max_length=100, unique=True),
),
]

View File

@ -41,10 +41,11 @@ class Manufacturer(ChangeLoggedModel):
A Manufacturer represents a company which produces hardware devices; for example, Juniper or Dell.
"""
name = models.CharField(
max_length=50,
max_length=100,
unique=True
)
slug = models.SlugField(
max_length=100,
unique=True
)
description = models.CharField(
@ -95,9 +96,11 @@ class DeviceType(ChangeLoggedModel, CustomFieldModel):
related_name='device_types'
)
model = models.CharField(
max_length=50
max_length=100
)
slug = models.SlugField(
max_length=100
)
slug = models.SlugField()
part_number = models.CharField(
max_length=50,
blank=True,
@ -340,10 +343,11 @@ class DeviceRole(ChangeLoggedModel):
virtual machines as well.
"""
name = models.CharField(
max_length=50,
max_length=100,
unique=True
)
slug = models.SlugField(
max_length=100,
unique=True
)
color = ColorField(
@ -390,8 +394,8 @@ class Platform(ChangeLoggedModel):
unique=True
)
slug = models.SlugField(
unique=True,
max_length=100
max_length=100,
unique=True
)
manufacturer = models.ForeignKey(
to='dcim.Manufacturer',

View File

@ -38,7 +38,7 @@ class PowerPanel(ChangeLoggedModel, CustomFieldModel):
null=True
)
name = models.CharField(
max_length=50
max_length=100
)
tags = TaggableManager(through=TaggedItem)
@ -89,7 +89,7 @@ class PowerFeed(ChangeLoggedModel, PathEndpoint, CableTermination, CustomFieldMo
null=True
)
name = models.CharField(
max_length=50
max_length=100
)
status = models.CharField(
max_length=50,

View File

@ -47,9 +47,11 @@ class RackGroup(MPTTModel, ChangeLoggedModel):
campus. If a Site instead represents a single building, a RackGroup might represent a single room or floor.
"""
name = models.CharField(
max_length=50
max_length=100
)
slug = models.SlugField(
max_length=100
)
slug = models.SlugField()
site = models.ForeignKey(
to='dcim.Site',
on_delete=models.CASCADE,
@ -118,10 +120,11 @@ class RackRole(ChangeLoggedModel):
Racks can be organized by functional role, similar to Devices.
"""
name = models.CharField(
max_length=50,
max_length=100,
unique=True
)
slug = models.SlugField(
max_length=100,
unique=True
)
color = ColorField(
@ -161,7 +164,7 @@ class Rack(ChangeLoggedModel, CustomFieldModel):
Each Rack is assigned to a Site and (optionally) a RackGroup.
"""
name = models.CharField(
max_length=50
max_length=100
)
_name = NaturalOrderingField(
target_field='name',

View File

@ -39,10 +39,11 @@ class Region(MPTTModel, ChangeLoggedModel):
db_index=True
)
name = models.CharField(
max_length=50,
max_length=100,
unique=True
)
slug = models.SlugField(
max_length=100,
unique=True
)
description = models.CharField(
@ -98,7 +99,7 @@ class Site(ChangeLoggedModel, CustomFieldModel):
field can be used to include an external designation, such as a data center name (e.g. Equinix SV6).
"""
name = models.CharField(
max_length=50,
max_length=100,
unique=True
)
_name = NaturalOrderingField(
@ -107,6 +108,7 @@ class Site(ChangeLoggedModel, CustomFieldModel):
blank=True
)
slug = models.SlugField(
max_length=100,
unique=True
)
status = models.CharField(

View File

@ -0,0 +1,53 @@
# Generated by Django 3.1 on 2020-10-15 19:33
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('ipam', '0041_routetarget'),
]
operations = [
migrations.AlterField(
model_name='rir',
name='name',
field=models.CharField(max_length=100, unique=True),
),
migrations.AlterField(
model_name='rir',
name='slug',
field=models.SlugField(max_length=100, unique=True),
),
migrations.AlterField(
model_name='role',
name='name',
field=models.CharField(max_length=100, unique=True),
),
migrations.AlterField(
model_name='role',
name='slug',
field=models.SlugField(max_length=100, unique=True),
),
migrations.AlterField(
model_name='service',
name='name',
field=models.CharField(max_length=100),
),
migrations.AlterField(
model_name='vlangroup',
name='name',
field=models.CharField(max_length=100),
),
migrations.AlterField(
model_name='vlangroup',
name='slug',
field=models.SlugField(max_length=100),
),
migrations.AlterField(
model_name='vrf',
name='name',
field=models.CharField(max_length=100),
),
]

View File

@ -46,7 +46,7 @@ class VRF(ChangeLoggedModel, CustomFieldModel):
are said to exist in the "global" table.)
"""
name = models.CharField(
max_length=50
max_length=100
)
rd = models.CharField(
max_length=VRF_RD_MAX_LENGTH,
@ -168,10 +168,11 @@ class RIR(ChangeLoggedModel):
space. This can be an organization like ARIN or RIPE, or a governing standard such as RFC 1918.
"""
name = models.CharField(
max_length=50,
max_length=100,
unique=True
)
slug = models.SlugField(
max_length=100,
unique=True
)
is_private = models.BooleanField(
@ -313,10 +314,11 @@ class Role(ChangeLoggedModel):
"Management."
"""
name = models.CharField(
max_length=50,
max_length=100,
unique=True
)
slug = models.SlugField(
max_length=100,
unique=True
)
weight = models.PositiveSmallIntegerField(
@ -826,9 +828,11 @@ class VLANGroup(ChangeLoggedModel):
A VLAN group is an arbitrary collection of VLANs within which VLAN IDs and names must be unique.
"""
name = models.CharField(
max_length=50
max_length=100
)
slug = models.SlugField(
max_length=100
)
slug = models.SlugField()
site = models.ForeignKey(
to='dcim.Site',
on_delete=models.PROTECT,
@ -1021,7 +1025,7 @@ class Service(ChangeLoggedModel, CustomFieldModel):
blank=True
)
name = models.CharField(
max_length=30
max_length=100
)
protocol = models.CharField(
max_length=50,

View File

@ -0,0 +1,23 @@
# Generated by Django 3.1 on 2020-10-15 19:33
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('secrets', '0011_secret_generic_assignments'),
]
operations = [
migrations.AlterField(
model_name='secretrole',
name='name',
field=models.CharField(max_length=100, unique=True),
),
migrations.AlterField(
model_name='secretrole',
name='slug',
field=models.SlugField(max_length=100, unique=True),
),
]

View File

@ -241,10 +241,11 @@ class SecretRole(ChangeLoggedModel):
such as "Login Credentials" or "SNMP Communities."
"""
name = models.CharField(
max_length=50,
max_length=100,
unique=True
)
slug = models.SlugField(
max_length=100,
unique=True
)
description = models.CharField(

View File

@ -0,0 +1,33 @@
# Generated by Django 3.1 on 2020-10-15 19:33
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('tenancy', '0010_custom_field_data'),
]
operations = [
migrations.AlterField(
model_name='tenant',
name='name',
field=models.CharField(max_length=100, unique=True),
),
migrations.AlterField(
model_name='tenant',
name='slug',
field=models.SlugField(max_length=100, unique=True),
),
migrations.AlterField(
model_name='tenantgroup',
name='name',
field=models.CharField(max_length=100, unique=True),
),
migrations.AlterField(
model_name='tenantgroup',
name='slug',
field=models.SlugField(max_length=100, unique=True),
),
]

View File

@ -21,10 +21,11 @@ class TenantGroup(MPTTModel, ChangeLoggedModel):
An arbitrary collection of Tenants.
"""
name = models.CharField(
max_length=50,
max_length=100,
unique=True
)
slug = models.SlugField(
max_length=100,
unique=True
)
parent = TreeForeignKey(
@ -81,10 +82,11 @@ class Tenant(ChangeLoggedModel, CustomFieldModel):
department.
"""
name = models.CharField(
max_length=30,
max_length=100,
unique=True
)
slug = models.SlugField(
max_length=100,
unique=True
)
group = models.ForeignKey(

View File

@ -0,0 +1,33 @@
# Generated by Django 3.1 on 2020-10-15 19:33
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('virtualization', '0018_custom_field_data'),
]
operations = [
migrations.AlterField(
model_name='clustergroup',
name='name',
field=models.CharField(max_length=100, unique=True),
),
migrations.AlterField(
model_name='clustergroup',
name='slug',
field=models.SlugField(max_length=100, unique=True),
),
migrations.AlterField(
model_name='clustertype',
name='name',
field=models.CharField(max_length=100, unique=True),
),
migrations.AlterField(
model_name='clustertype',
name='slug',
field=models.SlugField(max_length=100, unique=True),
),
]

View File

@ -35,10 +35,11 @@ class ClusterType(ChangeLoggedModel):
A type of Cluster.
"""
name = models.CharField(
max_length=50,
max_length=100,
unique=True
)
slug = models.SlugField(
max_length=100,
unique=True
)
description = models.CharField(
@ -76,10 +77,11 @@ class ClusterGroup(ChangeLoggedModel):
An organizational group of Clusters.
"""
name = models.CharField(
max_length=50,
max_length=100,
unique=True
)
slug = models.SlugField(
max_length=100,
unique=True
)
description = models.CharField(