mirror of https://github.com/jumpserver/jumpserver
feat: 代码片段支持 oracle 和 mariadb
parent
4cb499953c
commit
9892ff7dd6
|
@ -45,7 +45,7 @@ class RunasPolicies(models.TextChoices):
|
||||||
skip = 'skip', _('Skip')
|
skip = 'skip', _('Skip')
|
||||||
|
|
||||||
|
|
||||||
class Modules(models.TextChoices):
|
class JobModules(models.TextChoices):
|
||||||
shell = 'shell', _('Shell')
|
shell = 'shell', _('Shell')
|
||||||
winshell = 'win_shell', _('Powershell')
|
winshell = 'win_shell', _('Powershell')
|
||||||
python = 'python', _('Python')
|
python = 'python', _('Python')
|
||||||
|
@ -55,6 +55,18 @@ class Modules(models.TextChoices):
|
||||||
raw = 'raw', _('Raw')
|
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):
|
class JobStatus(models.TextChoices):
|
||||||
running = 'running', _('Running')
|
running = 'running', _('Running')
|
||||||
success = 'success', _('Success')
|
success = 'success', _('Success')
|
||||||
|
|
|
@ -36,4 +36,12 @@ class Migration(migrations.Migration):
|
||||||
name='summary',
|
name='summary',
|
||||||
field=models.JSONField(default=dict, encoder=common.db.encoder.ModelJSONFieldEncoder, verbose_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'),
|
||||||
|
),
|
||||||
]
|
]
|
||||||
|
|
|
@ -8,7 +8,7 @@ from common.utils import get_logger
|
||||||
|
|
||||||
__all__ = ["AdHoc"]
|
__all__ = ["AdHoc"]
|
||||||
|
|
||||||
from ops.const import Modules
|
from ops.const import AdHocModules
|
||||||
|
|
||||||
from orgs.mixins.models import JMSOrgBaseModel
|
from orgs.mixins.models import JMSOrgBaseModel
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ class AdHoc(JMSOrgBaseModel):
|
||||||
id = models.UUIDField(default=uuid.uuid4, primary_key=True)
|
id = models.UUIDField(default=uuid.uuid4, primary_key=True)
|
||||||
name = models.CharField(max_length=128, verbose_name=_('Name'))
|
name = models.CharField(max_length=128, verbose_name=_('Name'))
|
||||||
pattern = models.CharField(max_length=1024, verbose_name=_("Pattern"), default='all')
|
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'))
|
verbose_name=_('Module'))
|
||||||
args = models.CharField(max_length=8192, default='', verbose_name=_('Args'))
|
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)
|
creator = models.ForeignKey('users.User', verbose_name=_("Creator"), on_delete=models.SET_NULL, null=True)
|
||||||
|
|
|
@ -23,7 +23,7 @@ from common.db.encoder import ModelJSONFieldEncoder
|
||||||
from ops.ansible import JMSInventory, AdHocRunner, PlaybookRunner, CommandInBlackListException
|
from ops.ansible import JMSInventory, AdHocRunner, PlaybookRunner, CommandInBlackListException
|
||||||
from ops.mixin import PeriodTaskModelMixin
|
from ops.mixin import PeriodTaskModelMixin
|
||||||
from ops.variables import *
|
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 orgs.mixins.models import JMSOrgBaseModel
|
||||||
from perms.models import AssetPermission
|
from perms.models import AssetPermission
|
||||||
from perms.utils import UserPermAssetUtil
|
from perms.utils import UserPermAssetUtil
|
||||||
|
@ -127,7 +127,7 @@ class Job(JMSOrgBaseModel, PeriodTaskModelMixin):
|
||||||
|
|
||||||
instant = models.BooleanField(default=False)
|
instant = models.BooleanField(default=False)
|
||||||
args = models.CharField(max_length=8192, default='', verbose_name=_('Args'), null=True, blank=True)
|
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)
|
null=True)
|
||||||
chdir = models.CharField(default="", max_length=1024, verbose_name=_('Chdir'), null=True, blank=True)
|
chdir = models.CharField(default="", max_length=1024, verbose_name=_('Chdir'), null=True, blank=True)
|
||||||
timeout = models.IntegerField(default=-1, verbose_name=_('Timeout (Seconds)'))
|
timeout = models.IntegerField(default=-1, verbose_name=_('Timeout (Seconds)'))
|
||||||
|
|
Loading…
Reference in New Issue