Commit 498128c0 authored by wanli's avatar wanli

feat(models/package.py): package表增加打包算法字段

parent f4194576
...@@ -60,8 +60,14 @@ def _custom_abort(http_status_code, **kwargs): ...@@ -60,8 +60,14 @@ def _custom_abort(http_status_code, **kwargs):
自定义abort 400响应数据格式 自定义abort 400响应数据格式
""" """
if http_status_code == 400: if http_status_code == 400:
return abort(jsonify(response_result(ResponseCode.HTTP_INVAILD_REQUEST, msg=kwargs))) message = kwargs.get('msg')
if isinstance(message, dict):
param, info = list(message.items())[0]
data = '{}:{}!'.format(param, info)
return abort(jsonify(response_result(ResponseCode.HTTP_INVAILD_REQUEST, data=data)))
else:
return abort(jsonify(response_result(ResponseCode.HTTP_INVAILD_REQUEST, data=message)))
# return { 'code': http_status_code, 'msg': kwargs.get('message') }
return abort(http_status_code) return abort(http_status_code)
def _access_control(response): def _access_control(response):
......
''' '''
Author: your name Author: your name
Date: 2021-06-30 18:03:41 Date: 2021-06-30 18:03:41
LastEditTime: 2021-07-15 10:23:56 LastEditTime: 2021-07-15 17:10:43
LastEditors: Please set LastEditors LastEditors: Please set LastEditors
Description: In User Settings Edit Description: In User Settings Edit
FilePath: \evm-store\tools\build_out\application\signal_manager.py FilePath: \evm-store\tools\build_out\application\signal_manager.py
......
''' '''
Author: your name Author: your name
Date: 2021-06-30 17:43:46 Date: 2021-06-30 17:43:46
LastEditTime: 2021-07-15 10:24:23 LastEditTime: 2021-07-15 17:10:33
LastEditors: Please set LastEditors LastEditors: Please set LastEditors
Description: In User Settings Edit Description: In User Settings Edit
FilePath: \evm-store\tools\build_out\controllers\__init__.py FilePath: \evm-store\tools\build_out\controllers\__init__.py
......
...@@ -55,7 +55,7 @@ class FileManager(object): ...@@ -55,7 +55,7 @@ class FileManager(object):
@param {*} self @param {*} self
@return {*} @return {*}
''' '''
def content(self, disk, target_path=""): def content(self, disk, target_path='/'):
''' '''
目录信息结构体: 目录信息结构体:
{ {
...@@ -86,6 +86,7 @@ class FileManager(object): ...@@ -86,6 +86,7 @@ class FileManager(object):
} }
''' '''
target_path = Path(target_path)
result = { result = {
"directories": [], "directories": [],
"files": [] "files": []
...@@ -95,14 +96,7 @@ class FileManager(object): ...@@ -95,14 +96,7 @@ class FileManager(object):
if not disk_path.exists(): if not disk_path.exists():
return result return result
if target_path == None: target_path = disk_path.joinpath(target_path)
target_path = ""
if target_path.startswith("/"):
target_path = target_path[1:]
target_path = disk_path.joinpath(Path(target_path))
if not target_path.exists(): if not target_path.exists():
return result return result
...@@ -118,7 +112,7 @@ class FileManager(object): ...@@ -118,7 +112,7 @@ class FileManager(object):
else: else:
result["files"].append({ result["files"].append({
"basename": child.name, "basename": child.name,
"dirname": child.parent.relative_to(disk_path).as_posix(), "dirname": child.parent,
"extension": child.suffix[1:], "extension": child.suffix[1:],
"filename": child.stem, "filename": child.stem,
"path": child.resolve().relative_to(disk_path).as_posix(), "path": child.resolve().relative_to(disk_path).as_posix(),
...@@ -127,14 +121,13 @@ class FileManager(object): ...@@ -127,14 +121,13 @@ class FileManager(object):
"type": "file" "type": "file"
}) })
# pprint.pprint(result)
with open("result.json", "w") as f: with open("result.json", "w") as f:
json.dump(result, f) json.dump(result, f)
f.seek(0) f.seek(0)
f.truncate() f.truncate()
f.write(json.dumps(result, ensure_ascii=True)) f.write(json.dumps(result, ensure_ascii=True))
pprint.pprint(result)
return result, ResponseCode.HTTP_SUCCESS return result, ResponseCode.HTTP_SUCCESS
''' '''
...@@ -142,7 +135,7 @@ class FileManager(object): ...@@ -142,7 +135,7 @@ class FileManager(object):
@param {*} self @param {*} self
@return {*} @return {*}
''' '''
def tree(self, disk, target_path=""): def tree(self, disk, target_path="/"):
''' '''
{ {
basename: "trees" basename: "trees"
...@@ -156,18 +149,13 @@ class FileManager(object): ...@@ -156,18 +149,13 @@ class FileManager(object):
} }
''' '''
target_path = Path(target_path)
result = [] result = []
rp = Path(disk_root) rp = Path(disk_root)
disk_path = rp / disk disk_path = rp / disk
if not disk_path.exists(): if not disk_path.exists():
return result return result
if target_path == None:
target_path = ""
if target_path.startswith("/"):
target_path = target_path[1:]
temp_path = disk_path.joinpath(target_path) temp_path = disk_path.joinpath(target_path)
if not temp_path.exists(): if not temp_path.exists():
return result return result
...@@ -185,7 +173,7 @@ class FileManager(object): ...@@ -185,7 +173,7 @@ class FileManager(object):
"timestamp": int(child.stat().st_mtime), "timestamp": int(child.stat().st_mtime),
"type": "dir" "type": "dir"
}) })
# pprint.pprint(result) pprint.pprint(result)
return result, ResponseCode.HTTP_SUCCESS return result, ResponseCode.HTTP_SUCCESS
......
''' '''
Author: your name Author: your name
Date: 2021-06-30 18:03:41 Date: 2021-06-30 18:03:41
LastEditTime: 2021-07-15 10:39:52 LastEditTime: 2021-07-15 17:10:22
LastEditors: Please set LastEditors LastEditors: Please set LastEditors
Description: In User Settings Edit Description: In User Settings Edit
FilePath: \evm-store\tools\build_out\controllers\package.py FilePath: \evm-store\tools\build_out\controllers\package.py
......
''' '''
Author: your name Author: your name
Date: 2021-07-15 09:33:39 Date: 2021-07-15 09:33:39
LastEditTime: 2021-07-15 10:22:20 LastEditTime: 2021-07-15 17:10:06
LastEditors: Please set LastEditors LastEditors: Please set LastEditors
Description: In User Settings Edit Description: In User Settings Edit
FilePath: \evm-store\tools\build_out\models\annex.20210715101849.py FilePath: \evm-store\tools\build_out\models\annex.20210715101849.py
......
'''
Author: your name
Date: 2021-06-30 18:03:41
LastEditTime: 2021-07-15 10:22:39
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath: \evm-store\tools\build_out\models\package.py
'''
#!/usr/bin/env python #!/usr/bin/env python
# -*- coding: utf_8 -*- # -*- coding: utf_8 -*-
...@@ -19,22 +11,24 @@ class PackageModel(PrimaryModel): ...@@ -19,22 +11,24 @@ class PackageModel(PrimaryModel):
app = db.Column(db.Integer, nullable = False) app = db.Column(db.Integer, nullable = False)
app_version = db.Column(db.String(200), nullable = False) app_version = db.Column(db.String(200), nullable = False)
package_info = db.Column(db.String(20), nullable = False) package_info = db.Column(db.String(20), nullable = False)
file_path = db.Column(db.String(200), nullable = False) algorithm = db.Column(db.String(50), nullable = False, default = 'zlib')
source = db.Column(db.Integer, nullable = False) file_path = db.Column(db.String(200), nullable = False, default = '')
user_agent = db.Column(db.String(200), nullable = False) source = db.Column(db.Integer, nullable = False, default = 0)
download_url = db.Column(db.String(200), nullable = False) user_agent = db.Column(db.String(200), nullable = False, default = '')
ip = db.Column(db.String(128), nullable = False) download_url = db.Column(db.String(200), nullable = False, default = '')
geo_location = db.Column(db.String(200), nullable = False) ip = db.Column(db.String(128), nullable = False, default = '127.0.0.1')
operator = db.Column(db.String(50), nullable = False) geo_location = db.Column(db.String(200), nullable = False, default = '')
operator = db.Column(db.String(50), nullable = False, default = '')
# __table_args__ = ( # __table_args__ = (
# db.Index('idx_xxx', 'xxx', mysql_using='btree'), # db.Index('idx_xxx', 'xxx', mysql_using='btree'),
# ) # )
def __init__(self, app, app_version, package_info, file_path, source="", user_agent="", download_url="", ip="", geo_location="", operator="", create_by=None, create_at=None, update_by=None, update_at=None): def __init__(self, app, app_version, package_info, algorithm='zlib', file_path='', source=0, user_agent='', download_url='', ip='127.0.0.1', geo_location='', operator='', create_by=None, create_at=None, update_by=None, update_at=None):
self.app = app self.app = app
self.app_version = app_version self.app_version = app_version
self.package_info = package_info self.package_info = package_info
self.algorithm = algorithm
self.file_path = file_path self.file_path = file_path
self.source = source self.source = source
self.user_agent = user_agent self.user_agent = user_agent
...@@ -54,6 +48,7 @@ class PackageModel(PrimaryModel): ...@@ -54,6 +48,7 @@ class PackageModel(PrimaryModel):
return { return {
'app_version': self.app_version, 'app_version': self.app_version,
'package_info': self.package_info, 'package_info': self.package_info,
'algorithm': self.algorithm,
'file_path': self.file_path, 'file_path': self.file_path,
'source': self.source, 'source': self.source,
'user_agent': self.user_agent, 'user_agent': self.user_agent,
......
'''
Author: your name
Date: 2021-07-15 03:22:19
LastEditTime: 2021-07-15 10:20:28
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath: \evm-store\tools\build_out\views\__init__.py
'''
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from flask import Blueprint
from flask_restful import Api
from . import area
from . import app
from . import package
from . import user
from . import login
from . import device
from . import annex
from . import file
from . import monitorWatch
from . import monitorSystem
from . import monitorLvgl
from . import monitorImage
from . import monitorEvm
api_v1 = Blueprint('api_v1', __name__)
api = Api(api_v1)
api.add_resource(area.AreaResource, '/area/<string:uuid>')
api.add_resource(area.AreaResourceList, '/area')
api.add_resource(app.AppResource, '/app/<string:uuid>')
api.add_resource(app.AppResourceList, '/app')
api.add_resource(package.PackageResource, '/package/<string:uuid>')
api.add_resource(package.PackageResourceList, '/package')
api.add_resource(user.UserResource, '/user/<string:uuid>')
api.add_resource(user.UserResourceList, '/user')
api.add_resource(login.LoginResource, '/login/<string:uuid>')
api.add_resource(login.LoginResourceList, '/login')
api.add_resource(device.DeviceResource, '/device/<string:uuid>')
api.add_resource(device.DeviceResourceList, '/device')
api.add_resource(annex.AnnexResource, '/annex/<string:uuid>')
api.add_resource(annex.AnnexResourceList, '/annex')
api.add_resource(file.FileInit, "/file-manager/initialize")
api.add_resource(file.FileContent, "/file-manager/content")
api.add_resource(file.FileDisk, "/file-manager/disk")
api.add_resource(file.FileTree, "/file-manager/tree")
api.add_resource(file.FileDownload, "/file-manager/download")
api.add_resource(file.FilePrview, "/file-manager/preview")
api.add_resource(monitorWatch.MonitorWatchResource, '/monitorWatch/<string:uuid>')
api.add_resource(monitorWatch.MonitorWatchResourceList, '/monitorWatch')
api.add_resource(monitorSystem.MonitorSystemResource, '/monitorSystem/<string:uuid>')
api.add_resource(monitorSystem.MonitorSystemResourceList, '/monitorSystem')
api.add_resource(monitorLvgl.MonitorLvglResource, '/monitorLvgl/<string:uuid>')
api.add_resource(monitorLvgl.MonitorLvglResourceList, '/monitorLvgl')
api.add_resource(monitorImage.MonitorImageResource, '/monitorImage/<string:uuid>')
api.add_resource(monitorImage.MonitorImageResourceList, '/monitorImage')
api.add_resource(monitorEvm.MonitorEvmResource, '/monitorEvm/<string:uuid>')
api.add_resource(monitorEvm.MonitorEvmResourceList, '/monitorEvm')
''' # -*- coding: utf-8 -*-
Author: your name
Date: 2021-07-15 03:22:19
LastEditTime: 2021-07-15 10:20:28
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath: \evm-store\tools\build_out\views\__init__.py
'''
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from flask import Blueprint from flask import Blueprint
from flask_restful import Api from flask_restful import Api
...@@ -18,7 +9,6 @@ from . import user ...@@ -18,7 +9,6 @@ from . import user
from . import login from . import login
from . import device from . import device
from . import annex from . import annex
from . import file
from . import monitorWatch from . import monitorWatch
from . import monitorSystem from . import monitorSystem
from . import monitorLvgl from . import monitorLvgl
...@@ -51,13 +41,6 @@ api.add_resource(device.DeviceResourceList, '/device') ...@@ -51,13 +41,6 @@ api.add_resource(device.DeviceResourceList, '/device')
api.add_resource(annex.AnnexResource, '/annex/<string:uuid>') api.add_resource(annex.AnnexResource, '/annex/<string:uuid>')
api.add_resource(annex.AnnexResourceList, '/annex') api.add_resource(annex.AnnexResourceList, '/annex')
api.add_resource(file.FileInit, "/file-manager/initialize")
api.add_resource(file.FileContent, "/file-manager/content")
api.add_resource(file.FileDisk, "/file-manager/disk")
api.add_resource(file.FileTree, "/file-manager/tree")
api.add_resource(file.FileDownload, "/file-manager/download")
api.add_resource(file.FilePrview, "/file-manager/preview")
api.add_resource(monitorWatch.MonitorWatchResource, '/monitorWatch/<string:uuid>') api.add_resource(monitorWatch.MonitorWatchResource, '/monitorWatch/<string:uuid>')
api.add_resource(monitorWatch.MonitorWatchResourceList, '/monitorWatch') api.add_resource(monitorWatch.MonitorWatchResourceList, '/monitorWatch')
......
from flask import current_app, jsonify, request
from flask_restful import Resource
from flask_restful.reqparse import RequestParser
from flask_jwt_extended import ( jwt_required, get_jwt_identity )
from application.signal_manager import signalManager
from models.package import getListPackageSchema, getListPackagesSchema, getPackageSchema
from webcreator.log import logger
from webcreator.response import ResponseCode, response_result
class PackageResourceList(Resource):
def __init__(self):
pass
# 特殊参数,即不是从json获取参数的接口,可以将这个注释打开
# self.parser = RequestParser()
def get(self):
# 特殊参数,即不是从json获取参数的接口,可以将这个注释打开
# self.parser.add_argument("page", type=int, location="args", default=1)
# self.parser.add_argument("pageSize", type=int, location="args", default=15)
# args = self.parser.parse_args()
try:
json_payload = request.json
logger.warn(json_payload)
data = getListPackageSchema.load(json_payload)
result = signalManager.actionGetListPackage.emit(data)
json_dumps = getListPackageSchema.dump(result)
if result[0]:
json_dumps = getListPackagesSchema.dump(result[1])
logger.warn(json_dumps)
return response_result(ResponseCode.OK, data=json_dumps, count=result[2])
return response_result(ResponseCode.REQUEST_ERROR)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.DB_ERROR)
class PackageResource(Resource):
def __init__(self):
pass
# 特殊参数,即不是从json获取参数的接口,可以将这个注释打开
# self.parser = RequestParser()
@jwt_required(locations=["headers"])
def get(self, uuid):
# 特殊参数,即不是从json获取参数的接口,可以将这个注释打开
# self.parser.add_argument("page", type=int, location="args", default=1)
# self.parser.add_argument("pageSize", type=int, location="args", default=15)
# args = self.parser.parse_args()
try:
json_payload = request.json
print("========>", uuid, json_payload)
data = getPackageSchema.load(json_payload)
result = signalManager.actionGetPackage.emit(uuid, data)
if result[0]:
json_dumps = getPackageSchema.dump(result[1])
return response_result(ResponseCode.OK, data=json_dumps)
return response_result(ResponseCode.NO_DATA)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.DB_ERROR)
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from flask import current_app, jsonify, request from flask import current_app, jsonify, request
from flask_restful import Resource from flask_restful import Resource
from flask_restful.reqparse import RequestParser from flask_restful.reqparse import RequestParser
...@@ -23,16 +26,16 @@ class PackageResourceList(Resource): ...@@ -23,16 +26,16 @@ class PackageResourceList(Resource):
json_payload = request.json json_payload = request.json
logger.warn(json_payload) logger.warn(json_payload)
data = getListPackageSchema.load(json_payload) data = getListPackageSchema.load(json_payload)
result = signalManager.actionGetListPackage.emit(data) result, message = signalManager.actionGetListPackage.emit(data)
json_dumps = getListPackageSchema.dump(result) json_dumps = getListPackageSchema.dump(result)
if result[0]: if result:
json_dumps = getListPackagesSchema.dump(result[1]) json_dumps = getListPackagesSchema.dump(result.items)
logger.warn(json_dumps) logger.warn(json_dumps)
return response_result(ResponseCode.OK, data=json_dumps, count=result[2]) return response_result(message, data=json_dumps, count=result.total)
return response_result(ResponseCode.REQUEST_ERROR) return response_result(message)
except Exception as e: except Exception as e:
current_app.logger.error(e) current_app.logger.error(e)
return response_result(ResponseCode.DB_ERROR) return response_result(ResponseCode.HTTP_SERVER_ERROR)
class PackageResource(Resource): class PackageResource(Resource):
def __init__(self): def __init__(self):
...@@ -51,11 +54,11 @@ class PackageResource(Resource): ...@@ -51,11 +54,11 @@ class PackageResource(Resource):
json_payload = request.json json_payload = request.json
print("========>", uuid, json_payload) print("========>", uuid, json_payload)
data = getPackageSchema.load(json_payload) data = getPackageSchema.load(json_payload)
result = signalManager.actionGetPackage.emit(uuid, data) result, message = signalManager.actionGetPackage.emit(uuid, data)
if result[0]: if result:
json_dumps = getPackageSchema.dump(result[1]) json_dumps = getPackageSchema.dump(result)
return response_result(ResponseCode.OK, data=json_dumps) return response_result(message, data=json_dumps)
return response_result(ResponseCode.NO_DATA) return response_result(message)
except Exception as e: except Exception as e:
current_app.logger.error(e) current_app.logger.error(e)
return response_result(ResponseCode.DB_ERROR) return response_result(ResponseCode.HTTP_SERVER_ERROR)
...@@ -592,7 +592,7 @@ ...@@ -592,7 +592,7 @@
{ {
"name": "algorithm", "name": "algorithm",
"dataType": "String", "dataType": "String",
"default": "zlib", "default": "'zlib'",
"length": 50, "length": 50,
"required": true, "required": true,
"toJson": true "toJson": true
...@@ -600,7 +600,7 @@ ...@@ -600,7 +600,7 @@
{ {
"name": "file_path", "name": "file_path",
"dataType": "String", "dataType": "String",
"default": null, "default": "''",
"length": 200, "length": 200,
"required": true, "required": true,
"toJson": true "toJson": true
...@@ -608,14 +608,14 @@ ...@@ -608,14 +608,14 @@
{ {
"name": "source", "name": "source",
"dataType": "Integer", "dataType": "Integer",
"default": null, "default": 0,
"required": true, "required": true,
"toJson": true "toJson": true
}, },
{ {
"name": "user_agent", "name": "user_agent",
"dataType": "String", "dataType": "String",
"default": null, "default": "''",
"length": 200, "length": 200,
"required": true, "required": true,
"toJson": true "toJson": true
...@@ -625,13 +625,13 @@ ...@@ -625,13 +625,13 @@
"dataType": "String", "dataType": "String",
"length": 200, "length": 200,
"required": true, "required": true,
"default": null, "default": "''",
"toJson": true "toJson": true
}, },
{ {
"name": "ip", "name": "ip",
"dataType": "String", "dataType": "String",
"default": null, "default": "'127.0.0.1'",
"length": 128, "length": 128,
"required": true, "required": true,
"toJson": true "toJson": true
...@@ -639,7 +639,7 @@ ...@@ -639,7 +639,7 @@
{ {
"name": "geo_location", "name": "geo_location",
"dataType": "String", "dataType": "String",
"default": null, "default": "''",
"length": 200, "length": 200,
"required": true, "required": true,
"toJson": true "toJson": true
...@@ -649,7 +649,7 @@ ...@@ -649,7 +649,7 @@
"dataType": "String", "dataType": "String",
"length": 50, "length": 50,
"required": true, "required": true,
"default": null, "default": "''",
"toJson": true "toJson": true
} }
] ]
......
...@@ -102,8 +102,9 @@ def copyFiles(src_dir, dst_dir): ...@@ -102,8 +102,9 @@ def copyFiles(src_dir, dst_dir):
if not os.path.exists(save_path): if not os.path.exists(save_path):
os.makedirs(save_path) os.makedirs(save_path)
shutil.copy(src_file, save_path) # 目标文件是否存在?
shutil.copy2(src_file, save_path)
log.logger.info('copy files finished!') log.logger.info('copy files finished!')
def handleModuleConfig(config): def handleModuleConfig(config):
......
[2021-07-14 18:14:14,257][ INFO][in gen_code.py -> copyFiles line:107] copy files finished! [2021-07-14 18:14:14,257][ INFO][in gen_code.py -> copyFiles line:107] copy files finished!
[2021-07-15 10:18:49,740][ INFO][in gen_code.py -> copyFiles line:107] copy files finished! [2021-07-15 10:18:49,740][ INFO][in gen_code.py -> copyFiles line:107] copy files finished!
[2021-07-15 10:18:49,941][ ERROR][in gen_code.py -> handleModules line:132] 文件:%s 不存在 [2021-07-15 10:18:49,941][ ERROR][in gen_code.py -> handleModules line:132] 文件:%s 不存在
[2021-07-15 16:53:58,622][ INFO][in gen_code.py -> copyFiles line:108] copy files finished!
[2021-07-15 16:53:58,778][ ERROR][in gen_code.py -> handleModules line:133] 文件:%s 不存在
[2021-07-15 16:56:02,228][ INFO][in gen_code.py -> copyFiles line:108] copy files finished!
[2021-07-15 16:56:02,383][ ERROR][in gen_code.py -> handleModules line:133] 文件:%s 不存在
[2021-07-15 17:08:04,652][ INFO][in gen_code.py -> copyFiles line:108] copy files finished!
[2021-07-15 17:08:04,829][ ERROR][in gen_code.py -> handleModules line:133] 文件:%s 不存在
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment