mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-06-01 03:15:23 +00:00
[Bugfix] 修复打印中文报错异常
This commit is contained in:
parent
6586bef84c
commit
a755882100
@ -21,6 +21,7 @@ from django.shortcuts import get_object_or_404
|
|||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
|
|
||||||
from common.mixins import IDInFilterMixin
|
from common.mixins import IDInFilterMixin
|
||||||
|
from common.utils import get_logger
|
||||||
from .hands import IsSuperUser, IsValidUser, IsSuperUserOrAppUser, \
|
from .hands import IsSuperUser, IsValidUser, IsSuperUserOrAppUser, \
|
||||||
get_user_granted_assets
|
get_user_granted_assets
|
||||||
from .models import AssetGroup, Asset, Cluster, SystemUser, AdminUser
|
from .models import AssetGroup, Asset, Cluster, SystemUser, AdminUser
|
||||||
@ -30,6 +31,9 @@ from .tasks import update_asset_hardware_info_manual, test_admin_user_connectabi
|
|||||||
test_system_user_connectability_manual
|
test_system_user_connectability_manual
|
||||||
|
|
||||||
|
|
||||||
|
logger = get_logger(__file__)
|
||||||
|
|
||||||
|
|
||||||
class AssetViewSet(IDInFilterMixin, BulkModelViewSet):
|
class AssetViewSet(IDInFilterMixin, BulkModelViewSet):
|
||||||
"""
|
"""
|
||||||
API endpoint that allows Asset to be viewed or edited.
|
API endpoint that allows Asset to be viewed or edited.
|
||||||
@ -178,10 +182,6 @@ class SystemUserViewSet(BulkModelViewSet):
|
|||||||
serializer_class = serializers.SystemUserSerializer
|
serializer_class = serializers.SystemUserSerializer
|
||||||
permission_classes = (IsSuperUserOrAppUser,)
|
permission_classes = (IsSuperUserOrAppUser,)
|
||||||
|
|
||||||
def update(self, request, *args, **kwargs):
|
|
||||||
print(request.data)
|
|
||||||
return super().update(request, *args, **kwargs)
|
|
||||||
|
|
||||||
|
|
||||||
class AssetListUpdateApi(IDInFilterMixin, ListBulkCreateUpdateDestroyAPIView):
|
class AssetListUpdateApi(IDInFilterMixin, ListBulkCreateUpdateDestroyAPIView):
|
||||||
"""
|
"""
|
||||||
@ -223,6 +223,7 @@ class AssetRefreshHardwareApi(generics.RetrieveAPIView):
|
|||||||
asset_id = kwargs.get('pk')
|
asset_id = kwargs.get('pk')
|
||||||
asset = get_object_or_404(Asset, pk=asset_id)
|
asset = get_object_or_404(Asset, pk=asset_id)
|
||||||
summary = update_asset_hardware_info_manual(asset)[1]
|
summary = update_asset_hardware_info_manual(asset)[1]
|
||||||
|
logger.debug("Refresh summary: {}".format(summary))
|
||||||
if summary.get('dark'):
|
if summary.get('dark'):
|
||||||
return Response(summary['dark'].values(), status=501)
|
return Response(summary['dark'].values(), status=501)
|
||||||
else:
|
else:
|
||||||
|
@ -28,7 +28,6 @@ class AdHocResultCallback(CallbackModule):
|
|||||||
host = res._host.get_name()
|
host = res._host.get_name()
|
||||||
task_name = res.task_name
|
task_name = res.task_name
|
||||||
task_result = res._result
|
task_result = res._result
|
||||||
print(task_result)
|
|
||||||
|
|
||||||
if self.results_raw[t].get(host):
|
if self.results_raw[t].get(host):
|
||||||
self.results_raw[t][host][task_name] = task_result
|
self.results_raw[t][host][task_name] = task_result
|
||||||
|
@ -32,7 +32,6 @@ class BaseHost(Host):
|
|||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
self.host_data = host_data
|
self.host_data = host_data
|
||||||
print(host_data)
|
|
||||||
hostname = host_data.get('hostname') or host_data.get('ip')
|
hostname = host_data.get('hostname') or host_data.get('ip')
|
||||||
port = host_data.get('port') or 22
|
port = host_data.get('port') or 22
|
||||||
super().__init__(hostname, port)
|
super().__init__(hostname, port)
|
||||||
@ -62,7 +61,6 @@ class BaseHost(Host):
|
|||||||
self.set_variable("ansible_become_pass", become.get('pass', ''))
|
self.set_variable("ansible_become_pass", become.get('pass', ''))
|
||||||
else:
|
else:
|
||||||
self.set_variable("ansible_become", False)
|
self.set_variable("ansible_become", False)
|
||||||
print(self.get_vars())
|
|
||||||
|
|
||||||
def __set_extra_variables(self):
|
def __set_extra_variables(self):
|
||||||
for k, v in self.host_data.get('vars', {}).items():
|
for k, v in self.host_data.get('vars', {}).items():
|
||||||
|
@ -317,7 +317,10 @@ class AdHocRunHistory(models.Model):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def result(self):
|
def result(self):
|
||||||
return json.loads(self._result)
|
if self._result:
|
||||||
|
return json.loads(self._result)
|
||||||
|
else:
|
||||||
|
return {}
|
||||||
|
|
||||||
@result.setter
|
@result.setter
|
||||||
def result(self, item):
|
def result(self, item):
|
||||||
@ -325,7 +328,10 @@ class AdHocRunHistory(models.Model):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def summary(self):
|
def summary(self):
|
||||||
return json.loads(self._summary)
|
if self._summary:
|
||||||
|
return json.loads(self._summary)
|
||||||
|
else:
|
||||||
|
return {"ok": {}, "dark": {}}
|
||||||
|
|
||||||
@summary.setter
|
@summary.setter
|
||||||
def summary(self, item):
|
def summary(self, item):
|
||||||
|
@ -38,7 +38,6 @@ class TaskListView(DatetimeSearchMixin, ListView):
|
|||||||
return self.queryset
|
return self.queryset
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
print(self.date_from)
|
|
||||||
context = {
|
context = {
|
||||||
'app': 'Ops',
|
'app': 'Ops',
|
||||||
'action': _('Task list'),
|
'action': _('Task list'),
|
||||||
|
@ -94,7 +94,6 @@ class AssetPermissionRemoveAssetApi(RetrieveUpdateAPIView):
|
|||||||
perm = self.get_object()
|
perm = self.get_object()
|
||||||
serializer = self.serializer_class(data=request.data)
|
serializer = self.serializer_class(data=request.data)
|
||||||
if serializer.is_valid():
|
if serializer.is_valid():
|
||||||
print(serializer.data)
|
|
||||||
assets = serializer.validated_data.get('assets')
|
assets = serializer.validated_data.get('assets')
|
||||||
if assets:
|
if assets:
|
||||||
perm.assets.remove(*tuple(assets))
|
perm.assets.remove(*tuple(assets))
|
||||||
|
@ -100,7 +100,6 @@ class UserGroupGrantedAssetView(AdminUserRequiredMixin, DetailView):
|
|||||||
context_object_name = 'user_group'
|
context_object_name = 'user_group'
|
||||||
|
|
||||||
def get(self, request, *args, **kwargs):
|
def get(self, request, *args, **kwargs):
|
||||||
print(kwargs.get('pk'))
|
|
||||||
self.object = self.get_object(queryset=self.model.objects.all())
|
self.object = self.get_object(queryset=self.model.objects.all())
|
||||||
return super().get(request, *args, **kwargs)
|
return super().get(request, *args, **kwargs)
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ import time
|
|||||||
import argparse
|
import argparse
|
||||||
import sys
|
import sys
|
||||||
import signal
|
import signal
|
||||||
|
import io
|
||||||
|
|
||||||
from apps import __version__
|
from apps import __version__
|
||||||
|
|
||||||
@ -26,6 +27,7 @@ WORKERS = 4
|
|||||||
|
|
||||||
EXIT_EVENT = threading.Event()
|
EXIT_EVENT = threading.Event()
|
||||||
processes = {}
|
processes = {}
|
||||||
|
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
os.makedirs(os.path.join(BASE_DIR, "data", "static"))
|
os.makedirs(os.path.join(BASE_DIR, "data", "static"))
|
||||||
@ -70,7 +72,8 @@ def start_celery():
|
|||||||
os.environ.setdefault('PYTHONOPTIMIZE', '1')
|
os.environ.setdefault('PYTHONOPTIMIZE', '1')
|
||||||
|
|
||||||
cmd = """
|
cmd = """
|
||||||
export C_FORCE_ROOT=1;celery -A common worker -l {}
|
export C_FORCE_ROOT=1;
|
||||||
|
celery -A common worker -l {}
|
||||||
""".format(LOG_LEVEL.lower())
|
""".format(LOG_LEVEL.lower())
|
||||||
|
|
||||||
p = subprocess.Popen(cmd, shell=True, stdout=sys.stdout, stderr=sys.stderr)
|
p = subprocess.Popen(cmd, shell=True, stdout=sys.stdout, stderr=sys.stderr)
|
||||||
@ -133,6 +136,9 @@ def stop_service():
|
|||||||
print("Stop service {}".format(name))
|
print("Stop service {}".format(name))
|
||||||
proc.terminate()
|
proc.terminate()
|
||||||
|
|
||||||
|
if os.path.exists("/tmp/beat.pid"):
|
||||||
|
os.unlink('/tmp/beat.pid')
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
parser = argparse.ArgumentParser(description="Jumpserver start tools")
|
parser = argparse.ArgumentParser(description="Jumpserver start tools")
|
||||||
|
Loading…
Reference in New Issue
Block a user