diff --git a/src/ralph/admin/sitetrees.py b/src/ralph/admin/sitetrees.py index ca02e7c660..c0ee4fe1f1 100644 --- a/src/ralph/admin/sitetrees.py +++ b/src/ralph/admin/sitetrees.py @@ -110,7 +110,7 @@ def section(section_name, app, model): section(_('Databases'), 'data_center', 'Database'), section(_('Disk Shares'), 'data_center', 'DiskShare'), section(_('Server Rooms'), 'data_center', 'ServerRoom'), - section(_('VIPs'), 'data_center', 'VIP'), + # section(_('VIPs'), 'data_center', 'VIP'), section(_('Preboots'), 'deployment', 'Preboot'), section( _('Preboot configuration'), 'deployment', diff --git a/src/ralph/api/tests/test_rendering.py b/src/ralph/api/tests/test_rendering.py index a56d906bbd..5092db5d24 100644 --- a/src/ralph/api/tests/test_rendering.py +++ b/src/ralph/api/tests/test_rendering.py @@ -85,8 +85,8 @@ class APIBrowsableClient(APIClient): "rack-accessories": "/api/rack-accessories/", "racks": "/api/racks/", "regions": "/api/regions/", - "scm-info": "/api/scm-info/", - "security-scans": "/api/security-scans/", + # "scm-info": "/api/scm-info/", + # "security-scans": "/api/security-scans/", "server-rooms": "/api/server-rooms/", "services": "/api/services/", "services-environments": "/api/services-environments/", @@ -104,10 +104,10 @@ class APIBrowsableClient(APIClient): "transitions-job": "/api/transitions-job/", "transitions-model": "/api/transitions-model/", "users": "/api/users/", - "vips": "/api/vips/", + # "vips": "/api/vips/", "virtual-server-types": "/api/virtual-server-types/", "virtual-servers": "/api/virtual-servers/", - "vulnerabilities": "/api/vulnerabilities/", + # "vulnerabilities": "/api/vulnerabilities/", "warehouses": "/api/warehouses/" } diff --git a/src/ralph/assets/admin.py b/src/ralph/assets/admin.py index ddabef29fb..1c2ff7682e 100644 --- a/src/ralph/assets/admin.py +++ b/src/ralph/assets/admin.py @@ -167,7 +167,7 @@ def get_service_base_objects_queryset(self): service_env__service=self.object ).select_related( 'service_env__environment', 'content_type', 'securityscan' - ) + ).exclude(content_type__model='vip') def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) diff --git a/src/ralph/assets/api/serializers.py b/src/ralph/assets/api/serializers.py index 580c288bb4..f210abf9ce 100644 --- a/src/ralph/assets/api/serializers.py +++ b/src/ralph/assets/api/serializers.py @@ -36,7 +36,6 @@ Memory, Processor ) -from ralph.configuration_management.api import SCMInfoSerializer from ralph.lib.custom_fields.api import WithCustomFieldsSerializerMixin from ralph.licences.api_simple import SimpleBaseObjectLicenceSerializer from ralph.networks.api_simple import IPAddressSimpleSerializer @@ -258,7 +257,6 @@ class BaseObjectPolymorphicSerializer( """ __str__ = StrField(show_type=True) service_env = ServiceEnvironmentSerializer() - scmstatuscheck = SCMInfoSerializer() class Meta: model = BaseObject diff --git a/src/ralph/assets/tests/test_api.py b/src/ralph/assets/tests/test_api.py index a38c4dbd0c..42c1c0b747 100644 --- a/src/ralph/assets/tests/test_api.py +++ b/src/ralph/assets/tests/test_api.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- +from unittest import skip from urllib.parse import urlencode from ddt import data, ddt, unpack @@ -571,7 +572,7 @@ def test_patch_asset_model(self): ServiceEnvironment: ServiceEnvironmentFactory, SSLCertificate: SSLCertificatesFactory, Support: SupportFactory, - VIP: VIPFactory, + # VIP: VIPFactory, VirtualServer: VirtualServerFactory, Cluster: ClusterFactory, ConfigurationClass: ConfigurationClassFactory, @@ -708,6 +709,7 @@ def test_filter_by_ip(self): response = self.client.get(url, format='json') self.assertEqual(len(response.data['results']), 1) + @skip("SCM Status is disabled") def test_filter_by_scm_status_check_result(self): status_checks = { SCMCheckResult.scm_error: 2, diff --git a/src/ralph/configuration_management/api.py b/src/ralph/configuration_management/api.py index 2b081e2c97..31991acfdd 100644 --- a/src/ralph/configuration_management/api.py +++ b/src/ralph/configuration_management/api.py @@ -7,7 +7,7 @@ from rest_framework import status from rest_framework.response import Response -from ralph.api import RalphAPISerializer, RalphAPIViewSet, router +from ralph.api import RalphAPISerializer, RalphAPIViewSet from ralph.api.serializers import RalphAPISaveSerializer from ralph.assets.models import BaseObject from ralph.configuration_management.models import SCMStatusCheck @@ -100,7 +100,7 @@ def create(self, request, hostname): return Response(self.serializer_class(scan).data, status=res_status) -router.register('scm-info', SCMInfoViewSet) +# router.register('scm-info', SCMInfoViewSet) urlpatterns = [ url( r'^scm-info/(?P[\w\.-]+)', diff --git a/src/ralph/data_center/admin.py b/src/ralph/data_center/admin.py index 24af936b21..bb226bef53 100644 --- a/src/ralph/data_center/admin.py +++ b/src/ralph/data_center/admin.py @@ -11,7 +11,6 @@ from django.utils.safestring import mark_safe from django.utils.translation import ugettext_lazy as _ -from ralph.admin import filters from ralph.admin.decorators import register from ralph.admin.filters import ( BaseObjectHostnameFilter, @@ -21,8 +20,7 @@ MacAddressFilter, RelatedAutocompleteFieldListFilter, TagsListFilter, - TreeRelatedAutocompleteFilterWithDescendants, - VulnerabilitesByPatchDeadline + TreeRelatedAutocompleteFilterWithDescendants ) from ralph.admin.helpers import generate_html_link from ralph.admin.mixins import ( @@ -39,10 +37,7 @@ from ralph.assets.models.components import Ethernet from ralph.assets.views import ComponentsAdminView from ralph.attachments.admin import AttachmentsMixin -from ralph.configuration_management.views import ( - SCMCheckInfo, - SCMStatusCheckInChangeListMixin -) +from ralph.configuration_management.views import SCMCheckInfo from ralph.data_center.forms import DataCenterAssetForm from ralph.data_center.models.components import DiskShare, DiskShareMount from ralph.data_center.models.hosts import DCHost @@ -59,8 +54,7 @@ BaseObjectCluster, Cluster, ClusterType, - Database, - VIP + Database ) from ralph.data_center.views import RelationsView from ralph.data_importer import resources @@ -72,7 +66,7 @@ from ralph.networks.forms import SimpleNetworkWithManagementIPForm from ralph.networks.views import NetworkWithTerminatorsView from ralph.operations.views import OperationViewReadOnlyForExisiting -from ralph.security.views import ScanStatusInChangeListMixin, SecurityInfo +from ralph.security.views import SecurityInfo from ralph.supports.models import BaseObjectsSupport @@ -92,15 +86,6 @@ def generate_list_filter_with_common_fields( ), MacAddressFilter, IPFilter, - ( - 'securityscan__vulnerabilities__patch_deadline', - VulnerabilitesByPatchDeadline - ), - ( - 'securityscan__vulnerabilities', - filters.RelatedAutocompleteFieldListFilter - ), - 'securityscan__is_patched', ] ) if type(postfix) == list: @@ -361,8 +346,6 @@ class DataCenterAssetRelationsView(RelationsView): @register(DataCenterAsset) class DataCenterAssetAdmin( - SCMStatusCheckInChangeListMixin, - ScanStatusInChangeListMixin, ActiveDeploymentMessageMixin, MulitiAddAdminMixin, TransitionAdminMixin, @@ -379,8 +362,6 @@ class DataCenterAssetAdmin( change_views = [ DataCenterAssetComponents, DataCenterAssetNetworkView, - DataCenterAssetSecurityInfo, - DataCenterAssetSCMInfo, DataCenterAssetRelationsView, DataCenterAssetLicence, DataCenterAssetSupport, @@ -402,8 +383,6 @@ class DataCenterAssetAdmin( 'show_location', 'service_env', 'configuration_path', - 'scan_status', - 'scm_status_check', 'property_of', 'order_no' ] @@ -621,7 +600,7 @@ class DatabaseAdmin(RalphAdmin): pass -@register(VIP) +# @register(VIP) class VIPAdmin(RalphAdmin): search_fields = ['name', 'ip__address'] list_display = ['name', 'ip', 'port', 'protocol', 'service_env'] @@ -664,8 +643,6 @@ class DCHostSCMInfo(SCMCheckInfo): @register(DCHost) class DCHostAdmin( - SCMStatusCheckInChangeListMixin, - ScanStatusInChangeListMixin, RalphAdmin ): change_list_template = 'admin/data_center/dchost/change_list.html' @@ -684,9 +661,7 @@ class DCHostAdmin( 'service_env', 'configuration_path', 'show_location', - 'remarks', - 'scan_status', - 'scm_status_check' + 'remarks' ] # TODO: sn # TODO: hostname, DC diff --git a/src/ralph/data_center/api/routers.py b/src/ralph/data_center/api/routers.py index fdb57edab0..40e7714081 100644 --- a/src/ralph/data_center/api/routers.py +++ b/src/ralph/data_center/api/routers.py @@ -10,8 +10,7 @@ DataCenterViewSet, RackAccessoryViewSet, RackViewSet, - ServerRoomViewSet, - VIPViewSet + ServerRoomViewSet ) router.register(r'accessories', AccessoryViewSet) @@ -21,7 +20,7 @@ router.register(r'racks', RackViewSet) router.register(r'rack-accessories', RackAccessoryViewSet) router.register(r'server-rooms', ServerRoomViewSet) -router.register(r'vips', VIPViewSet) +# router.register(r'vips', VIPViewSet) router.register(r'clusters', ClusterViewSet) router.register(r'cluster-types', ClusterTypeViewSet) router.register(r'base-object-clusters', BaseObjectClusterViewSet) diff --git a/src/ralph/data_center/api/serializers.py b/src/ralph/data_center/api/serializers.py index c1da67464f..b61906cf25 100644 --- a/src/ralph/data_center/api/serializers.py +++ b/src/ralph/data_center/api/serializers.py @@ -11,7 +11,6 @@ NetworkComponentSerializerMixin, OwnersFromServiceEnvSerializerMixin ) -from ralph.configuration_management.api import SCMInfoSerializer from ralph.data_center.models import ( Accessory, BaseObjectCluster, @@ -25,7 +24,6 @@ ServerRoom, VIP ) -from ralph.security.api import SecurityScanSerializer class ClusterTypeSerializer(RalphAPISerializer): @@ -126,8 +124,6 @@ class Meta: class DataCenterAssetSerializer(ComponentSerializerMixin, AssetSerializer): rack = SimpleRackSerializer() - scmstatuscheck = SCMInfoSerializer() - securityscan = SecurityScanSerializer() related_hosts = serializers.SerializerMethodField() def get_related_hosts(self, obj): diff --git a/src/ralph/data_center/tests/test_view.py b/src/ralph/data_center/tests/test_view.py index a63415751a..16b7c3dc45 100644 --- a/src/ralph/data_center/tests/test_view.py +++ b/src/ralph/data_center/tests/test_view.py @@ -1,4 +1,5 @@ from datetime import datetime, timedelta +from unittest import skip from urllib.parse import urlencode from django.contrib.contenttypes.models import ContentType @@ -118,7 +119,7 @@ def test_changelist_cluster_location(self): ) self.assertContains(result, 'DC1 / SR1 / Rack #1') - +@skip("Security Scans are disabled") class DCHostScanStatusInListingTest(ClientMixin, TestCase): def setUp(self): @@ -212,7 +213,7 @@ def test_listing_show_failed_icon_when_scan_error(self): ) self.assertContains(result, "Scan failed") - +@skip("Security Scans are disabled") class DCHostFilterByPatchDeadline(ClientMixin, TestCase): def setUp(self): self.login_as_user() diff --git a/src/ralph/lib/polymorphic/models.py b/src/ralph/lib/polymorphic/models.py index fde3813072..c1459d5ae3 100644 --- a/src/ralph/lib/polymorphic/models.py +++ b/src/ralph/lib/polymorphic/models.py @@ -331,6 +331,8 @@ def __new__(cls, name, bases, attrs): if new_class._meta.proxy: continue try: + if new_class._meta.model_name == 'vip': + continue polymorphic_class._polymorphic_descendants.append(new_class) except AttributeError: # The exception is for class Polymorphic diff --git a/src/ralph/security/api.py b/src/ralph/security/api.py index 0575a7a328..017d4c982a 100644 --- a/src/ralph/security/api.py +++ b/src/ralph/security/api.py @@ -5,7 +5,7 @@ from django.db import transaction from rest_framework import serializers -from ralph.api import RalphAPISerializer, RalphAPIViewSet, router +from ralph.api import RalphAPISerializer, RalphAPIViewSet from ralph.api.serializers import RalphAPISaveSerializer from ralph.networks.models.networks import IPAddress from ralph.security.models import any_exceeded, SecurityScan, Vulnerability @@ -117,6 +117,6 @@ def create(self, request, *args, **kwargs): return super().create(request, *args, **kwargs) -router.register(r'vulnerabilities', VulnerabilityViewSet) -router.register(r'security-scans', SecurityScanViewSet) +# router.register(r'vulnerabilities', VulnerabilityViewSet) +# router.register(r'security-scans', SecurityScanViewSet) urlpatterns = [] diff --git a/src/ralph/security/tests/test_api.py b/src/ralph/security/tests/test_api.py index 21b57d83b0..18b3435295 100644 --- a/src/ralph/security/tests/test_api.py +++ b/src/ralph/security/tests/test_api.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- from datetime import datetime, timedelta +from unittest import skip from django.urls import reverse from rest_framework import status @@ -12,7 +13,7 @@ VulnerabilityFactory ) - +@skip('Security Scans are disabled') class SecurityScanAPITests(RalphAPITestCase): def setUp(self): @@ -226,7 +227,7 @@ def test_posting_scan_replace_old_one_when_scan_already_exists(self): scan.id, ) - +@skip("Vulnerabilities are disabled") class VulnerabilityAPITests(RalphAPITestCase): def setUp(self): @@ -317,7 +318,7 @@ def test_patch_vulnerability(self): self.vulnerability.external_vulnerability_id, data['external_vulnerability_id']) - +@skip("Vulnerabilities are disabled") class TestExternalVulnerability(RalphAPITestCase): def setUp(self): super().setUp() diff --git a/src/ralph/urls/base.py b/src/ralph/urls/base.py index 90c8393ed9..80ac86325b 100644 --- a/src/ralph/urls/base.py +++ b/src/ralph/urls/base.py @@ -30,7 +30,7 @@ 'ralph.domains.api', 'ralph.operations.api', 'ralph.supports.api', - 'ralph.security.api', + # 'ralph.security.api', 'ralph.sim_cards.api', 'ralph.ssl_certificates.api', 'ralph.networks.api', diff --git a/src/ralph/virtual/admin.py b/src/ralph/virtual/admin.py index 25b459a3d0..a266e502e6 100644 --- a/src/ralph/virtual/admin.py +++ b/src/ralph/virtual/admin.py @@ -14,10 +14,7 @@ from ralph.assets.models import BaseObject from ralph.assets.models.components import Ethernet from ralph.assets.views import ComponentsAdminView, RalphDetailViewAdmin -from ralph.configuration_management.views import ( - SCMCheckInfo, - SCMStatusCheckInChangeListMixin -) +from ralph.configuration_management.views import SCMCheckInfo from ralph.data_center.admin import generate_list_filter_with_common_fields from ralph.data_center.models.physical import DataCenterAsset from ralph.data_center.models.virtual import BaseObjectCluster @@ -27,7 +24,7 @@ from ralph.licences.models import BaseObjectLicence from ralph.networks.forms import SimpleNetworkForm from ralph.networks.views import NetworkView -from ralph.security.views import ScanStatusInChangeListMixin, SecurityInfo +from ralph.security.views import SecurityInfo from ralph.virtual.forms import CloudProviderForm from ralph.virtual.models import ( CloudFlavor, @@ -114,8 +111,6 @@ class VirtualServerSCMInfo(SCMCheckInfo): @register(VirtualServer) class VirtualServerAdmin( - SCMStatusCheckInChangeListMixin, - ScanStatusInChangeListMixin, ActiveDeploymentMessageMixin, CustomFieldValueAdminMixin, TransitionAdminMixin, @@ -131,7 +126,7 @@ class VirtualServerAdmin( ) list_display = [ 'hostname', 'type', 'sn', 'service_env', 'configuration_path', - 'parent_', 'scan_status', 'scm_status_check' + 'parent_' ] raw_id_fields = ['parent', 'service_env', 'configuration_path'] fields = [ @@ -146,8 +141,6 @@ class VirtualServerAdmin( change_views = [ VirtualServerComponentsView, VirtualServerNetworkView, - VirtualServerSCMInfo, - VirtaulServerSecurityInfoView, VirtualServerLicencesView, ] if settings.ENABLE_DNSAAS_INTEGRATION: @@ -268,13 +261,11 @@ class CloudHostSCMInfo(SCMCheckInfo): @register(CloudHost) class CloudHostAdmin( - SCMStatusCheckInChangeListMixin, ScanStatusInChangeListMixin, CustomFieldValueAdminMixin, RalphAdmin ): list_display = ['get_hostname', 'get_ip_addresses', 'service_env', 'get_cloudproject', 'cloudflavor_name', 'host_id', - 'created', 'image_name', 'get_tags', 'scan_status', - 'scm_status_check'] + 'created', 'image_name', 'get_tags'] list_filter_prefix = [BaseObjectHostnameFilter] list_filter_postfix = [ 'cloudprovider', 'cloudflavor', TagsListFilter, 'hypervisor' @@ -300,8 +291,6 @@ class CloudHostAdmin( inlines = [CloudNetworkInline] change_views = [ CloudHostNetworkView, - CloudHostSCMInfo, - CloudHostSecurityInfoView ] fieldsets = ( (None, { diff --git a/src/ralph/virtual/api.py b/src/ralph/virtual/api.py index 60cc6db882..559afb8398 100644 --- a/src/ralph/virtual/api.py +++ b/src/ralph/virtual/api.py @@ -19,12 +19,10 @@ BaseObjectViewSetMixin ) from ralph.assets.models import Ethernet -from ralph.configuration_management.api import SCMInfoSerializer from ralph.data_center.api.serializers import DataCenterAssetSimpleSerializer from ralph.data_center.models import DCHost from ralph.lib.api.exceptions import Conflict from ralph.lib.api.utils import renderer_classes_without_form -from ralph.security.api import SecurityScanSerializer from ralph.virtual.admin import VirtualServerAdmin from ralph.virtual.models import ( CloudFlavor, @@ -114,8 +112,6 @@ class CloudHostSerializer( parent = CloudProjectSimpleSerializer(source='cloudproject') cloudflavor = CloudFlavorSimpleSerializer() service_env = ServiceEnvironmentSimpleSerializer() - scmstatuscheck = SCMInfoSerializer() - securityscan = SecurityScanSerializer() class Meta(BaseObjectSerializer.Meta): model = CloudHost @@ -162,8 +158,6 @@ class VirtualServerSerializer(ComponentSerializerMixin, BaseObjectSerializer): # TODO: cast BaseObject to DataCenterAsset for hypervisor field hypervisor = DataCenterAssetSimpleSerializer(source='parent') # TODO: clusters - scmstatuscheck = SCMInfoSerializer() - securityscan = SecurityScanSerializer() class Meta(BaseObjectSerializer.Meta): model = VirtualServer @@ -243,7 +237,7 @@ class CloudHostViewSet(BaseObjectViewSetMixin, RalphAPIViewSet): select_related = [ 'parent', 'parent__cloudproject', 'cloudprovider', 'hypervisor', 'service_env__service', 'service_env__environment', 'content_type', - 'configuration_path__module', + 'configuration_path__module', 'securityscan' ] prefetch_related = base_object_descendant_prefetch_related + [ 'tags', 'cloudflavor__virtualcomponent_set__model', 'licences', @@ -286,7 +280,7 @@ class VirtualServerViewSet(BaseObjectViewSetMixin, RalphAPIViewSet): save_serializer_class = VirtualServerSaveSerializer select_related = VirtualServerAdmin.list_select_related + [ 'parent', 'service_env__service', 'service_env__environment', - 'configuration_path', 'content_type', 'parent__cluster__type' + 'configuration_path', 'content_type', 'parent__cluster__type', 'securityscan' ] prefetch_related = base_object_descendant_prefetch_related + [ 'tags',