def METHOD_NAME(
    self, powernode_machines, timeout=900, wait=True, force=True
):
    """
    Stop PowerNode Machines
    Args:
        powernode_machines (list): PowerNode objects
        timeout (int): time in seconds to wait for node to reach 'not ready' state
        wait (bool): True if need to wait till the restarted node reaches timeout
            - for future use
        force (bool): True for PowerNode ungraceful power off, False for
            graceful PowerNode shutdown - for future use
    Raises:
        UnexpectedBehaviour: If PowerNode machine is still up
    """
    ocpversion = get_ocp_version("-")
    for node in powernode_machines:
        cmd = f"sudo virsh shutdown test-ocp{ocpversion}-{node.name}"
        result = exec_cmd(cmd)
        logger.info(f"Result of shutdown {result}")
        logger.info("Verifying node is down")
        ret = TimeoutSampler(
            timeout=timeout,
            sleep=3,
            func=self.verify_machine_is_down,
            node=node,
        )
        logger.info(ret)
        if not ret.wait_for_func_status(result=True):
            raise UnexpectedBehaviour("Node {node.name} is still Running")