X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_common%2Ffsbase.py;h=24eb994a4238a52eea846cdb6915206435ec2b40;hb=refs%2Fchanges%2F75%2F8875%2F4;hp=6f82cd31170d27a326913fafc4c219e7e05fcae7;hpb=87858cab98b3b169fc891fd2e0a0ba10f8b46127;p=osm%2Fcommon.git diff --git a/osm_common/fsbase.py b/osm_common/fsbase.py index 6f82cd3..24eb994 100644 --- a/osm_common/fsbase.py +++ b/osm_common/fsbase.py @@ -16,7 +16,10 @@ # limitations under the License. +import logging from http import HTTPStatus +from osm_common.common_utils import FakeLock +from threading import Lock __author__ = "Alfonso Tierno " @@ -28,8 +31,24 @@ class FsException(Exception): class FsBase(object): - def __init__(self): - pass + def __init__(self, logger_name='fs', lock=False): + """ + Constructor of FsBase + :param logger_name: logging name + :param lock: Used to protect simultaneous access to the same instance class by several threads: + False, None: Do not protect, this object will only be accessed by one thread + True: This object needs to be protected by several threads accessing. + Lock object. Use thi Lock for the threads access protection + """ + self.logger = logging.getLogger(logger_name) + if not lock: + self.lock = FakeLock() + elif lock is True: + self.lock = Lock() + elif isinstance(lock, Lock): + self.lock = lock + else: + raise ValueError("lock parameter must be a Lock class or boolean") def get_params(self): return {} @@ -43,6 +62,12 @@ class FsBase(object): def mkdir(self, folder): raise FsException("Method 'mkdir' not implemented") + def dir_rename(self, src, dst): + raise FsException("Method 'dir_rename' not implemented") + + def dir_ls(self, storage): + raise FsException("Method 'dir_ls' not implemented") + def file_exists(self, storage): raise FsException("Method 'file_exists' not implemented") @@ -57,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, from_path=None): + raise FsException("Method 'sync' not implemented")