pyocf: destroy ocf_volume_t after attaching cache device
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
This commit is contained in:
parent
2976c77c4c
commit
eb3439666d
@ -299,7 +299,7 @@ class Cache:
|
|||||||
raise OcfError("Failed to detach failover cache device", c.results["error"])
|
raise OcfError("Failed to detach failover cache device", c.results["error"])
|
||||||
|
|
||||||
def standby_activate(self, device, open_cores=True):
|
def standby_activate(self, device, open_cores=True):
|
||||||
device_cfg = self.generate_device_config(device)
|
device_cfg = self.alloc_device_config(device)
|
||||||
|
|
||||||
activate_cfg = CacheStandbyActivateConfig(_device=device_cfg, _open_cores=open_cores,)
|
activate_cfg = CacheStandbyActivateConfig(_device=device_cfg, _open_cores=open_cores,)
|
||||||
|
|
||||||
@ -311,6 +311,8 @@ class Cache:
|
|||||||
c.wait()
|
c.wait()
|
||||||
self.write_unlock()
|
self.write_unlock()
|
||||||
|
|
||||||
|
self.free_device_config(device_cfg)
|
||||||
|
|
||||||
if c.results["error"]:
|
if c.results["error"]:
|
||||||
raise OcfError("Failed to activate standby cache", c.results["error"])
|
raise OcfError("Failed to activate standby cache", c.results["error"])
|
||||||
|
|
||||||
@ -499,7 +501,7 @@ class Cache:
|
|||||||
if status:
|
if status:
|
||||||
raise OcfError("Error adding partition to cache", status)
|
raise OcfError("Error adding partition to cache", status)
|
||||||
|
|
||||||
def generate_device_config(self, device, perform_test=True):
|
def alloc_device_config(self, device, perform_test=True):
|
||||||
uuid = Uuid(
|
uuid = Uuid(
|
||||||
_data=cast(create_string_buffer(device.uuid.encode("ascii")), c_char_p),
|
_data=cast(create_string_buffer(device.uuid.encode("ascii")), c_char_p),
|
||||||
_size=len(device.uuid) + 1,
|
_size=len(device.uuid) + 1,
|
||||||
@ -523,13 +525,16 @@ class Cache:
|
|||||||
|
|
||||||
return device_config
|
return device_config
|
||||||
|
|
||||||
|
def free_device_config(self, cfg):
|
||||||
|
lib = OcfLib.getInstance().ocf_volume_destroy(cfg._volume)
|
||||||
|
|
||||||
def attach_device(
|
def attach_device(
|
||||||
self, device, force=False, perform_test=False, cache_line_size=None, open_cores=False,
|
self, device, force=False, perform_test=False, cache_line_size=None, open_cores=False,
|
||||||
):
|
):
|
||||||
self.device = device
|
self.device = device
|
||||||
self.device_name = device.uuid
|
self.device_name = device.uuid
|
||||||
|
|
||||||
device_config = self.generate_device_config(device, perform_test=perform_test)
|
device_config = self.alloc_device_config(device, perform_test=perform_test)
|
||||||
|
|
||||||
attach_cfg = CacheAttachConfig(
|
attach_cfg = CacheAttachConfig(
|
||||||
_device=device_config,
|
_device=device_config,
|
||||||
@ -548,6 +553,8 @@ class Cache:
|
|||||||
|
|
||||||
self.write_unlock()
|
self.write_unlock()
|
||||||
|
|
||||||
|
self.free_device_config(device_config)
|
||||||
|
|
||||||
if c.results["error"]:
|
if c.results["error"]:
|
||||||
raise OcfError(
|
raise OcfError(
|
||||||
f"Attaching cache device failed", c.results["error"],
|
f"Attaching cache device failed", c.results["error"],
|
||||||
@ -557,7 +564,7 @@ class Cache:
|
|||||||
self.device = device
|
self.device = device
|
||||||
self.device_name = device.uuid
|
self.device_name = device.uuid
|
||||||
|
|
||||||
device_config = self.generate_device_config(device, perform_test=False)
|
device_config = self.alloc_device_config(device, perform_test=False)
|
||||||
|
|
||||||
attach_cfg = CacheAttachConfig(
|
attach_cfg = CacheAttachConfig(
|
||||||
_device=device_config,
|
_device=device_config,
|
||||||
@ -576,6 +583,8 @@ class Cache:
|
|||||||
|
|
||||||
self.write_unlock()
|
self.write_unlock()
|
||||||
|
|
||||||
|
self.free_device_config(device_config)
|
||||||
|
|
||||||
if c.results["error"]:
|
if c.results["error"]:
|
||||||
raise OcfError(
|
raise OcfError(
|
||||||
f"Attaching to standby cache failed", c.results["error"],
|
f"Attaching to standby cache failed", c.results["error"],
|
||||||
@ -585,7 +594,7 @@ class Cache:
|
|||||||
self.device = device
|
self.device = device
|
||||||
self.device_name = device.uuid
|
self.device_name = device.uuid
|
||||||
|
|
||||||
device_config = self.generate_device_config(device, perform_test=perform_test)
|
device_config = self.alloc_device_config(device, perform_test=perform_test)
|
||||||
|
|
||||||
attach_cfg = CacheAttachConfig(
|
attach_cfg = CacheAttachConfig(
|
||||||
_device=device_config,
|
_device=device_config,
|
||||||
@ -601,6 +610,8 @@ class Cache:
|
|||||||
c.wait()
|
c.wait()
|
||||||
self.write_unlock()
|
self.write_unlock()
|
||||||
|
|
||||||
|
self.free_device_config(device_config)
|
||||||
|
|
||||||
if c.results["error"]:
|
if c.results["error"]:
|
||||||
raise OcfError("Loading standby cache device failed", c.results["error"])
|
raise OcfError("Loading standby cache device failed", c.results["error"])
|
||||||
|
|
||||||
@ -622,7 +633,7 @@ class Cache:
|
|||||||
self.device = device
|
self.device = device
|
||||||
self.device_name = device.uuid
|
self.device_name = device.uuid
|
||||||
|
|
||||||
device_config = self.generate_device_config(device)
|
device_config = self.alloc_device_config(device)
|
||||||
|
|
||||||
attach_cfg = CacheAttachConfig(
|
attach_cfg = CacheAttachConfig(
|
||||||
_device=device_config,
|
_device=device_config,
|
||||||
@ -638,6 +649,8 @@ class Cache:
|
|||||||
c.wait()
|
c.wait()
|
||||||
self.write_unlock()
|
self.write_unlock()
|
||||||
|
|
||||||
|
self.free_device_config(device_config)
|
||||||
|
|
||||||
if c.results["error"]:
|
if c.results["error"]:
|
||||||
raise OcfError("Loading cache device failed", c.results["error"])
|
raise OcfError("Loading cache device failed", c.results["error"])
|
||||||
|
|
||||||
@ -977,3 +990,4 @@ lib.ocf_mngt_cache_io_classes_configure.restype = c_int
|
|||||||
lib.ocf_mngt_cache_io_classes_configure.argtypes = [c_void_p, c_void_p]
|
lib.ocf_mngt_cache_io_classes_configure.argtypes = [c_void_p, c_void_p]
|
||||||
lib.ocf_volume_create.restype = c_int
|
lib.ocf_volume_create.restype = c_int
|
||||||
lib.ocf_volume_create.argtypes = [c_void_p, c_void_p, c_void_p]
|
lib.ocf_volume_create.argtypes = [c_void_p, c_void_p, c_void_p]
|
||||||
|
lib.ocf_volume_destroy.argtypes = [c_void_p]
|
||||||
|
Loading…
Reference in New Issue
Block a user