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 <david.garcia@canonical.com>
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 @@
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 @@
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 @@
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 @@
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()