diff --git a/netbox/netbox/views.py b/netbox/netbox/views.py index d5224b462..3733a5715 100644 --- a/netbox/netbox/views.py +++ b/netbox/netbox/views.py @@ -25,6 +25,9 @@ from secrets.tables import SecretTable from tenancy.filters import TenantFilter from tenancy.models import Tenant from tenancy.tables import TenantTable +from virtualization.filters import ClusterFilter, VirtualMachineFilter +from virtualization.models import Cluster, VirtualMachine +from virtualization.tables import ClusterTable, VirtualMachineTable from .forms import SearchForm @@ -90,7 +93,7 @@ SEARCH_TYPES = OrderedDict(( 'url': 'ipam:prefix_list', }), ('ipaddress', { - 'queryset': IPAddress.objects.select_related('vrf__tenant', 'tenant', 'interface__device'), + 'queryset': IPAddress.objects.select_related('vrf__tenant', 'tenant'), 'filter': IPAddressFilter, 'table': IPAddressTable, 'url': 'ipam:ipaddress_list', @@ -115,6 +118,19 @@ SEARCH_TYPES = OrderedDict(( 'table': TenantTable, 'url': 'tenancy:tenant_list', }), + # Virtualization + ('cluster', { + 'queryset': Cluster.objects.all(), + 'filter': ClusterFilter, + 'table': ClusterTable, + 'url': 'virtualization:cluster_list', + }), + ('virtualmachine', { + 'queryset': VirtualMachine.objects.select_related('cluster', 'tenant', 'platform'), + 'filter': VirtualMachineFilter, + 'table': VirtualMachineTable, + 'url': 'virtualization:virtualmachine_list', + }), )) @@ -150,6 +166,10 @@ class HomeView(View): # Secrets 'secret_count': Secret.objects.count(), + # Virtualization + 'cluster_count': Cluster.objects.count(), + 'virtualmachine_count': VirtualMachine.objects.count(), + } return render(request, self.template_name, { diff --git a/netbox/templates/home.html b/netbox/templates/home.html index 0c3c7d13b..c73de0000 100644 --- a/netbox/templates/home.html +++ b/netbox/templates/home.html @@ -55,20 +55,23 @@ - {% if perms.secrets %} -
-
- Secrets +
+
+ Virtualization +
+
+
+ {{ stats.cluster_count }} +

Clusters

+

Clusters of physical hosts in which VMs reside

-
-
- {{ stats.secret_count }} -

Secrets

-

Sensitive data (such as passwords) which has been stored securely

-
+
+ {{ stats.virtualmachine_count }} +

Virtual Machines

+

Virtual compute instances running inside clusters

- {% endif %} +
@@ -120,6 +123,20 @@
+ {% if perms.secrets %} +
+
+ Secrets +
+
+
+ {{ stats.secret_count }} +

Secrets

+

Sensitive data (such as passwords) which has been stored securely

+
+
+
+ {% endif %}