X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=osm_nbi%2Fdescriptor_topics.py;h=19302547c81176d371b9ca1da4391dea7af9b47a;hb=0459bf8fbcdfbbf7c05c5a1c616997fa8571747a;hp=8efde1e1cff3bdeb0a909c2c4ffc1cb545f1386e;hpb=28470dd553e5bcc875979a1e7a9a2096b21239f1;p=osm%2FNBI.git diff --git a/osm_nbi/descriptor_topics.py b/osm_nbi/descriptor_topics.py index 8efde1e..1930254 100644 --- a/osm_nbi/descriptor_topics.py +++ b/osm_nbi/descriptor_topics.py @@ -241,6 +241,7 @@ class DescriptorTopic(BaseTopic): # TODO change to Content-Disposition filename https://tools.ietf.org/html/rfc6266 file_pkg = None error_text = "" + fs_rollback = [] try: if content_range_text: content_range = ( @@ -267,6 +268,7 @@ class DescriptorTopic(BaseTopic): else: self.fs.file_delete(temp_folder, ignore_non_exist=True) self.fs.mkdir(temp_folder) + fs_rollback.append(temp_folder) storage = self.fs.get_params() storage["folder"] = _id @@ -385,6 +387,7 @@ class DescriptorTopic(BaseTopic): current_desc["_admin"]["modified"] = time() self.db.replace(self.topic, _id, current_desc) self.fs.dir_rename(temp_folder, _id) + fs_rollback = [] indata["_id"] = _id self._send_msg("edited", indata) @@ -416,6 +419,8 @@ class DescriptorTopic(BaseTopic): finally: if file_pkg: file_pkg.close() + for file in fs_rollback: + self.fs.file_delete(file, ignore_non_exist=True) def get_file(self, session, _id, path=None, accept_header=None): """