Sfoglia il codice sorgente

增加调用定时任务接口,增加服务管理接口

zhangnaiwen 2 anni fa
parent
commit
6c9bac0b2d

+ 4 - 0
config/config.yml

@@ -13,6 +13,10 @@ RabbitMq:
   PASSWORD: aaaaaa  # 密码
   QUEUE: message # 队列
 
+system_monitoring:
+  HOST: 121.43.55.7 # ip地址
+  POST: 2024 # 端口
+
 #redis:
 #  # redis配置
 #  HOST: 192.168.2.35 # 使用容器运行服务时,该HOST信息无用,容器内部会自动获取redis容器的ip

+ 5 - 0
src/app/api/__init__.py

@@ -12,6 +12,8 @@ from app.api.information import ns as information
 from app.api.device import ns as device
 from app.api.download import ns as download
 from app.api.strategy import ns as strategy
+from app.api.system_monitoring import ns as system_monitoring
+from app.api.server import ns as server
 
 api = Api(version='v1.0', title='operation_management_center', description='运营管理中心', doc='/api')
 
@@ -27,3 +29,6 @@ api.add_namespace(device)
 api.add_namespace(data)
 api.add_namespace(log)
 api.add_namespace(download)
+
+api.add_namespace(system_monitoring)
+api.add_namespace(server)

+ 0 - 2
src/app/api/device.py

@@ -13,11 +13,9 @@ from app.modle.device import DeviceType, SecurityDevice
 from app.utils.jwt_util import login_required
 from app.utils.save_log import save_log
 from app.utils.util import to_dict
-from config import Config
 
 ns = Namespace('device', description='设备管理接口')
 
-config = Config()
 device_type_list = reqparse.RequestParser(bundle_errors=True)
 device_type_list.add_argument(name='name', type=str, location='args', required=False, help='过滤设备类别名')
 

+ 0 - 3
src/app/api/organization.py

@@ -12,7 +12,6 @@ from app.modle.organization import Company, Department
 from app.utils.jwt_util import login_required
 from app.utils.save_log import save_log
 from app.utils.util import to_dict
-from config import Config
 
 ns = Namespace('organization', description='组织管理接口')
 
@@ -21,8 +20,6 @@ company_list.add_argument(name='page_size', type=int, location='args', required=
 company_list.add_argument(name='page', type=int, location='args', required=False, help='页数')
 company_list.add_argument(name='name', type=str, location='args', required=False, help='过滤公司名')
 
-config = Config()
-
 
 @ns.route('/company_list')
 class CompanyListApi(Resource):

+ 36 - 0
src/app/api/server.py

@@ -0,0 +1,36 @@
+from flask import request, jsonify, current_app
+from flask_restx import Resource, Namespace, reqparse
+
+from app.defines import StatesCode
+from app.utils.jwt_util import login_required
+
+ns = Namespace('server', description='服务管理接口')
+
+
+@ns.route('/server_list')
+class ServerListApi(Resource):
+    method_decorators = [login_required]
+
+    @ns.doc(id='get_server_list', description='获取服务列表')
+    def get(self):
+        """服务列表"""
+
+        page_size = int(request.args.get('page_size', 20))
+        page = int(request.args.get('page', 1))
+
+        #  服务名称,简介,图片,安装状态
+        data = {
+            'name': '海康威视软件包',
+            'introduction': 'xxxxxxxx',
+            'picture': '',
+            'setup_status': True
+        }
+        return jsonify(code=StatesCode.SUCCESS, message='成功', data=data)
+
+
+# @ns.route('/search_server')
+# class SearchServerApi(Resource):
+#
+#     def get(self):
+#         """搜索服务"""
+#         pass

+ 2 - 0
src/app/api/strategy.py

@@ -7,6 +7,7 @@ from sqlalchemy.orm import Session
 
 from app.defines import StatesCode, Module, OperationType
 from app.modle.strategy import MeetingRoom
+from app.utils.jwt_util import login_required
 from app.utils.save_log import save_log
 from app.utils.util import to_dict
 from config import Config
@@ -18,6 +19,7 @@ config = Config()
 
 @ns.route('')
 class StrategyList(Resource):
+    method_decorators = [login_required]
 
     @ns.doc(description='获取策略配置')
     def get(self):

+ 54 - 0
src/app/api/system_monitoring.py

@@ -0,0 +1,54 @@
+import requests
+from flask import request, jsonify
+from flask_restx import Resource, Namespace, reqparse
+
+from app.defines import StatesCode
+from app.utils.jwt_util import login_required
+from config import Config
+
+ns = Namespace('system_monitoring', description='系统监控')
+
+config = Config()
+
+job_list = reqparse.RequestParser(bundle_errors=True)
+job_list.add_argument(name='name', type=str, location='args', required=False, help='任务名称')
+job_list.add_argument(name='group', type=str, location='args', required=False, help='任务组名')
+job_list.add_argument(name='status', type=str, location='args', required=False, help='任务状态')
+job_list.add_argument(name='page_size', type=int, location='args', required=False, help='每页记录数量,默认:20')
+job_list.add_argument(name='page', type=int, location='args', required=False, help='第几页')
+
+
+@ns.route('/job_list')
+class TimedTaskApi(Resource):
+    method_decorators = [login_required]
+
+    @ns.doc(description='获取定时任务列表')
+    @ns.expect(job_list)
+    def get(self):
+        """获取定时任务列表"""
+
+        name = request.args.get('name')
+        group = request.args.get('group')
+        status = request.args.get('status')
+        page_size = int(request.args.get('page_size', 20))
+        page = int(request.args.get('page', 1))
+
+        data = {}
+
+        if name:
+            data['name'] = name
+        if group:
+            data['group'] = group
+        if status:
+            data['status'] = status
+        if page_size:
+            data['page_size'] = page_size
+        if page:
+            data['page'] = page
+
+        rep = requests.get(
+            'http://{host}:{post}/ioc-api/quartz_job/getJobList'.format(host=config.system_monitoring.HOST,
+                                                                        post=config.system_monitoring.POST
+                                                                        ), data=data, headers={'clientId': "99"}).json()
+
+        return jsonify(code=StatesCode.SUCCESS, message='成功', data=rep)