mirror of https://github.com/jumpserver/jumpserver
fix: 系统用户里测试资产可连接性不能指定资产
parent
3eba92548b
commit
23dbdaf6c0
|
@ -98,8 +98,8 @@ class SystemUserTaskApi(generics.CreateAPIView):
|
||||||
return task
|
return task
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def do_test(system_user):
|
def do_test(system_user, asset_ids):
|
||||||
task = test_system_user_connectivity_manual.delay(system_user)
|
task = test_system_user_connectivity_manual.delay(system_user, asset_ids)
|
||||||
return task
|
return task
|
||||||
|
|
||||||
def get_object(self):
|
def get_object(self):
|
||||||
|
@ -109,16 +109,20 @@ class SystemUserTaskApi(generics.CreateAPIView):
|
||||||
def perform_create(self, serializer):
|
def perform_create(self, serializer):
|
||||||
action = serializer.validated_data["action"]
|
action = serializer.validated_data["action"]
|
||||||
asset = serializer.validated_data.get('asset')
|
asset = serializer.validated_data.get('asset')
|
||||||
|
|
||||||
|
if asset:
|
||||||
|
assets = [asset]
|
||||||
|
else:
|
||||||
assets = serializer.validated_data.get('assets') or []
|
assets = serializer.validated_data.get('assets') or []
|
||||||
|
|
||||||
|
asset_ids = [asset.id for asset in assets]
|
||||||
|
asset_ids = asset_ids if asset_ids else None
|
||||||
|
|
||||||
system_user = self.get_object()
|
system_user = self.get_object()
|
||||||
if action == 'push':
|
if action == 'push':
|
||||||
assets = [asset] if asset else assets
|
|
||||||
asset_ids = [asset.id for asset in assets]
|
|
||||||
asset_ids = asset_ids if asset_ids else None
|
|
||||||
task = self.do_push(system_user, asset_ids)
|
task = self.do_push(system_user, asset_ids)
|
||||||
else:
|
else:
|
||||||
task = self.do_test(system_user)
|
task = self.do_test(system_user, asset_ids)
|
||||||
data = getattr(serializer, '_data', {})
|
data = getattr(serializer, '_data', {})
|
||||||
data["task"] = task.id
|
data["task"] = task.id
|
||||||
setattr(serializer, '_data', data)
|
setattr(serializer, '_data', data)
|
||||||
|
|
|
@ -5,6 +5,7 @@ from collections import defaultdict
|
||||||
from celery import shared_task
|
from celery import shared_task
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
|
|
||||||
|
from assets.models import Asset
|
||||||
from common.utils import get_logger
|
from common.utils import get_logger
|
||||||
from orgs.utils import tmp_to_org, org_aware_func
|
from orgs.utils import tmp_to_org, org_aware_func
|
||||||
from ..models import SystemUser
|
from ..models import SystemUser
|
||||||
|
@ -96,8 +97,11 @@ def test_system_user_connectivity_util(system_user, assets, task_name):
|
||||||
|
|
||||||
@shared_task(queue="ansible")
|
@shared_task(queue="ansible")
|
||||||
@org_aware_func("system_user")
|
@org_aware_func("system_user")
|
||||||
def test_system_user_connectivity_manual(system_user):
|
def test_system_user_connectivity_manual(system_user, asset_ids=None):
|
||||||
task_name = _("Test system user connectivity: {}").format(system_user)
|
task_name = _("Test system user connectivity: {}").format(system_user)
|
||||||
|
if asset_ids:
|
||||||
|
assets = Asset.objects.filter(id__in=asset_ids)
|
||||||
|
else:
|
||||||
assets = system_user.get_related_assets()
|
assets = system_user.get_related_assets()
|
||||||
test_system_user_connectivity_util(system_user, assets, task_name)
|
test_system_user_connectivity_util(system_user, assets, task_name)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue