From: David Garcia Date: Mon, 20 Jan 2020 12:21:06 +0000 (+0100) Subject: Add sync function to FSBase, and implementations to fslocal and fsmongo X-Git-Tag: v7.0.1rc2^0 X-Git-Url: https://osm.etsi.org/gitweb/?a=commitdiff_plain;h=788b9d66ded6d5b8a5fe13befdcdf1aede6bbfc0;p=osm%2Fcommon.git Add sync function to FSBase, and implementations to fslocal and fsmongo The reason behind this change is that FSMongo needs to sync the charm to the local storage in order for libjuju to reach it. Change-Id: Ic5838fd4ab64dd2c3e2cf78c439f33363885dd14 Signed-off-by: David Garcia --- diff --git a/osm_common/fsbase.py b/osm_common/fsbase.py index 208ab87..7e69613 100644 --- a/osm_common/fsbase.py +++ b/osm_common/fsbase.py @@ -82,3 +82,6 @@ class FsBase(object): def file_delete(self, storage, ignore_non_exist=False): raise FsException("Method 'file_delete' not implemented") + + def sync(self): + raise FsException("Method 'sync' not implemented") diff --git a/osm_common/fslocal.py b/osm_common/fslocal.py index 7306559..7794754 100644 --- a/osm_common/fslocal.py +++ b/osm_common/fslocal.py @@ -177,3 +177,6 @@ class FsLocal(FsBase): raise FsException("File {} does not exist".format(storage), http_code=HTTPStatus.NOT_FOUND) except (IOError, PermissionError) as e: raise FsException("File {} cannot be deleted: {}".format(f, e), http_code=HTTPStatus.INTERNAL_SERVER_ERROR) + + def sync(self): + pass # Not needed in fslocal diff --git a/osm_common/fsmongo.py b/osm_common/fsmongo.py index c558d8e..771790f 100644 --- a/osm_common/fsmongo.py +++ b/osm_common/fsmongo.py @@ -208,8 +208,6 @@ class FsMongo(FsBase): os.chmod(file_path, writing_file.metadata["permissions"]) def get_params(self): - self.__update_local_fs() - return {"fs": "mongo", "path": self.path} def fs_connect(self, config): @@ -430,3 +428,9 @@ class FsMongo(FsBase): raise FsException("File {} does not exist".format(storage), http_code=HTTPStatus.NOT_FOUND) except IOError as e: raise FsException("File {} cannot be deleted: {}".format(f, e), http_code=HTTPStatus.INTERNAL_SERVER_ERROR) + + def sync(self): + """ + Sync from FSMongo to local storage + """ + self.__update_local_fs()