class CreateSnapshotRequests:
- lock = Lock()
- condition = Condition(lock)
-
def __init__(self, handler: Any) -> None:
+ self.lock = Lock()
+ self.condition = Condition(self.lock)
self.handler = handler
self.rados = handler.module.rados
self.log = handler.log
self.queue: List[ImageSpec] = []
self.ioctxs: Dict[Tuple[str, str], Tuple[rados.Ioctx, Set[ImageSpec]]] = {}
- def __del__(self) -> None:
- self.wait_for_pending()
-
def wait_for_pending(self) -> None:
with self.lock:
while self.pending:
self.log.debug("CreateSnapshotRequests.get_mirror_mode: {}/{}/{}".format(
pool_id, namespace, image_id))
- def cb(comp: rados.Completion, mode: int) -> None:
+ def cb(comp: rados.Completion, mode: Optional[int]) -> None:
self.handle_get_mirror_mode(image_spec, image, comp, mode)
try:
image_spec: ImageSpec,
image: rbd.Image,
comp: rados.Completion,
- mode: int) -> None:
+ mode: Optional[int]) -> None:
pool_id, namespace, image_id = image_spec
self.log.debug(
"CreateSnapshotRequests.handle_get_mirror_mode {}/{}/{}: r={} mode={}".format(
pool_id, namespace, image_id, comp.get_return_value(), mode))
- if comp.get_return_value() < 0:
+ if mode is None:
if comp.get_return_value() != -errno.ENOENT:
self.log.error(
"error when getting mirror mode for {}/{}/{}: {}".format(
self.log.debug("CreateSnapshotRequests.get_mirror_info: {}/{}/{}".format(
pool_id, namespace, image_id))
- def cb(comp: rados.Completion, info: Dict[str, Union[str, int]]) -> None:
+ def cb(comp: rados.Completion, info: Optional[Dict[str, Union[str, int]]]) -> None:
self.handle_get_mirror_info(image_spec, image, comp, info)
try:
image_spec: ImageSpec,
image: rbd.Image,
comp: rados.Completion,
- info: Dict[str, Union[str, int]]) -> None:
+ info: Optional[Dict[str, Union[str, int]]]) -> None:
pool_id, namespace, image_id = image_spec
self.log.debug(
"CreateSnapshotRequests.handle_get_mirror_info {}/{}/{}: r={} info={}".format(
pool_id, namespace, image_id, comp.get_return_value(), info))
- if comp.get_return_value() < 0:
+ if info is None:
if comp.get_return_value() != -errno.ENOENT:
self.log.error(
"error when getting mirror info for {}/{}/{}: {}".format(
"CreateSnapshotRequests.create_snapshot for {}/{}/{}".format(
pool_id, namespace, image_id))
- def cb(comp: rados.Completion, snap_id: int) -> None:
+ def cb(comp: rados.Completion, snap_id: Optional[int]) -> None:
self.handle_create_snapshot(image_spec, image, comp, snap_id)
try:
image_spec: ImageSpec,
image: rbd.Image,
comp: rados.Completion,
- snap_id: int) -> None:
+ snap_id: Optional[int]) -> None:
pool_id, namespace, image_id = image_spec
self.log.debug(
"CreateSnapshotRequests.handle_create_snapshot for {}/{}/{}: r={}, snap_id={}".format(
pool_id, namespace, image_id, comp.get_return_value(), snap_id))
- if comp.get_return_value() < 0 and \
- comp.get_return_value() != -errno.ENOENT:
+ if snap_id is None and comp.get_return_value() != -errno.ENOENT:
self.log.error(
"error when creating snapshot for {}/{}/{}: {}".format(
pool_id, namespace, image_id, comp.get_return_value()))
SCHEDULE_OID = "rbd_mirror_snapshot_schedule"
REFRESH_DELAY_SECONDS = 60.0
- lock = Lock()
- condition = Condition(lock)
-
def __init__(self, module: Any) -> None:
+ self.lock = Lock()
+ self.condition = Condition(self.lock)
self.module = module
self.log = module.log
self.last_refresh_images = datetime(1970, 1, 1)