feat: 修改作业权限

This commit is contained in:
Aaron3S
2022-12-15 17:25:21 +08:00
parent 9d80abadd8
commit e969a01689
12 changed files with 79 additions and 47 deletions

View File

@@ -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')

View File

@@ -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):

View File

@@ -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/')