<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def grid_reload_from_name(job_name):
 """Reload all running or pending jobs of Grid'5000 with a given name. By default all the sites will be searched for jobs with the name ``job_name``. Using EnOSlib there can be only one job per site with name ``job_name``. Note that it honors the ``exluded_sites`` attribute of the client so the scan can be reduced. Args: job_name (str):
 the job name Returns: The list of the python-grid5000 jobs retrieved. Raises: EnosG5kDuplicateJobsError: if there's several jobs with the same name on a site. """

    gk = get_api_client()
    sites = get_all_sites_obj()
    jobs = []
    for site in [s for s in sites if s.uid not in gk.excluded_site]:
        logger.info("Reloading %s from %s" % (job_name, site.uid))
        _jobs = site.jobs.list(name=job_name,
                               state="waiting,launching,running")
        if len(_jobs) == 1:
            logger.info("Reloading %s from %s" % (_jobs[0].uid, site.uid))
            jobs.append(_jobs[0])
        elif len(_jobs) > 1:
            raise EnosG5kDuplicateJobsError(site, job_name)
    return jobs