diff --git a/netbox/virtualization/api/serializers.py b/netbox/virtualization/api/serializers.py index 5b73d9bea..d5062100d 100644 --- a/netbox/virtualization/api/serializers.py +++ b/netbox/virtualization/api/serializers.py @@ -5,7 +5,7 @@ from rest_framework import serializers from dcim.api.serializers import NestedPlatformSerializer from extras.api.customfields import CustomFieldModelSerializer from tenancy.api.serializers import NestedTenantSerializer -from utilities.api import ModelValidationMixin +from utilities.api import ValidatedModelSerializer from virtualization.models import Cluster, ClusterGroup, ClusterType, VirtualMachine, VMInterface @@ -13,7 +13,7 @@ from virtualization.models import Cluster, ClusterGroup, ClusterType, VirtualMac # Cluster types # -class ClusterTypeSerializer(ModelValidationMixin, serializers.ModelSerializer): +class ClusterTypeSerializer(ValidatedModelSerializer): class Meta: model = ClusterType @@ -32,7 +32,7 @@ class NestedClusterTypeSerializer(serializers.ModelSerializer): # Cluster groups # -class ClusterGroupSerializer(ModelValidationMixin, serializers.ModelSerializer): +class ClusterGroupSerializer(ValidatedModelSerializer): class Meta: model = ClusterGroup @@ -68,7 +68,7 @@ class NestedClusterSerializer(serializers.ModelSerializer): fields = ['id', 'url', 'name'] -class WritableClusterSerializer(ModelValidationMixin, CustomFieldModelSerializer): +class WritableClusterSerializer(CustomFieldModelSerializer): class Meta: model = Cluster @@ -99,7 +99,7 @@ class NestedVirtualMachineSerializer(serializers.ModelSerializer): fields = ['id', 'url', 'name'] -class WritableVirtualMachineSerializer(ModelValidationMixin, CustomFieldModelSerializer): +class WritableVirtualMachineSerializer(CustomFieldModelSerializer): class Meta: model = Cluster @@ -130,7 +130,7 @@ class NestedVMInterfaceSerializer(serializers.ModelSerializer): fields = ['id', 'url', 'name'] -class WritableVMInterfaceSerializer(ModelValidationMixin, serializers.ModelSerializer): +class WritableVMInterfaceSerializer(ValidatedModelSerializer): class Meta: model = VMInterface diff --git a/netbox/virtualization/migrations/0001_initial.py b/netbox/virtualization/migrations/0001_initial.py index e82f39cbc..ddf7c897d 100644 --- a/netbox/virtualization/migrations/0001_initial.py +++ b/netbox/virtualization/migrations/0001_initial.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.11.3 on 2017-08-04 20:51 +# Generated by Django 1.11.4 on 2017-08-16 19:22 from __future__ import unicode_literals import dcim.fields @@ -13,9 +13,9 @@ class Migration(migrations.Migration): initial = True dependencies = [ + ('dcim', '0041_napalm_integration'), ('ipam', '0018_remove_service_uniqueness_constraint'), ('tenancy', '0003_unicode_literals'), - ('dcim', '0041_napalm_integration'), ] operations = [ @@ -63,6 +63,9 @@ class Migration(migrations.Migration): ('created', models.DateField(auto_now_add=True)), ('last_updated', models.DateTimeField(auto_now=True)), ('name', models.CharField(max_length=64, unique=True)), + ('vcpus', models.PositiveSmallIntegerField(blank=True, verbose_name='vCPUs')), + ('memory', models.PositiveIntegerField(blank=True, verbose_name='Memory (MB)')), + ('disk', models.PositiveIntegerField(blank=True, verbose_name='Disk (GB)')), ('comments', models.TextField(blank=True)), ('cluster', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='virtual_machines', to='virtualization.Cluster')), ('platform', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='virtual_machines', to='dcim.Platform')), diff --git a/netbox/virtualization/models.py b/netbox/virtualization/models.py index e47d1a884..0cd6ac791 100644 --- a/netbox/virtualization/models.py +++ b/netbox/virtualization/models.py @@ -159,6 +159,18 @@ class VirtualMachine(CreatedUpdatedModel, CustomFieldModel): null=True, verbose_name='Primary IPv6' ) + vcpus = models.PositiveSmallIntegerField( + blank=True, + verbose_name='vCPUs' + ) + memory = models.PositiveIntegerField( + blank=True, + verbose_name='Memory (MB)' + ) + disk = models.PositiveIntegerField( + blank=True, + verbose_name='Disk (GB)' + ) comments = models.TextField( blank=True ) diff --git a/netbox/virtualization/views.py b/netbox/virtualization/views.py index 969f82bac..1122cc28e 100644 --- a/netbox/virtualization/views.py +++ b/netbox/virtualization/views.py @@ -11,8 +11,8 @@ from utilities.views import ( ObjectDeleteView, ObjectEditView, ObjectListView, ) from .models import Cluster, ClusterGroup, ClusterType, VirtualMachine, VMInterface -import forms -import tables +from . import forms +from . import tables #