8356 render single disk field

This commit is contained in:
Arthur 2023-10-30 11:38:40 -07:00
parent 84b4ab1c5e
commit f869fe6c77
2 changed files with 19 additions and 5 deletions

View File

@ -85,7 +85,6 @@ class VirtualMachineSerializer(NetBoxModelSerializer):
# Counter fields # Counter fields
interface_count = serializers.IntegerField(read_only=True) interface_count = serializers.IntegerField(read_only=True)
virtual_disk_count = serializers.IntegerField(read_only=True) virtual_disk_count = serializers.IntegerField(read_only=True)
virtual_disk_space = serializers.IntegerField(read_only=True)
class Meta: class Meta:
model = VirtualMachine model = VirtualMachine
@ -93,10 +92,16 @@ class VirtualMachineSerializer(NetBoxModelSerializer):
'id', 'url', 'display', 'name', 'status', 'site', 'cluster', 'device', 'role', 'tenant', 'platform', 'id', 'url', 'display', 'name', 'status', 'site', 'cluster', 'device', 'role', 'tenant', 'platform',
'primary_ip', 'primary_ip4', 'primary_ip6', 'vcpus', 'memory', 'disk', 'description', 'comments', 'primary_ip', 'primary_ip4', 'primary_ip6', 'vcpus', 'memory', 'disk', 'description', 'comments',
'config_template', 'local_context_data', 'tags', 'custom_fields', 'created', 'last_updated', 'config_template', 'local_context_data', 'tags', 'custom_fields', 'created', 'last_updated',
'interface_count', 'virtual_disk_count', 'virtual_disk_space', 'interface_count', 'virtual_disk_count',
] ]
validators = [] validators = []
def get_disk(self, obj):
if obj.disk:
return obj.disk
return obj.virtual_disk_space
class VirtualMachineWithConfigContextSerializer(VirtualMachineSerializer): class VirtualMachineWithConfigContextSerializer(VirtualMachineSerializer):
config_context = serializers.SerializerMethodField() config_context = serializers.SerializerMethodField()

View File

@ -93,7 +93,8 @@ class VirtualMachineTable(TenancyColumnsMixin, ContactsColumnMixin, NetBoxTable)
verbose_name=_('Config Template'), verbose_name=_('Config Template'),
linkify=True linkify=True
) )
disk_size = tables.Column( disk = tables.Column(
empty_values=(),
verbose_name=_('Disk Size (GB)'), verbose_name=_('Disk Size (GB)'),
) )
@ -101,18 +102,26 @@ class VirtualMachineTable(TenancyColumnsMixin, ContactsColumnMixin, NetBoxTable)
model = VirtualMachine model = VirtualMachine
fields = ( fields = (
'pk', 'id', 'name', 'status', 'site', 'cluster', 'device', 'role', 'tenant', 'tenant_group', 'platform', 'pk', 'id', 'name', 'status', 'site', 'cluster', 'device', 'role', 'tenant', 'tenant_group', 'platform',
'vcpus', 'memory', 'disk', 'disk_size', 'primary_ip4', 'primary_ip6', 'primary_ip', 'description', 'comments', 'vcpus', 'memory', 'disk', 'primary_ip4', 'primary_ip6', 'primary_ip', 'description', 'comments',
'config_template', 'contacts', 'tags', 'created', 'last_updated', 'config_template', 'contacts', 'tags', 'created', 'last_updated',
) )
default_columns = ( default_columns = (
'pk', 'name', 'status', 'site', 'cluster', 'role', 'tenant', 'vcpus', 'memory', 'disk_size', 'primary_ip', 'pk', 'name', 'status', 'site', 'cluster', 'role', 'tenant', 'vcpus', 'memory', 'disk', 'primary_ip',
) )
def render_disk(self, value, record):
if record.disk:
return record.disk
elif record.disk_size:
return record.disk_size
else:
return ''
# #
# VM components # VM components
# #
class VMInterfaceTable(BaseInterfaceTable): class VMInterfaceTable(BaseInterfaceTable):
virtual_machine = tables.Column( virtual_machine = tables.Column(
verbose_name=_('Virtual Machine'), verbose_name=_('Virtual Machine'),