Parcourir la source

Updates for v2.1.3 and expanded VirtualMachine model

Jeremy Stretch il y a 7 ans
Parent
commit
4ef55502b4

+ 6 - 6
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

+ 5 - 2
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')),

+ 12 - 0
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
     )

+ 2 - 2
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
 
 
 #