diff --git a/apps/assets/tasks.py b/apps/assets/tasks.py index d7165a8ff..205921cd3 100644 --- a/apps/assets/tasks.py +++ b/apps/assets/tasks.py @@ -1,5 +1,6 @@ # ~*~ coding: utf-8 ~*~ import json +import re from celery import shared_task from django.core.cache import cache @@ -18,6 +19,7 @@ FORKS = 10 TIMEOUT = 60 logger = get_logger(__file__) CACHE_MAX_TIME = 60*60*60 +disk_pattern = re.compile(r'^hd|sd') @shared_task @@ -57,7 +59,7 @@ def set_assets_hardware_info(result, **kwargs): ___memory = '%s %s' % capacity_convert('{} MB'.format(info['ansible_memtotal_mb'])) disk_info = {} for dev, dev_info in info['ansible_devices'].items(): - if dev_info['removable'] == '0': + if disk_pattern.match(dev) and dev_info['removable'] == '0': disk_info[dev] = dev_info['size'] ___disk_total = '%s %s' % sum_capacity(disk_info.values()) ___disk_info = json.dumps(disk_info) diff --git a/apps/common/celery.py b/apps/common/celery.py index 5b76978af..e79f1d434 100644 --- a/apps/common/celery.py +++ b/apps/common/celery.py @@ -16,6 +16,7 @@ logger = get_logger(__file__) os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'jumpserver.settings') from django.conf import settings +from django.core.cache import cache app = Celery('jumpserver') @@ -176,6 +177,9 @@ def after_app_shutdown_clean(func): @worker_ready.connect def on_app_ready(sender=None, headers=None, body=None, **kwargs): + if cache.get("CELERY_APP_READY", 0) == 1: + return + cache.set("CELERY_APP_READY", 1, 10) logger.debug("App ready signal recv") logger.debug("Start need start task: [{}]".format( ", ".join(__AFTER_APP_READY_RUN_TASKS)) @@ -186,6 +190,9 @@ def on_app_ready(sender=None, headers=None, body=None, **kwargs): @worker_shutdown.connect def after_app_shutdown(sender=None, headers=None, body=None, **kwargs): + if cache.get("CELERY_APP_SHUTDOWN", 0) == 1: + return + cache.set("CELERY_APP_SHUTDOWN", 1, 10) from django_celery_beat.models import PeriodicTask logger.debug("App shutdown signal recv") logger.debug("Clean need cleaned period tasks: [{}]".format( diff --git a/apps/perms/forms.py b/apps/perms/forms.py index c4c4ff0c9..87c6d2eff 100644 --- a/apps/perms/forms.py +++ b/apps/perms/forms.py @@ -6,9 +6,17 @@ from django.utils.translation import ugettext_lazy as _ # from .hands import User, UserGroup, Asset, AssetGroup, SystemUser from .models import AssetPermission +from users.models import User class AssetPermissionForm(forms.ModelForm): + users = forms.ModelMultipleChoiceField( + queryset=User.objects.exclude(role=User.ROLE_APP), + widget=forms.SelectMultiple( + attrs={'class': 'select2', 'data-placeholder': _('Select users')}, + ) + ) + class Meta: model = AssetPermission fields = [ @@ -16,9 +24,6 @@ class AssetPermissionForm(forms.ModelForm): 'system_users', 'is_active', 'date_expired', 'comment', ] widgets = { - 'users': forms.SelectMultiple( - attrs={'class': 'select2', - 'data-placeholder': _('Select users')}), 'user_groups': forms.SelectMultiple( attrs={'class': 'select2', 'data-placeholder': _('Select user groups')}), diff --git a/apps/templates/_user_profile.html b/apps/templates/_user_profile.html index 1c3e03939..bdecc00d6 100644 --- a/apps/templates/_user_profile.html +++ b/apps/templates/_user_profile.html @@ -3,15 +3,15 @@