mirror of https://github.com/jumpserver/jumpserver
commit
2d10e13057
|
@ -49,7 +49,7 @@ class Asset(models.Model):
|
||||||
ip = models.GenericIPAddressField(max_length=32, verbose_name=_('IP'), db_index=True)
|
ip = models.GenericIPAddressField(max_length=32, verbose_name=_('IP'), db_index=True)
|
||||||
hostname = models.CharField(max_length=128, unique=True, verbose_name=_('Hostname'))
|
hostname = models.CharField(max_length=128, unique=True, verbose_name=_('Hostname'))
|
||||||
port = models.IntegerField(default=22, verbose_name=_('Port'))
|
port = models.IntegerField(default=22, verbose_name=_('Port'))
|
||||||
domain = models.ForeignKey("assets.Domain", null=True, blank=True, related_name='assets', verbose_name=_("Domain"))
|
domain = models.ForeignKey("assets.Domain", null=True, blank=True, related_name='assets', verbose_name=_("Domain"), on_delete=models.SET_NULL)
|
||||||
nodes = models.ManyToManyField('assets.Node', default=default_node, related_name='assets', verbose_name=_("Nodes"))
|
nodes = models.ManyToManyField('assets.Node', default=default_node, related_name='assets', verbose_name=_("Nodes"))
|
||||||
is_active = models.BooleanField(default=True, verbose_name=_('Is active'))
|
is_active = models.BooleanField(default=True, verbose_name=_('Is active'))
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
import os
|
import os
|
||||||
import datetime
|
import datetime
|
||||||
import sys
|
import sys
|
||||||
|
import time
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
@ -53,10 +54,19 @@ def after_task_publish_signal_handler(sender, headers=None, **kwargs):
|
||||||
CeleryTask.objects.create(
|
CeleryTask.objects.create(
|
||||||
id=headers["id"], status=CeleryTask.WAITING, name=headers["task"]
|
id=headers["id"], status=CeleryTask.WAITING, name=headers["task"]
|
||||||
)
|
)
|
||||||
|
cache.set(headers["id"], True, 3600)
|
||||||
|
|
||||||
|
|
||||||
@task_prerun.connect
|
@task_prerun.connect
|
||||||
def pre_run_task_signal_handler(sender, task_id=None, task=None, **kwargs):
|
def pre_run_task_signal_handler(sender, task_id=None, task=None, **kwargs):
|
||||||
|
time.sleep(0.1)
|
||||||
|
for i in range(5):
|
||||||
|
if cache.get(task_id, False):
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
time.sleep(0.1)
|
||||||
|
continue
|
||||||
|
|
||||||
t = get_object_or_none(CeleryTask, id=task_id)
|
t = get_object_or_none(CeleryTask, id=task_id)
|
||||||
if t is None:
|
if t is None:
|
||||||
logger.warn("Not get the task: {}".format(task_id))
|
logger.warn("Not get the task: {}".format(task_id))
|
||||||
|
|
|
@ -28,7 +28,7 @@ class UserViewSet(IDInFilterMixin, BulkModelViewSet):
|
||||||
queryset = User.objects.exclude(role="App")
|
queryset = User.objects.exclude(role="App")
|
||||||
# queryset = User.objects.all().exclude(role="App").order_by("date_joined")
|
# queryset = User.objects.all().exclude(role="App").order_by("date_joined")
|
||||||
serializer_class = UserSerializer
|
serializer_class = UserSerializer
|
||||||
permission_classes = (IsSuperUser, IsAuthenticated)
|
permission_classes = (IsSuperUserOrAppUser, IsAuthenticated)
|
||||||
filter_fields = ('username', 'email', 'name', 'id')
|
filter_fields = ('username', 'email', 'name', 'id')
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue