mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-09-19 01:45:27 +00:00
feat: 修改作业权限
This commit is contained in:
@@ -9,10 +9,12 @@ from common.utils import get_logger
|
||||
|
||||
__all__ = ["AdHoc"]
|
||||
|
||||
from orgs.mixins.models import JMSOrgBaseModel
|
||||
|
||||
logger = get_logger(__file__)
|
||||
|
||||
|
||||
class AdHoc(JMSBaseModel):
|
||||
class AdHoc(JMSOrgBaseModel):
|
||||
class Modules(models.TextChoices):
|
||||
shell = 'shell', _('Shell')
|
||||
winshell = 'win_shell', _('Powershell')
|
||||
|
@@ -11,13 +11,13 @@ from celery import current_task
|
||||
|
||||
__all__ = ["Job", "JobExecution"]
|
||||
|
||||
from common.db.models import JMSBaseModel
|
||||
from ops.ansible import JMSInventory, AdHocRunner, PlaybookRunner
|
||||
from ops.mixin import PeriodTaskModelMixin
|
||||
from ops.variables import *
|
||||
from orgs.mixins.models import JMSOrgBaseModel
|
||||
|
||||
|
||||
class Job(JMSBaseModel, PeriodTaskModelMixin):
|
||||
class Job(JMSOrgBaseModel, PeriodTaskModelMixin):
|
||||
class Types(models.TextChoices):
|
||||
adhoc = 'adhoc', _('Adhoc')
|
||||
playbook = 'playbook', _('Playbook')
|
||||
@@ -97,7 +97,7 @@ class Job(JMSBaseModel, PeriodTaskModelMixin):
|
||||
ordering = ['date_created']
|
||||
|
||||
|
||||
class JobExecution(JMSBaseModel):
|
||||
class JobExecution(JMSOrgBaseModel):
|
||||
id = models.UUIDField(default=uuid.uuid4, primary_key=True)
|
||||
task_id = models.UUIDField(null=True)
|
||||
status = models.CharField(max_length=16, verbose_name=_('Status'), default='running')
|
||||
@@ -202,10 +202,11 @@ class JobExecution(JMSBaseModel):
|
||||
|
||||
def gather_static_variables(self):
|
||||
default = {
|
||||
JMS_USERNAME: self.creator.username,
|
||||
JMS_JOB_ID: self.job.id,
|
||||
JMS_JOB_ID: str(self.job.id),
|
||||
JMS_JOB_NAME: self.job.name,
|
||||
}
|
||||
if self.creator:
|
||||
default.update({JMS_USERNAME: self.creator.username})
|
||||
return default
|
||||
|
||||
@property
|
||||
@@ -255,7 +256,10 @@ class JobExecution(JMSBaseModel):
|
||||
this = self.__class__.objects.get(id=self.id)
|
||||
this.status = status_mapper.get(cb.status, cb.status)
|
||||
this.summary.update(cb.summary)
|
||||
this.result.update(cb.result)
|
||||
if this.result:
|
||||
this.result.update(cb.result)
|
||||
else:
|
||||
this.result = cb.result
|
||||
this.finish_task()
|
||||
|
||||
def finish_task(self):
|
||||
|
@@ -5,11 +5,11 @@ from django.conf import settings
|
||||
from django.db import models
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from common.db.models import JMSBaseModel
|
||||
from ops.exception import PlaybookNoValidEntry
|
||||
from orgs.mixins.models import JMSOrgBaseModel
|
||||
|
||||
|
||||
class Playbook(JMSBaseModel):
|
||||
class Playbook(JMSOrgBaseModel):
|
||||
id = models.UUIDField(default=uuid.uuid4, primary_key=True)
|
||||
name = models.CharField(max_length=128, verbose_name=_('Name'), null=True)
|
||||
path = models.FileField(upload_to='playbooks/')
|
||||
|
Reference in New Issue
Block a user