def METHOD_NAME(self, ceph_monstore_factory):
    """
    Test maintenance pod for Mons
    """
    mon_id = random.choice(["a", "b", "c"])
    label = f"mon={mon_id},ceph.rook.io/do-not-reconcile=true"
    original_deployment = f"rook-ceph-mon-{mon_id}"
    # enable the debug mode for osd
    Mot_obj = ceph_monstore_factory
    Mot_obj.debug_start(deployment_name=original_deployment)
    # make sure original deployment is scaled down
    # make sure the new debug pod is brought up and running successfully
    mon_deployments = get_mon_deployments()
    for deployment in mon_deployments:
        if deployment.name == original_deployment and deployment.replicas != 0:
            raise Exception(
                f"Original deployment {original_deployment} is not scaled down!"
            )
    debug_deployment = get_deployments_having_label(
        label=label, namespace=config.ENV_DATA["cluster_namespace"]
    )
    if len(debug_deployment) == 0:
        assert False, "Debug deployment is not up!"
    wait_for_pods_to_be_running(pod_names=[debug_deployment[0].pods[0].name])
    logger.info("Verified debug deployment is up & running!")
    # Run any MonstoreTool operations
    time.sleep(5)
    monmap = Mot_obj.run_mot_get_monmap(original_deployment)
    logger.info(f"Monmap for Mon-a: {monmap}")
    # restart the operator and see if the osd is being reconciled
    operator_pods = get_operator_pods()
    for pod in operator_pods:
        pod.delete()
    new_operator_pod = get_pods_having_label(
        label="app=rook-ceph-operator",
        namespace=config.ENV_DATA["cluster_namespace"],
    )[0]
    wait_for_pods_to_be_running(pod_names=[new_operator_pod["metadata"]["name"]])
    time.sleep(5)  # wait a few second
    mon_deployments = get_mon_deployments()
    for deployment in mon_deployments:
        if deployment.name == original_deployment and deployment.replicas != 0:
            raise Exception(
                f"Original deployment {original_deployment} is scaled up after operator restarts!!"
            )
    logger.info(
        "Operator skipped reconciling original mon deployment upon operator restart!"
    )
    # stop the debug
    Mot_obj.debug_stop(original_deployment)
    # make sure the original deployment is scaled up and debug pod is removed
    debug_deployment = get_deployments_having_label(
        label=label, namespace=config.ENV_DATA["cluster_namespace"]
    )
    if len(debug_deployment) != 0:
        assert False, "Debug deployment is still not down!"
    mon_deployments = get_mon_deployments()
    for deployment in mon_deployments:
        if deployment.name == original_deployment and deployment.replicas != 1:
            raise Exception(
                f"Original deployment {original_deployment} isn't scaled up after debug mode is disabled!!"
            )
        wait_for_pods_to_be_running(pod_names=[deployment.pods[0].name])
    logger.info("Original mon deployment is scaled up now!")
    ceph_health_check(namespace=config.ENV_DATA["cluster_namespace"], tries=10)