diff --git a/pyengine/engine/controller/meta_manager.py b/pyengine/engine/controller/meta_manager.py index bf0074025f207b521c132cee98826510e1d84c76..83280b123ffd456ea9d1c059c690d99c51c9dd0b 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 0000000000000000000000000000000000000000..f01f5b44a33ef3f3e736bc2a7c22a213f541e85b --- /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 3733a66dc3ea3c00cc296377c00e79f0b275d215..9eb84f6e08f819e340b1849161acbb6555d7c41b 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 1b4875d5c1ed05283cea3a1e9ad30747bc1305b2..73f599c233d1159479d1c3f39f6531041034261b 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 a40a113e087a6d8d616126269707a2778c74bb1e..51e57cfba7edfe04012b77c0f35614791f32f4e0 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):