fix: 修复测试系统用户可连接性问题

pull/6446/head
Bai 2021-07-14 16:49:28 +08:00 committed by 老广
parent 019f00a34a
commit d7f587216d
4 changed files with 25 additions and 4 deletions

View File

@ -83,7 +83,7 @@ def test_system_user_connectivity_util(system_user, assets, task_name):
_task, created = update_or_create_ansible_task(
task_name=_task_name, hosts=_hosts, tasks=_tasks,
pattern='all', options=const.TASK_OPTIONS,
run_as=_username,
run_as=_username, system_user=system_user
)
raw, summary = _task.run()
success = summary.get('success', False)

View File

@ -0,0 +1,20 @@
# Generated by Django 3.1.6 on 2021-07-14 08:44
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('assets', '0076_delete_assetuser'),
('ops', '0019_adhocexecution_celery_task_id'),
]
operations = [
migrations.AddField(
model_name='adhoc',
name='run_system_user',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='assets.systemuser'),
),
]

View File

@ -146,6 +146,7 @@ class AdHoc(OrgModelMixin):
hosts = models.ManyToManyField('assets.Asset', verbose_name=_("Host"))
run_as_admin = models.BooleanField(default=False, verbose_name=_('Run as admin'))
run_as = models.CharField(max_length=64, default='', blank=True, null=True, verbose_name=_('Username'))
run_system_user = models.ForeignKey('assets.SystemUser', null=True, on_delete=models.CASCADE)
become = EncryptJsonDictCharField(max_length=1024, default='', blank=True, null=True, verbose_name=_("Become"))
created_by = models.CharField(max_length=64, default='', blank=True, null=True, verbose_name=_('Create by'))
date_created = models.DateTimeField(auto_now_add=True, db_index=True)
@ -167,7 +168,7 @@ class AdHoc(OrgModelMixin):
inventory = JMSInventory(
self.hosts.all(), run_as_admin=self.run_as_admin,
run_as=self.run_as, become_info=become_info
run_as=self.run_as, become_info=become_info, system_user=self.run_system_user
)
return inventory

View File

@ -28,7 +28,7 @@ def update_or_create_ansible_task(
task_name, hosts, tasks,
interval=None, crontab=None, is_periodic=False,
callback=None, pattern='all', options=None,
run_as_admin=False, run_as=None, become_info=None,
run_as_admin=False, run_as=None, system_user=None, become_info=None,
):
if not hosts or not tasks or not task_name:
return None, None
@ -49,7 +49,7 @@ def update_or_create_ansible_task(
adhoc = task.get_latest_adhoc()
new_adhoc = AdHoc(task=task, pattern=pattern,
run_as_admin=run_as_admin,
run_as=run_as)
run_as=run_as, run_system_user=system_user)
new_adhoc.tasks = tasks
new_adhoc.options = options
new_adhoc.become = become_info