89 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			2.2 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
 | |
| # 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 ReloadClientGit(APIView):
 | |
|     authentication_classes = []
 | |
|     permission_classes = []
 | |
| 
 | |
|     def post(self, request):
 | |
|         """
 | |
|         拉取前端代码并打包
 | |
| 
 | |
|         拉取前端代码并打包
 | |
|         """
 | |
|         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)
 |