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)