pyocf: add volume::close()

Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
This commit is contained in:
Adam Rutkowski 2022-06-06 18:44:43 +02:00
parent 6c9f558b62
commit bd20236444
2 changed files with 17 additions and 4 deletions

View File

@ -152,8 +152,7 @@ class Volume:
@VolumeOps.CLOSE @VolumeOps.CLOSE
def _close(ref): def _close(ref):
volume = Volume.get_instance(ref) volume = Volume.get_instance(ref)
volume.close() Volume.s_close(volume)
volume.opened = False
@VolumeOps.GET_MAX_IO_SIZE @VolumeOps.GET_MAX_IO_SIZE
def _get_max_io_size(ref): def _get_max_io_size(ref):
@ -193,6 +192,17 @@ class Volume:
return ret return ret
@staticmethod
def s_close(volume):
if not volume.opened:
return
volume.do_close()
volume.opened = False
del Volume._instances_[volume.handle]
volume.handle = None
@classmethod @classmethod
def get_io_ops(cls): def get_io_ops(cls):
return IoOps(_set_data=cls._io_set_data, _get_data=cls._io_get_data) return IoOps(_set_data=cls._io_set_data, _get_data=cls._io_get_data)
@ -261,8 +271,8 @@ class Volume:
def do_open(self): def do_open(self):
return 0 return 0
def close(self): def do_close(self):
self.opened = False pass
def get_length(self): def get_length(self):
raise NotImplementedError raise NotImplementedError

View File

@ -117,6 +117,9 @@ class ExpObjVolume(Volume):
handle = self.get_c_handle() handle = self.get_c_handle()
return Volume.s_open(handle, self) return Volume.s_open(handle, self)
def close(self):
return Volume.s_close(self)
lib = OcfLib.getInstance() lib = OcfLib.getInstance()
lib.ocf_volume_get_max_io_size.argtypes = [c_void_p] lib.ocf_volume_get_max_io_size.argtypes = [c_void_p]