From 3b2ac101c86383de6f44a92810c7fe455caca8a8 Mon Sep 17 00:00:00 2001 From: feng <1304903146@qq.com> Date: Thu, 10 Apr 2025 21:30:00 +0800 Subject: [PATCH] perf: windows ad asset info --- apps/assets/serializers/asset/info/gathered.py | 1 + apps/assets/serializers/asset/info/spec.py | 9 +++++++-- apps/ops/ansible/inventory.py | 3 +-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/apps/assets/serializers/asset/info/gathered.py b/apps/assets/serializers/asset/info/gathered.py index db0f22e65..71722c072 100644 --- a/apps/assets/serializers/asset/info/gathered.py +++ b/apps/assets/serializers/asset/info/gathered.py @@ -20,4 +20,5 @@ class HostGatheredInfoSerializer(serializers.Serializer): category_gathered_serializer_map = { 'host': HostGatheredInfoSerializer, + 'ds': HostGatheredInfoSerializer, } diff --git a/apps/assets/serializers/asset/info/spec.py b/apps/assets/serializers/asset/info/spec.py index a7aae17f4..f603fb7af 100644 --- a/apps/assets/serializers/asset/info/spec.py +++ b/apps/assets/serializers/asset/info/spec.py @@ -2,7 +2,7 @@ from django.utils.translation import gettext_lazy as _ from rest_framework import serializers from assets.const import FillType -from assets.models import Database, Web +from assets.models import Database, Web, DirectoryService from common.serializers.fields import LabeledChoiceField @@ -28,7 +28,7 @@ class WebSpecSerializer(serializers.ModelSerializer): # 查看 Web 资产详情时 self.pop_fields_if_need(fields) return fields - + def is_retrieve(self): try: self.context.get('request').method and self.parent.instance.web @@ -51,9 +51,14 @@ class WebSpecSerializer(serializers.ModelSerializer): return fields +class DsSpecSerializer(serializers.ModelSerializer): + class Meta: + model = DirectoryService + fields = ['domain_name'] category_spec_serializer_map = { 'database': DatabaseSpecSerializer, 'web': WebSpecSerializer, + 'ds': DsSpecSerializer, } diff --git a/apps/ops/ansible/inventory.py b/apps/ops/ansible/inventory.py index f165a31d5..8340ddf0a 100644 --- a/apps/ops/ansible/inventory.py +++ b/apps/ops/ansible/inventory.py @@ -5,7 +5,6 @@ import re import sys from collections import defaultdict -import sys from django.utils.translation import gettext as _ __all__ = ['JMSInventory'] @@ -131,7 +130,7 @@ class JMSInventory: elif platform.su_enabled and not su_from and \ self.task_type in (AutomationTypes.change_secret, AutomationTypes.push_account): host.update(self.make_account_ansible_vars(account, path_dir)) - if ansible_config.get('ansible_shell_type') != 'powershell': + if platform.type not in ["windows", "windows_ad"]: host['ansible_become'] = True host['ansible_become_user'] = 'root' host['ansible_become_password'] = account.escape_jinja2_syntax(account.secret)