def METHOD_NAME(name):
    """
    :param name: name of the VM for which to ensure networks and storage pools are running
    """
    ret = {
        "name": name,
        "changes": {},
        "result": True if not __opts__["test"] else None,
        "comment": "",
    }
    try:
        infos = __salt__["virt.vm_info"](name)
        if not infos.get(name):
            ret["result"] = False
            ret["comment"] = "Virtual machine {} does not exist".format(name)
            return ret
        vm_infos = infos.get(name)
        # Ensure all the networks are started
        networks = [
            nic["source"]["network"]
            for nic in vm_infos.get("nics", {}).values()
            if nic["type"] == "network"
        ]
        net_ret = network_running(name="{}_nets".format(name), networks=networks)
        # Ensure all the pools are started
        pools = [
            disk["file"].split("/")[0]
            for disk in vm_infos.get("disks", {}).values()
            if re.match("^[^/:]+/", disk["file"])
        ]
        pool_ret = pool_running(name="{}_pools".format(name), pools=pools)
        failed = any([net_ret["result"] is False, pool_ret["result"] is False])
        ret["result"] = False if failed else net_ret["result"]
        ret["comment"] = "{}, {}".format(net_ret["comment"], pool_ret["comment"])
        ret["changes"] = {"networks": net_ret["changes"], "pools": pool_ret["changes"]}
    except Exception as err:
        ret["result"] = False
        ret["comment"] = str(err)
    return ret