71 lines
1.7 KiB
Python
Executable File
71 lines
1.7 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):
|
|
permission_classes = [IsAdminUser]
|
|
|
|
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)
|