factory/apps/develop/views.py

72 lines
1.8 KiB
Python
Executable File

from rest_framework.views import APIView
from rest_framework.permissions import IsAdminUser
from rest_framework.response import Response
from apps.develop.tasks import backup_database, backup_media, reload_server_git, reload_server_only
from rest_framework.exceptions import APIException
# Create your views here.
class ReloadServerGit(APIView):
authentication_classes = []
permission_classes = []
def post(self, request):
"""
拉取后端代码并重启服务
拉取后端代码并重启服务
"""
completed = reload_server_git()
if completed.returncode == 0:
return Response()
else:
raise APIException(completed.stdout)
class ReloadServerOnly(APIView):
permission_classes = [IsAdminUser]
def post(self, request):
"""
仅重启服务
仅重启服务
"""
completed = reload_server_only()
if completed.returncode == 0:
return Response()
else:
raise APIException(completed.stdout)
class BackupDatabase(APIView):
permission_classes = [IsAdminUser]
def post(self, request):
"""
备份数据库到指定位置
备份数据库到指定位置
"""
completed = backup_database()
if completed.returncode == 0:
return Response()
else:
raise APIException(completed.stdout)
class BackupMedia(APIView):
permission_classes = [IsAdminUser]
def post(self, request):
"""
备份资源到指定位置
备份资源到指定位置
"""
completed = backup_media()
if completed.returncode == 0:
return Response()
else:
raise APIException(completed.stdout)