93 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			2.3 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_web_git, reload_server_git, reload_server_only
 | 
						|
from rest_framework.exceptions import APIException, ParseError
 | 
						|
# 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:
 | 
						|
            from server.settings import myLogger
 | 
						|
            myLogger.error(completed)
 | 
						|
            raise ParseError(completed.stderr)
 | 
						|
 | 
						|
 | 
						|
class ReloadClientGit(APIView):
 | 
						|
    authentication_classes = []
 | 
						|
    permission_classes = []
 | 
						|
 | 
						|
    def post(self, request):
 | 
						|
        """
 | 
						|
        拉取前端代码并打包
 | 
						|
 | 
						|
        拉取前端代码并打包
 | 
						|
        """
 | 
						|
        reload_web_git.delay()
 | 
						|
        return Response()
 | 
						|
        # completed = reload_web_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)
 |