diff --git a/apps/assets/api/platform.py b/apps/assets/api/platform.py index f49ee2595..16ef2ef15 100644 --- a/apps/assets/api/platform.py +++ b/apps/assets/api/platform.py @@ -4,7 +4,7 @@ from rest_framework.response import Response from common.drf.api import JMSModelViewSet from common.drf.serializers import GroupedChoiceSerailizer from assets.models import Platform -from assets.serializers import PlatformSerializer +from assets.serializers import PlatformSerializer, PlatformOpsMethodSerializer from assets.const import AllTypes, Category from assets.playbooks.platform import filter_platform_methods @@ -45,7 +45,8 @@ class AssetPlatformViewSet(JMSModelViewSet): tp = request.query_params.get('type') method = request.query_params.get('method') methods = filter_platform_methods(category, tp, method) - return Response(methods) + serializer = PlatformOpsMethodSerializer(methods, many=True) + return Response(serializer.data) def check_object_permissions(self, request, obj): if request.method.lower() in ['delete', 'put', 'patch'] and obj.internal: diff --git a/apps/assets/const.py b/apps/assets/const.py index 204bdcb6b..788c821ab 100644 --- a/apps/assets/const.py +++ b/apps/assets/const.py @@ -76,7 +76,8 @@ class HostTypes(PlatformMixin, ChoicesMixin, models.TextChoices): '_protocols': ['ssh', 'rdp', 'vnc', 'telnet'] }, cls.WINDOWS: { - '_protocols': ['ssh', 'rdp', 'vnc'] + '_protocols': ['ssh', 'rdp', 'vnc'], + 'has_su': False }, cls.MACOS: { '_protocols': ['ssh', 'vnc'] diff --git a/apps/assets/playbooks/platform/host/change_password_aix/manifest.yml b/apps/assets/playbooks/platform/host/change_password_aix/manifest.yml index 7765f6dd5..32f6f25c5 100644 --- a/apps/assets/playbooks/platform/host/change_password_aix/manifest.yml +++ b/apps/assets/playbooks/platform/host/change_password_aix/manifest.yml @@ -1,5 +1,4 @@ id: change_password_aix name: Change password for AIX -version: 1 category: host method: change_password diff --git a/apps/assets/playbooks/platform/host/change_password_linux/manifest.yml b/apps/assets/playbooks/platform/host/change_password_linux/manifest.yml index b8fb5b26a..25183c25d 100644 --- a/apps/assets/playbooks/platform/host/change_password_linux/manifest.yml +++ b/apps/assets/playbooks/platform/host/change_password_linux/manifest.yml @@ -5,8 +5,3 @@ type: - unix - linux method: change_password -vars: - account: - username: test - password: teset123 - public_key: test diff --git a/apps/assets/serializers/platform.py b/apps/assets/serializers/platform.py index ab9e70f6c..75f24897e 100644 --- a/apps/assets/serializers/platform.py +++ b/apps/assets/serializers/platform.py @@ -7,7 +7,7 @@ from ..models import Platform, PlatformProtocol from ..const import Category, AllTypes -__all__ = ['PlatformSerializer'] +__all__ = ['PlatformSerializer', 'PlatformOpsMethodSerializer'] class ProtocolSettingSerializer(serializers.Serializer): @@ -72,3 +72,11 @@ class PlatformSerializer(JMSWritableNestedModelSerializer): if attrs.get(method_enabled, False) and not attrs.get(method_name, False): raise serializers.ValidationError({method_name: _('This field is required.')}) return attrs + + +class PlatformOpsMethodSerializer(serializers.Serializer): + id = serializers.CharField(read_only=True) + name = serializers.CharField(max_length=50, label=_('Name')) + category = serializers.CharField(max_length=50, label=_('Category')) + type = serializers.ListSerializer(child=serializers.CharField()) + method = serializers.CharField()