67 lines
1.9 KiB
Python
Executable File
67 lines
1.9 KiB
Python
Executable File
from django.db import transaction
|
|
from django.shortcuts import render
|
|
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_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) |