def METHOD_NAME(ceph_cluster, gateway, config, io):
    """Run IO on newly added namespace.
    - discover, connect to a subsystem
    - Run IO
    Args:
        config: initiator config
        gateway: gateway node
        io: io args
        ceph_cluster: Ceph cluster
    """
    LOG.info(io)
    client = get_node_by_id(ceph_cluster, io["node"])
    initiator = Initiator(client)
    initiator.disconnect_all()
    cmd_args = {
        "transport": "tcp",
        "traddr": gateway.node.ip_address,
        "trsvcid": config["listener_port"],
    }
    json_format = {"output-format": "json"}
    # Discover the subsystems
    _disc_cmd = {**cmd_args, **json_format}
    sub_nqns, _ = initiator.discover(**_disc_cmd)
    LOG.debug(sub_nqns)
    for nqn in json.loads(sub_nqns)["records"]:
        if nqn["trsvcid"] == str(config["listener_port"]):
            cmd_args["nqn"] = nqn["subnqn"]
            break
    else:
        raise Exception(f"Subsystem not found -- {cmd_args}")
    # Connect to the subsystem
    LOG.debug(initiator.connect(**cmd_args))
    # List NVMe targets.
    targets, _ = initiator.list(**json_format)
    LOG.debug(targets)
    for target in json.loads(targets)["Devices"]:
        io_args = {
            "device_name": target["DevicePath"],
            "client_node": client,
            "run_time": "10",
            "long_running": True,
            "io_type": io["io_type"],
            "cmd_timeout": "notimeout",
        }
        result = run_fio(**io_args)
        if result == 1:
            raise Exception("FIO failure")