diff --git a/apps/ops/const.py b/apps/ops/const.py index a12caca2d..7fa636a0f 100644 --- a/apps/ops/const.py +++ b/apps/ops/const.py @@ -45,7 +45,7 @@ class RunasPolicies(models.TextChoices): skip = 'skip', _('Skip') -class Modules(models.TextChoices): +class JobModules(models.TextChoices): shell = 'shell', _('Shell') winshell = 'win_shell', _('Powershell') python = 'python', _('Python') @@ -55,6 +55,18 @@ class Modules(models.TextChoices): raw = 'raw', _('Raw') +class AdHocModules(models.TextChoices): + shell = 'shell', _('Shell') + winshell = 'win_shell', _('Powershell') + python = 'python', _('Python') + mysql = 'mysql', _('MySQL') + mariadb = 'mariadb', _('MariaDB') + postgresql = 'postgresql', _('PostgreSQL') + sqlserver = 'sqlserver', _('SQLServer') + oracle = 'oracle', _('Oracle') + raw = 'raw', _('Raw') + + class JobStatus(models.TextChoices): running = 'running', _('Running') success = 'success', _('Success') diff --git a/apps/ops/migrations/0026_auto_20230810_1039.py b/apps/ops/migrations/0026_auto_20230810_1039.py index dfb7ade4d..99ffdf7d5 100644 --- a/apps/ops/migrations/0026_auto_20230810_1039.py +++ b/apps/ops/migrations/0026_auto_20230810_1039.py @@ -36,4 +36,12 @@ class Migration(migrations.Migration): name='summary', field=models.JSONField(default=dict, encoder=common.db.encoder.ModelJSONFieldEncoder, verbose_name='Summary'), ), + migrations.AlterField( + model_name='adhoc', + name='module', + field=models.CharField( + choices=[('shell', 'Shell'), ('win_shell', 'Powershell'), ('python', 'Python'), ('mysql', 'MySQL'), + ('mariadb', 'MariaDB'), ('postgresql', 'PostgreSQL'), ('sqlserver', 'SQLServer'), + ('oracle', 'Oracle'), ('raw', 'Raw')], default='shell', max_length=128, verbose_name='Module'), + ), ] diff --git a/apps/ops/models/adhoc.py b/apps/ops/models/adhoc.py index 18b1e5cba..f55b6f3d0 100644 --- a/apps/ops/models/adhoc.py +++ b/apps/ops/models/adhoc.py @@ -8,7 +8,7 @@ from common.utils import get_logger __all__ = ["AdHoc"] -from ops.const import Modules +from ops.const import AdHocModules from orgs.mixins.models import JMSOrgBaseModel @@ -19,7 +19,7 @@ class AdHoc(JMSOrgBaseModel): id = models.UUIDField(default=uuid.uuid4, primary_key=True) name = models.CharField(max_length=128, verbose_name=_('Name')) pattern = models.CharField(max_length=1024, verbose_name=_("Pattern"), default='all') - module = models.CharField(max_length=128, choices=Modules.choices, default=Modules.shell, + module = models.CharField(max_length=128, choices=AdHocModules.choices, default=AdHocModules.shell, verbose_name=_('Module')) args = models.CharField(max_length=8192, default='', verbose_name=_('Args')) creator = models.ForeignKey('users.User', verbose_name=_("Creator"), on_delete=models.SET_NULL, null=True) diff --git a/apps/ops/models/job.py b/apps/ops/models/job.py index 518506ed6..6dcbcc467 100644 --- a/apps/ops/models/job.py +++ b/apps/ops/models/job.py @@ -23,7 +23,7 @@ from common.db.encoder import ModelJSONFieldEncoder from ops.ansible import JMSInventory, AdHocRunner, PlaybookRunner, CommandInBlackListException from ops.mixin import PeriodTaskModelMixin from ops.variables import * -from ops.const import Types, Modules, RunasPolicies, JobStatus +from ops.const import Types, RunasPolicies, JobStatus, JobModules from orgs.mixins.models import JMSOrgBaseModel from perms.models import AssetPermission from perms.utils import UserPermAssetUtil @@ -127,7 +127,7 @@ class Job(JMSOrgBaseModel, PeriodTaskModelMixin): instant = models.BooleanField(default=False) args = models.CharField(max_length=8192, default='', verbose_name=_('Args'), null=True, blank=True) - module = models.CharField(max_length=128, choices=Modules.choices, default=Modules.shell, verbose_name=_('Module'), + module = models.CharField(max_length=128, choices=JobModules.choices, default=JobModules.shell, verbose_name=_('Module'), null=True) chdir = models.CharField(default="", max_length=1024, verbose_name=_('Chdir'), null=True, blank=True) timeout = models.IntegerField(default=-1, verbose_name=_('Timeout (Seconds)'))