From 8b5614894926f9ef3c32638d91faa346b1c29dcb Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 29 Mar 2022 08:53:19 +0800 Subject: [PATCH] =?UTF-8?q?develop=E5=A2=9E=E5=8A=A0=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E5=B9=B6=E9=87=8D=E5=90=AF=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/develop/serializers.py | 1 + hb_server/apps/develop/tasks.py | 8 +++++++- hb_server/apps/develop/urls.py | 5 +++-- hb_server/apps/develop/views.py | 18 +++++++++++++++--- 4 files changed, 26 insertions(+), 6 deletions(-) create mode 100644 hb_server/apps/develop/serializers.py diff --git a/hb_server/apps/develop/serializers.py b/hb_server/apps/develop/serializers.py new file mode 100644 index 0000000..bd7363c --- /dev/null +++ b/hb_server/apps/develop/serializers.py @@ -0,0 +1 @@ +from rest_framework import serializers \ No newline at end of file diff --git a/hb_server/apps/develop/tasks.py b/hb_server/apps/develop/tasks.py index 580f525..b8958d8 100644 --- a/hb_server/apps/develop/tasks.py +++ b/hb_server/apps/develop/tasks.py @@ -24,7 +24,7 @@ def backup_database(): return completed @shared_task -def reload_server(): +def reload_server_git(): command = 'bash {}/git.sh'.format(SH_PATH) completed = subprocess.run(command, shell=True, capture_output=True, text=True) return completed @@ -35,6 +35,12 @@ def reload_server_only(): completed = subprocess.run(command, shell=True, capture_output=True, text=True) return completed +@shared_task +def reload_server(): + command = 'bash {}/reload.sh'.format(SH_PATH) + completed = subprocess.run(command, shell=True, capture_output=True, text=True) + return completed + @shared_task def backup_media(): command = 'bash {}/backup_media.sh'.format(SH_PATH) diff --git a/hb_server/apps/develop/urls.py b/hb_server/apps/develop/urls.py index 66a21a5..57885c9 100644 --- a/hb_server/apps/develop/urls.py +++ b/hb_server/apps/develop/urls.py @@ -2,7 +2,7 @@ from django.db.models import base from rest_framework import urlpatterns from django.urls import path, include from rest_framework.routers import DefaultRouter -from apps.develop.views import BackupDatabase, BackupMedia, CleanDataView, ReloadServer, ReloadServerOnly, UpdateCuttingView, UpdateEquipState, UpdateFIFOItem, UpdateFIFONumber, UpdateLastTestResult, UpdateNeedToOrder, UpdateSpg +from apps.develop.views import BackupDatabase, BackupMedia, CleanDataView, ReloadServer, ReloadServerGit, ReloadServerOnly, UpdateCuttingView, UpdateEquipState, UpdateFIFOItem, UpdateFIFONumber, UpdateLastTestResult, UpdateNeedToOrder, UpdateSpg urlpatterns = [ path('cleandata/', CleanDataView.as_view()), @@ -14,8 +14,9 @@ urlpatterns = [ path('update_equip_state/', UpdateEquipState.as_view()), path('update_need_to_order/', UpdateNeedToOrder.as_view()), path('update_fifo_number/', UpdateFIFONumber.as_view()), - path('reload_server/', ReloadServer.as_view()), + path('reload_server_git/', ReloadServerGit.as_view()), path('reload_server_only/', ReloadServerOnly.as_view()), + path('reload_server/', ReloadServer.as_view()), path('backup_database/', BackupDatabase.as_view()), path('backup_media/', BackupMedia.as_view()) ] diff --git a/hb_server/apps/develop/views.py b/hb_server/apps/develop/views.py index 4013959..96ed853 100644 --- a/hb_server/apps/develop/views.py +++ b/hb_server/apps/develop/views.py @@ -4,7 +4,7 @@ from rest_framework.decorators import permission_classes from rest_framework.views import APIView from rest_framework.permissions import IsAdminUser, AllowAny from rest_framework.response import Response -from apps.develop.tasks import backup_database, backup_media, reload_server, reload_server_only +from apps.develop.tasks import backup_database, backup_media, reload_server_git, reload_server_only, reload_server from apps.inm.models import FIFO, FIFOItem, Inventory, MaterialBatch from apps.mtm.models import Material from apps.pm.models import ProductionPlan, SubProductionPlan @@ -129,14 +129,14 @@ class CorrectWproduct(APIView): # WProduct.objects.filter(is_hidden=True).update(act_state=WProduct.WPR_ACT_STATE_USED) -class ReloadServer(APIView): +class ReloadServerGit(APIView): authentication_classes = [] permission_classes = [] def post(self, request): """ 拉取代码并重启服务 """ - completed = reload_server() + completed = reload_server_git() if completed.returncode == 0: return Response() else: @@ -154,6 +154,18 @@ class ReloadServerOnly(APIView): else: raise APIException(completed.stdout) +class ReloadServer(APIView): + permission_classes = [IsAdminUser] + def post(self, request): + """ + 同步数据库并重启服务 + """ + completed = reload_server() + if completed.returncode == 0: + return Response() + else: + raise APIException(completed.stdout) + class BackupDatabase(APIView): permission_classes = [IsAdminUser] def post(self, request):