mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-30 04:16:24 -06:00
11279 refactor VirtualDisk
This commit is contained in:
parent
23a22e7f1c
commit
973c410db2
@ -25,7 +25,6 @@ class ComponentType(NetBoxObjectType):
|
|||||||
"""
|
"""
|
||||||
Base type for device/VM components
|
Base type for device/VM components
|
||||||
"""
|
"""
|
||||||
_name: str
|
|
||||||
virtual_machine: Annotated["VirtualMachineType", strawberry.lazy('virtualization.graphql.types')]
|
virtual_machine: Annotated["VirtualMachineType", strawberry.lazy('virtualization.graphql.types')]
|
||||||
|
|
||||||
|
|
||||||
@ -101,6 +100,7 @@ class VirtualMachineType(ConfigContextMixin, ContactsMixin, NetBoxObjectType):
|
|||||||
filters=VMInterfaceFilter
|
filters=VMInterfaceFilter
|
||||||
)
|
)
|
||||||
class VMInterfaceType(IPAddressesMixin, ComponentType):
|
class VMInterfaceType(IPAddressesMixin, ComponentType):
|
||||||
|
_name: str
|
||||||
mac_address: str | None
|
mac_address: str | None
|
||||||
parent: Annotated["VMInterfaceType", strawberry.lazy('virtualization.graphql.types')] | None
|
parent: Annotated["VMInterfaceType", strawberry.lazy('virtualization.graphql.types')] | None
|
||||||
bridge: Annotated["VMInterfaceType", strawberry.lazy('virtualization.graphql.types')] | None
|
bridge: Annotated["VMInterfaceType", strawberry.lazy('virtualization.graphql.types')] | None
|
||||||
|
@ -15,6 +15,10 @@ class Migration(migrations.Migration):
|
|||||||
name='virtualmachine',
|
name='virtualmachine',
|
||||||
options={'ordering': ('name', 'pk')},
|
options={'ordering': ('name', 'pk')},
|
||||||
),
|
),
|
||||||
|
migrations.AlterModelOptions(
|
||||||
|
name='virtualdisk',
|
||||||
|
options={'ordering': ('virtual_machine', 'name')},
|
||||||
|
),
|
||||||
migrations.RemoveField(
|
migrations.RemoveField(
|
||||||
model_name='virtualmachine',
|
model_name='virtualmachine',
|
||||||
name='_name',
|
name='_name',
|
||||||
@ -29,14 +33,13 @@ class Migration(migrations.Migration):
|
|||||||
name='name',
|
name='name',
|
||||||
field=models.CharField(db_collation='natural_sort', max_length=64),
|
field=models.CharField(db_collation='natural_sort', max_length=64),
|
||||||
),
|
),
|
||||||
migrations.AlterField(
|
|
||||||
model_name='vminterface',
|
|
||||||
name='name',
|
|
||||||
field=models.CharField(db_collation='natural_sort', max_length=64),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
migrations.AlterField(
|
||||||
model_name='cluster',
|
model_name='cluster',
|
||||||
name='name',
|
name='name',
|
||||||
field=models.CharField(db_collation='natural_sort', max_length=100),
|
field=models.CharField(db_collation='natural_sort', max_length=100),
|
||||||
),
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='virtualdisk',
|
||||||
|
name='_name',
|
||||||
|
),
|
||||||
]
|
]
|
||||||
|
@ -267,17 +267,6 @@ class ComponentModel(NetBoxModel):
|
|||||||
on_delete=models.CASCADE,
|
on_delete=models.CASCADE,
|
||||||
related_name='%(class)ss'
|
related_name='%(class)ss'
|
||||||
)
|
)
|
||||||
name = models.CharField(
|
|
||||||
verbose_name=_('name'),
|
|
||||||
max_length=64,
|
|
||||||
db_collation="natural_sort"
|
|
||||||
)
|
|
||||||
_name = NaturalOrderingField(
|
|
||||||
target_field='name',
|
|
||||||
naturalize_function=naturalize_interface,
|
|
||||||
max_length=100,
|
|
||||||
blank=True
|
|
||||||
)
|
|
||||||
description = models.CharField(
|
description = models.CharField(
|
||||||
verbose_name=_('description'),
|
verbose_name=_('description'),
|
||||||
max_length=200,
|
max_length=200,
|
||||||
@ -286,7 +275,6 @@ class ComponentModel(NetBoxModel):
|
|||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
abstract = True
|
abstract = True
|
||||||
ordering = ('virtual_machine', CollateAsChar('_name'))
|
|
||||||
constraints = (
|
constraints = (
|
||||||
models.UniqueConstraint(
|
models.UniqueConstraint(
|
||||||
fields=('virtual_machine', 'name'),
|
fields=('virtual_machine', 'name'),
|
||||||
@ -308,6 +296,16 @@ class ComponentModel(NetBoxModel):
|
|||||||
|
|
||||||
|
|
||||||
class VMInterface(ComponentModel, BaseInterface, TrackingModelMixin):
|
class VMInterface(ComponentModel, BaseInterface, TrackingModelMixin):
|
||||||
|
name = models.CharField(
|
||||||
|
verbose_name=_('name'),
|
||||||
|
max_length=64,
|
||||||
|
)
|
||||||
|
_name = NaturalOrderingField(
|
||||||
|
target_field='name',
|
||||||
|
naturalize_function=naturalize_interface,
|
||||||
|
max_length=100,
|
||||||
|
blank=True
|
||||||
|
)
|
||||||
virtual_machine = models.ForeignKey(
|
virtual_machine = models.ForeignKey(
|
||||||
to='virtualization.VirtualMachine',
|
to='virtualization.VirtualMachine',
|
||||||
on_delete=models.CASCADE,
|
on_delete=models.CASCADE,
|
||||||
@ -355,6 +353,7 @@ class VMInterface(ComponentModel, BaseInterface, TrackingModelMixin):
|
|||||||
class Meta(ComponentModel.Meta):
|
class Meta(ComponentModel.Meta):
|
||||||
verbose_name = _('interface')
|
verbose_name = _('interface')
|
||||||
verbose_name_plural = _('interfaces')
|
verbose_name_plural = _('interfaces')
|
||||||
|
ordering = ('virtual_machine', CollateAsChar('_name'))
|
||||||
|
|
||||||
def clean(self):
|
def clean(self):
|
||||||
super().clean()
|
super().clean()
|
||||||
@ -406,6 +405,11 @@ class VMInterface(ComponentModel, BaseInterface, TrackingModelMixin):
|
|||||||
|
|
||||||
|
|
||||||
class VirtualDisk(ComponentModel, TrackingModelMixin):
|
class VirtualDisk(ComponentModel, TrackingModelMixin):
|
||||||
|
name = models.CharField(
|
||||||
|
verbose_name=_('name'),
|
||||||
|
max_length=64,
|
||||||
|
db_collation="natural_sort"
|
||||||
|
)
|
||||||
size = models.PositiveIntegerField(
|
size = models.PositiveIntegerField(
|
||||||
verbose_name=_('size (MB)'),
|
verbose_name=_('size (MB)'),
|
||||||
)
|
)
|
||||||
@ -413,3 +417,4 @@ class VirtualDisk(ComponentModel, TrackingModelMixin):
|
|||||||
class Meta(ComponentModel.Meta):
|
class Meta(ComponentModel.Meta):
|
||||||
verbose_name = _('virtual disk')
|
verbose_name = _('virtual disk')
|
||||||
verbose_name_plural = _('virtual disks')
|
verbose_name_plural = _('virtual disks')
|
||||||
|
ordering = ('virtual_machine', 'name')
|
||||||
|
Loading…
Reference in New Issue
Block a user