diff --git a/apps/terminal/applets/__init__.py b/apps/terminal/applets/__init__.py index bb09feecd..0d8e50a3b 100644 --- a/apps/terminal/applets/__init__.py +++ b/apps/terminal/applets/__init__.py @@ -11,9 +11,9 @@ def install_or_update_builtin_applets(): path = os.path.join(BASE_DIR, d) if not os.path.isdir(path) or not os.path.exists(os.path.join(path, 'manifest.yml')): continue - print("Install or update applet: {}".format(path)) try: - Applet.install_from_dir(path) + if Applet.install_from_dir(path): + print("Install or update applet: {}".format(path)) except Exception as e: print(e) diff --git a/apps/terminal/models/applet/applet.py b/apps/terminal/models/applet/applet.py index 1fd8a670f..c71fe95c2 100644 --- a/apps/terminal/models/applet/applet.py +++ b/apps/terminal/models/applet/applet.py @@ -12,6 +12,7 @@ from rest_framework.serializers import ValidationError from common.db.models import JMSBaseModel from common.utils import lazyproperty, get_logger +from jumpserver.utils import has_valid_xpack_license logger = get_logger(__name__) @@ -95,6 +96,9 @@ class Applet(JMSBaseModel): manifest = cls.validate_pkg(path) name = manifest['name'] + if not has_valid_xpack_license() and name.lower() in ('navicat', ): + return + instance = cls.objects.filter(name=name).first() serializer = AppletSerializer(instance=instance, data=manifest) serializer.is_valid()