From 627600664509fa07c21bea57770d3793188f4390 Mon Sep 17 00:00:00 2001 From: jinhai Date: Tue, 9 Apr 2019 11:26:12 +0800 Subject: [PATCH] Update for storage Former-commit-id: 42039c22af7c1a141894fa9d214c8b43c7f25847 --- pyengine/engine/controller/meta_manager.py | 5 +++-- pyengine/engine/controller/storage_manager.py | 21 +++++++++++++++++++ .../controller/tests/test_vector_engine.py | 3 +-- pyengine/engine/controller/vector_engine.py | 7 ++++--- pyengine/engine/controller/views.py | 8 +++---- 5 files changed, 33 insertions(+), 11 deletions(-) create mode 100644 pyengine/engine/controller/storage_manager.py diff --git a/pyengine/engine/controller/meta_manager.py b/pyengine/engine/controller/meta_manager.py index bf007402..83280b12 100644 --- a/pyengine/engine/controller/meta_manager.py +++ b/pyengine/engine/controller/meta_manager.py @@ -10,14 +10,15 @@ class MetaManager(object): def AddGroup(self, group_name, dimension): group = GroupTable.query.filter(GroupTable.group_name==group_id).first() if group: - return ErrorCode.ALREADY_EXIST, group_name, group_filenumber + return ErrorCode.ALREADY_EXIST, group_name else: new_group = GroupTable(group_name, dimension) GroupHandler.CreateGroupDirectory(group_id) # add into database db.session.add(new_group) - return ErrorCode.SUCCESS_CODE, group_name, 0 + self.Sync() + return ErrorCode.SUCCESS_CODE, group_name @staticmethod def GetGroup(group_name): diff --git a/pyengine/engine/controller/storage_manager.py b/pyengine/engine/controller/storage_manager.py new file mode 100644 index 00000000..f01f5b44 --- /dev/null +++ b/pyengine/engine/controller/storage_manager.py @@ -0,0 +1,21 @@ +import os, shutil +from engine.settings import DATABASE_DIRECTORY + +class StorageManager(object): + @staticmethod + def CreateGroup(group_name): + path = StorageManager.GetGroupDirectory(group_name) + path = path.strip() + path=path.rstrip("\\") + if not os.path.exists(path): + os.makedirs(path) + + @staticmethod + def GetGroupDirectory(group_name): + return DATABASE_DIRECTORY + '/' + group_name + + def Read(): + pass + + def Write(): + pass diff --git a/pyengine/engine/controller/tests/test_vector_engine.py b/pyengine/engine/controller/tests/test_vector_engine.py index 3733a66d..9eb84f6e 100644 --- a/pyengine/engine/controller/tests/test_vector_engine.py +++ b/pyengine/engine/controller/tests/test_vector_engine.py @@ -27,10 +27,9 @@ class TestVectorEngine: assert file_number == 0 # Add a group - code, group_id, file_number = VectorEngine.AddGroup('test_group', 8) + code, group_id = VectorEngine.AddGroup('test_group', 8) assert code == VectorEngine.SUCCESS_CODE assert group_id == 'test_group' - assert file_number == 0 # Check the group existing code, group_id, file_number = VectorEngine.GetGroup('test_group') diff --git a/pyengine/engine/controller/vector_engine.py b/pyengine/engine/controller/vector_engine.py index 1b4875d5..73f599c2 100644 --- a/pyengine/engine/controller/vector_engine.py +++ b/pyengine/engine/controller/vector_engine.py @@ -11,6 +11,7 @@ from engine.controller.scheduler import Scheduler from engine.ingestion import serialize from engine.controller.meta_manager import MetaManager from engine.controller.error_code import ErrorCode +from engine.controller.storage_manager import StorageManager import sys, os class VectorEngine(object): @@ -24,15 +25,15 @@ class VectorEngine(object): def AddGroup(group_name, dimension): error, group = MetaManager.GetGroup(group_name) if(error == ErrorCode.SUCCESS_CODE): - return ErrorCode.FAULT_CODE, group_name, group.file_number + return ErrorCode.FAULT_CODE, group_name else: + StorageManager.CreateGroup(group_name) new_group = GroupTable(group_name, dimension) - GroupHandler.CreateGroupDirectory(group_name) # add into database db.session.add(new_group) db.session.commit() - return VectorEngine.SUCCESS_CODE, group_name, 0 + return VectorEngine.SUCCESS_CODE, group_name @staticmethod diff --git a/pyengine/engine/controller/views.py b/pyengine/engine/controller/views.py index a40a113e..51e57cfb 100644 --- a/pyengine/engine/controller/views.py +++ b/pyengine/engine/controller/views.py @@ -59,16 +59,16 @@ class Group(Resource): def post(self, group_id): args = self.__parser.parse_args() dimension = args['dimension'] - code, group_id, file_number = VectorEngine.AddGroup(group_id, dimension) - return jsonify({'code': code, 'group': group_id, 'filenumber': file_number}) + code, group_id = VectorEngine.AddGroup(group_id, dimension) + return jsonify({'code': code, 'group': group_id, 'filenumber': 0}) def get(self, group_id): code, group_id, file_number = VectorEngine.GetGroup(group_id) - return jsonify({'code': code, 'group': group_id, 'filenumber': file_number}) + return jsonify({'code': code, 'group': group_id, 'filenumber': 0}) def delete(self, group_id): code, group_id, file_number = VectorEngine.DeleteGroup(group_id) - return jsonify({'code': code, 'group': group_id, 'filenumber': file_number}) + return jsonify({'code': code, 'group': group_id, 'filenumber': 0}) class GroupList(Resource): -- GitLab