Browse Source

Closes #1321: Added created and last_updated fields for relevant models to their API serializers

Jeremy Stretch 7 years ago
parent
commit
063e79451f

+ 4 - 4
netbox/circuits/api/serializers.py

@@ -19,7 +19,7 @@ class ProviderSerializer(CustomFieldModelSerializer):
         model = Provider
         fields = [
             'id', 'name', 'slug', 'asn', 'account', 'portal_url', 'noc_contact', 'admin_contact', 'comments',
-            'custom_fields',
+            'custom_fields', 'created', 'last_updated',
         ]
 
 
@@ -37,7 +37,7 @@ class WritableProviderSerializer(CustomFieldModelSerializer):
         model = Provider
         fields = [
             'id', 'name', 'slug', 'asn', 'account', 'portal_url', 'noc_contact', 'admin_contact', 'comments',
-            'custom_fields',
+            'custom_fields', 'created', 'last_updated',
         ]
 
 
@@ -73,7 +73,7 @@ class CircuitSerializer(CustomFieldModelSerializer):
         model = Circuit
         fields = [
             'id', 'cid', 'provider', 'type', 'tenant', 'install_date', 'commit_rate', 'description', 'comments',
-            'custom_fields',
+            'custom_fields', 'created', 'last_updated',
         ]
 
 
@@ -91,7 +91,7 @@ class WritableCircuitSerializer(CustomFieldModelSerializer):
         model = Circuit
         fields = [
             'id', 'cid', 'provider', 'type', 'tenant', 'install_date', 'commit_rate', 'description', 'comments',
-            'custom_fields',
+            'custom_fields', 'created', 'last_updated',
         ]
 
 

+ 7 - 4
netbox/dcim/api/serializers.py

@@ -65,7 +65,8 @@ class SiteSerializer(CustomFieldModelSerializer):
         fields = [
             'id', 'name', 'slug', 'region', 'tenant', 'facility', 'asn', 'time_zone', 'physical_address',
             'shipping_address', 'contact_name', 'contact_phone', 'contact_email', 'comments', 'custom_fields',
-            'count_prefixes', 'count_vlans', 'count_racks', 'count_devices', 'count_circuits',
+            'created', 'last_updated', 'count_prefixes', 'count_vlans', 'count_racks', 'count_devices',
+            'count_circuits',
         ]
 
 
@@ -85,6 +86,7 @@ class WritableSiteSerializer(CustomFieldModelSerializer):
         fields = [
             'id', 'name', 'slug', 'region', 'tenant', 'facility', 'asn', 'time_zone', 'physical_address',
             'shipping_address', 'contact_name', 'contact_phone', 'contact_email', 'comments', 'custom_fields',
+            'created', 'last_updated',
         ]
 
 
@@ -150,7 +152,7 @@ class RackSerializer(CustomFieldModelSerializer):
         model = Rack
         fields = [
             'id', 'name', 'facility_id', 'display_name', 'site', 'group', 'tenant', 'role', 'serial', 'type', 'width',
-            'u_height', 'desc_units', 'comments', 'custom_fields',
+            'u_height', 'desc_units', 'comments', 'custom_fields', 'created', 'last_updated',
         ]
 
 
@@ -168,7 +170,7 @@ class WritableRackSerializer(CustomFieldModelSerializer):
         model = Rack
         fields = [
             'id', 'name', 'facility_id', 'site', 'group', 'tenant', 'role', 'serial', 'type', 'width', 'u_height',
-            'desc_units', 'comments', 'custom_fields',
+            'desc_units', 'comments', 'custom_fields', 'created', 'last_updated',
         ]
         # Omit the UniqueTogetherValidator that would be automatically added to validate (site, facility_id). This
         # prevents facility_id from being interpreted as a required field.
@@ -493,7 +495,7 @@ class DeviceSerializer(CustomFieldModelSerializer):
         fields = [
             'id', 'name', 'display_name', 'device_type', 'device_role', 'tenant', 'platform', 'serial', 'asset_tag',
             'site', 'rack', 'position', 'face', 'parent_device', 'status', 'primary_ip', 'primary_ip4', 'primary_ip6',
-            'cluster', 'comments', 'custom_fields',
+            'cluster', 'comments', 'custom_fields', 'created', 'last_updated',
         ]
 
     def get_parent_device(self, obj):
@@ -514,6 +516,7 @@ class WritableDeviceSerializer(CustomFieldModelSerializer):
         fields = [
             'id', 'name', 'device_type', 'device_role', 'tenant', 'platform', 'serial', 'asset_tag', 'site', 'rack',
             'position', 'face', 'status', 'primary_ip4', 'primary_ip6', 'cluster', 'comments', 'custom_fields',
+            'created', 'last_updated',
         ]
         validators = []
 

+ 28 - 12
netbox/ipam/api/serializers.py

@@ -27,7 +27,10 @@ class VRFSerializer(CustomFieldModelSerializer):
 
     class Meta:
         model = VRF
-        fields = ['id', 'name', 'rd', 'tenant', 'enforce_unique', 'description', 'display_name', 'custom_fields']
+        fields = [
+            'id', 'name', 'rd', 'tenant', 'enforce_unique', 'description', 'display_name', 'custom_fields', 'created',
+            'last_updated',
+        ]
 
 
 class NestedVRFSerializer(serializers.ModelSerializer):
@@ -42,7 +45,9 @@ class WritableVRFSerializer(CustomFieldModelSerializer):
 
     class Meta:
         model = VRF
-        fields = ['id', 'name', 'rd', 'tenant', 'enforce_unique', 'description', 'custom_fields']
+        fields = [
+            'id', 'name', 'rd', 'tenant', 'enforce_unique', 'description', 'custom_fields', 'created', 'last_updated',
+        ]
 
 
 #
@@ -92,7 +97,9 @@ class AggregateSerializer(CustomFieldModelSerializer):
 
     class Meta:
         model = Aggregate
-        fields = ['id', 'family', 'prefix', 'rir', 'date_added', 'description', 'custom_fields']
+        fields = [
+            'id', 'family', 'prefix', 'rir', 'date_added', 'description', 'custom_fields', 'created', 'last_updated',
+        ]
 
 
 class NestedAggregateSerializer(serializers.ModelSerializer):
@@ -107,7 +114,7 @@ class WritableAggregateSerializer(CustomFieldModelSerializer):
 
     class Meta:
         model = Aggregate
-        fields = ['id', 'prefix', 'rir', 'date_added', 'description', 'custom_fields']
+        fields = ['id', 'prefix', 'rir', 'date_added', 'description', 'custom_fields', 'created', 'last_updated']
 
 
 #
@@ -167,7 +174,7 @@ class VLANSerializer(CustomFieldModelSerializer):
         model = VLAN
         fields = [
             'id', 'site', 'group', 'vid', 'name', 'tenant', 'status', 'role', 'description', 'display_name',
-            'custom_fields',
+            'custom_fields', 'created', 'last_updated',
         ]
 
 
@@ -183,7 +190,10 @@ class WritableVLANSerializer(CustomFieldModelSerializer):
 
     class Meta:
         model = VLAN
-        fields = ['id', 'site', 'group', 'vid', 'name', 'tenant', 'status', 'role', 'description', 'custom_fields']
+        fields = [
+            'id', 'site', 'group', 'vid', 'name', 'tenant', 'status', 'role', 'description', 'custom_fields', 'created',
+            'last_updated',
+        ]
         validators = []
 
     def validate(self, data):
@@ -217,7 +227,7 @@ class PrefixSerializer(CustomFieldModelSerializer):
         model = Prefix
         fields = [
             'id', 'family', 'prefix', 'site', 'vrf', 'tenant', 'vlan', 'status', 'role', 'is_pool', 'description',
-            'custom_fields',
+            'custom_fields', 'created', 'last_updated',
         ]
 
 
@@ -235,7 +245,7 @@ class WritablePrefixSerializer(CustomFieldModelSerializer):
         model = Prefix
         fields = [
             'id', 'prefix', 'site', 'vrf', 'tenant', 'vlan', 'status', 'role', 'is_pool', 'description',
-            'custom_fields',
+            'custom_fields', 'created', 'last_updated',
         ]
 
 
@@ -288,7 +298,7 @@ class IPAddressSerializer(CustomFieldModelSerializer):
         model = IPAddress
         fields = [
             'id', 'family', 'address', 'vrf', 'tenant', 'status', 'role', 'interface', 'description', 'nat_inside',
-            'nat_outside', 'custom_fields',
+            'nat_outside', 'custom_fields', 'created', 'last_updated',
         ]
 
 
@@ -310,7 +320,7 @@ class WritableIPAddressSerializer(CustomFieldModelSerializer):
         model = IPAddress
         fields = [
             'id', 'address', 'vrf', 'tenant', 'status', 'role', 'interface', 'description', 'nat_inside',
-            'custom_fields',
+            'custom_fields', 'created', 'last_updated',
         ]
 
 
@@ -340,7 +350,10 @@ class ServiceSerializer(serializers.ModelSerializer):
 
     class Meta:
         model = Service
-        fields = ['id', 'device', 'virtual_machine', 'name', 'port', 'protocol', 'ipaddresses', 'description']
+        fields = [
+            'id', 'device', 'virtual_machine', 'name', 'port', 'protocol', 'ipaddresses', 'description', 'created',
+            'last_updated',
+        ]
 
 
 # TODO: Figure out how to use model validation with ManyToManyFields. Calling clean() yields a ValueError.
@@ -348,4 +361,7 @@ class WritableServiceSerializer(serializers.ModelSerializer):
 
     class Meta:
         model = Service
-        fields = ['id', 'device', 'virtual_machine', 'name', 'port', 'protocol', 'ipaddresses', 'description']
+        fields = [
+            'id', 'device', 'virtual_machine', 'name', 'port', 'protocol', 'ipaddresses', 'description', 'created',
+            'last_updated',
+        ]

+ 1 - 1
netbox/secrets/api/serializers.py

@@ -45,7 +45,7 @@ class WritableSecretSerializer(serializers.ModelSerializer):
 
     class Meta:
         model = Secret
-        fields = ['id', 'device', 'role', 'name', 'plaintext']
+        fields = ['id', 'device', 'role', 'name', 'plaintext', 'hash', 'created', 'last_updated']
         validators = []
 
     def validate(self, data):

+ 2 - 2
netbox/tenancy/api/serializers.py

@@ -35,7 +35,7 @@ class TenantSerializer(CustomFieldModelSerializer):
 
     class Meta:
         model = Tenant
-        fields = ['id', 'name', 'slug', 'group', 'description', 'comments', 'custom_fields']
+        fields = ['id', 'name', 'slug', 'group', 'description', 'comments', 'custom_fields', 'created', 'last_updated']
 
 
 class NestedTenantSerializer(serializers.ModelSerializer):
@@ -50,4 +50,4 @@ class WritableTenantSerializer(CustomFieldModelSerializer):
 
     class Meta:
         model = Tenant
-        fields = ['id', 'name', 'slug', 'group', 'description', 'comments', 'custom_fields']
+        fields = ['id', 'name', 'slug', 'group', 'description', 'comments', 'custom_fields', 'created', 'last_updated']

+ 4 - 4
netbox/virtualization/api/serializers.py

@@ -62,7 +62,7 @@ class ClusterSerializer(CustomFieldModelSerializer):
 
     class Meta:
         model = Cluster
-        fields = ['id', 'name', 'type', 'group', 'site', 'comments', 'custom_fields']
+        fields = ['id', 'name', 'type', 'group', 'site', 'comments', 'custom_fields', 'created', 'last_updated']
 
 
 class NestedClusterSerializer(serializers.ModelSerializer):
@@ -77,7 +77,7 @@ class WritableClusterSerializer(CustomFieldModelSerializer):
 
     class Meta:
         model = Cluster
-        fields = ['id', 'name', 'type', 'group', 'site', 'comments', 'custom_fields']
+        fields = ['id', 'name', 'type', 'group', 'site', 'comments', 'custom_fields', 'created', 'last_updated']
 
 
 #
@@ -107,7 +107,7 @@ class VirtualMachineSerializer(CustomFieldModelSerializer):
         model = VirtualMachine
         fields = [
             'id', 'name', 'status', 'cluster', 'role', 'tenant', 'platform', 'primary_ip', 'primary_ip4', 'primary_ip6',
-            'vcpus', 'memory', 'disk', 'comments', 'custom_fields',
+            'vcpus', 'memory', 'disk', 'comments', 'custom_fields', 'created', 'last_updated',
         ]
 
 
@@ -125,7 +125,7 @@ class WritableVirtualMachineSerializer(CustomFieldModelSerializer):
         model = VirtualMachine
         fields = [
             'id', 'name', 'status', 'cluster', 'role', 'tenant', 'platform', 'primary_ip4', 'primary_ip6', 'vcpus',
-            'memory', 'disk', 'comments', 'custom_fields',
+            'memory', 'disk', 'comments', 'custom_fields', 'created', 'last_updated',
         ]