X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_common%2Ffslocal.py;h=73065595d9967b4d4a82babbbf37bded140a7ad0;hb=refs%2Fchanges%2F28%2F7128%2F1;hp=bd243f025ee75df2080848df86d6ea757cb22585;hpb=d4378aa85f33bffbf3ef303dbd66513562cbe8f2;p=osm%2Fcommon.git diff --git a/osm_common/fslocal.py b/osm_common/fslocal.py index bd243f0..7306559 100644 --- a/osm_common/fslocal.py +++ b/osm_common/fslocal.py @@ -60,6 +60,8 @@ class FsLocal(FsBase): """ try: os.mkdir(self.path + folder) + except FileExistsError: # make it idempotent + pass except Exception as e: raise FsException(str(e), http_code=HTTPStatus.INTERNAL_SERVER_ERROR) @@ -164,12 +166,14 @@ class FsLocal(FsBase): :param ignore_non_exist: not raise exception if storage does not exist :return: None """ - - if isinstance(storage, str): - f = self.path + storage - else: - f = self.path + "/".join(storage) - if os.path.exists(f): - rmtree(f) - elif not ignore_non_exist: - raise FsException("File {} does not exist".format(storage), http_code=HTTPStatus.NOT_FOUND) + try: + if isinstance(storage, str): + f = self.path + storage + else: + f = self.path + "/".join(storage) + if os.path.exists(f): + rmtree(f) + elif not ignore_non_exist: + 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)