diff --git a/src/ralph/data_center/admin.py b/src/ralph/data_center/admin.py index 7333e8b229..777d8540a0 100644 --- a/src/ralph/data_center/admin.py +++ b/src/ralph/data_center/admin.py @@ -37,7 +37,6 @@ Database, VIP ) -from ralph.data_center.views.ui import DataCenterAssetSecurityInfo from ralph.data_importer import resources from ralph.lib.custom_fields.admin import CustomFieldValueAdminMixin from ralph.lib.table import Table @@ -47,11 +46,15 @@ from ralph.networks.models.networks import Network from ralph.networks.views import NetworkWithTerminatorsView from ralph.operations.views import OperationViewReadOnlyForExisiting +from ralph.security.views import SecurityInfo from ralph.supports.models import BaseObjectsSupport if settings.ENABLE_DNSAAS_INTEGRATION: from ralph.dns.views import DNSView + class ClusterDNSView(DNSView): + pass + @register(Accessory) class AccessoryAdmin(RalphAdmin): @@ -91,6 +94,8 @@ class ClusterAdmin(CustomFieldValueAdminMixin, RalphAdmin): list_filter = [ 'name', 'type', 'service_env', 'configuration_path', 'status' ] + if settings.ENABLE_DNSAAS_INTEGRATION: + change_views = [ClusterDNSView] class ClusterBaseObjectInline(RalphTabularInline): model = BaseObjectCluster @@ -196,6 +201,10 @@ class DataCenterAssetOperation(OperationViewReadOnlyForExisiting): inlines = OperationViewReadOnlyForExisiting.admin_class.inlines +class DataCenterAssetSecurityInfo(SecurityInfo): + url_name = 'datacenter_asset_security_info' + + @register(DataCenterAsset) class DataCenterAssetAdmin( MulitiAddAdminMixin, @@ -241,9 +250,10 @@ class DataCenterAssetAdmin( 'order_no', 'model__name', ('model__category', RelatedAutocompleteFieldListFilter), 'service_env', ('configuration_path__module', TreeRelatedAutocompleteFilterWithDescendants), # noqa - 'depreciation_end_date', 'force_depreciation', 'remarks', 'budget_info', - 'rack', 'rack__server_room', 'rack__server_room__data_center', - 'position', 'property_of', LiquidatedStatusFilter, IPFilter, + 'depreciation_end_date', 'force_depreciation', 'remarks', + 'budget_info', 'rack', 'rack__server_room', + 'rack__server_room__data_center', 'position', 'property_of', + LiquidatedStatusFilter, IPFilter, ('tags', TagsListFilter) ] date_hierarchy = 'created' diff --git a/src/ralph/data_center/views/__init__.py b/src/ralph/data_center/views/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/ralph/data_center/templates/data_center/datacenterasset/security_info.html b/src/ralph/security/templates/security/securityinfo/security_info.html similarity index 100% rename from src/ralph/data_center/templates/data_center/datacenterasset/security_info.html rename to src/ralph/security/templates/security/securityinfo/security_info.html diff --git a/src/ralph/data_center/views/ui.py b/src/ralph/security/views.py similarity index 63% rename from src/ralph/data_center/views/ui.py rename to src/ralph/security/views.py index fb43923e2a..b5b124c761 100644 --- a/src/ralph/data_center/views/ui.py +++ b/src/ralph/security/views.py @@ -3,19 +3,16 @@ from ralph.security.models import SecurityScan -class DataCenterAssetSecurityInfo( - RalphDetailView -): +class SecurityInfo(RalphDetailView): icon = 'lock' label = 'Security Info' name = 'security_info' - url_name = 'datacenter_asset_security_info' + url_name = None + template_name = 'security/securityinfo/security_info.html' def get_context_data(self, **kwargs): - context = super(DataCenterAssetSecurityInfo, self).get_context_data( - **kwargs - ) + context = super().get_context_data(**kwargs) context['security_scan'] = SecurityScan.objects.filter( base_object=self.object).last() return context diff --git a/src/ralph/virtual/admin.py b/src/ralph/virtual/admin.py index c632ab2506..2e698c7a2b 100644 --- a/src/ralph/virtual/admin.py +++ b/src/ralph/virtual/admin.py @@ -1,9 +1,11 @@ # -*- coding: utf-8 -*- +from django.conf import settings from django.core.urlresolvers import reverse from django.db.models import Count from django.utils.translation import ugettext_lazy as _ from ralph.admin import RalphAdmin, RalphAdminForm, RalphTabularInline, register + from ralph.admin.filters import ( IPFilter, TagsListFilter, @@ -16,6 +18,7 @@ from ralph.lib.transitions.admin import TransitionAdminMixin from ralph.networks.forms import SimpleNetworkForm from ralph.networks.views import NetworkView +from ralph.security.views import SecurityInfo from ralph.virtual.models import ( CloudFlavor, CloudHost, @@ -25,6 +28,20 @@ VirtualServerType ) +if settings.ENABLE_DNSAAS_INTEGRATION: + from ralph.dns.views import DNSView + + class VirtualServerDNSView(DNSView): + namespace = None + + +class VirtaulServerSecurityInfoView(SecurityInfo): + url_name = 'security_virtualserver_security_info' + + +class CloudHostSecurityInfoView(SecurityInfo): + url_name = 'security_cloudhost_security_info' + @register(VirtualServerType) class VirtualServerTypeForm(RalphAdmin): @@ -69,7 +86,12 @@ class VirtualServerAdmin( 'configuration_path__module' ] - change_views = [VirtualServerNetworkView] + change_views = [ + VirtualServerNetworkView, + VirtaulServerSecurityInfoView, + ] + if settings.ENABLE_DNSAAS_INTEGRATION: + change_views += [VirtualServerDNSView] # TODO: add the same tabs as in DCAsset class ClusterBaseObjectInline(RalphTabularInline): @@ -166,6 +188,9 @@ class CloudHostAdmin(CustomFieldValueAdminMixin, RalphAdmin): search_fields = ['cloudflavor__name', 'hostname', 'host_id'] raw_id_override_parent = {'parent': CloudProject} inlines = [CloudNetworkInline] + change_views = [ + CloudHostSecurityInfoView + ] fieldsets = ( (None, { 'fields': ['hostname', 'get_hypervisor', 'host_id', 'created', @@ -257,7 +282,7 @@ def get_memory(self, obj): get_memory.short_description = _('RAM size (MiB)') def get_disk(self, obj): - return obj.cloudflavor.disk / 1024 + return obj.cloudflavor.disk / 1024 if obj.cloudflavor.disk else None get_disk.short_description = _('Disk size (GiB)')