#!/usr/bin/env python3

import optparse
from execo import sleep
from execo_g5k import get_current_oar_jobs, get_g5k_sites, oardel

def get_all_jobs():
    return get_current_oar_jobs(get_g5k_sites(), abort_on_error = False)

def show_jobs(jobs):
    for site in get_g5k_sites():
        print("site: %s" % site)
        for job_id in [ job_id for (job_id, job_site) in jobs if job_site == site ]:
            print("  %s" % job_id)

if __name__ == "__main__":

    options_parser = optparse.OptionParser()
    options_parser.add_option(
        "-f", dest = "force", action = "store_true", default = False,
        help = "force: retry as long as all jobs are not deleted")
    (options, args) = options_parser.parse_args()

    jobs = get_all_jobs()
    show_jobs(jobs)

    retry = True
    if len(jobs) > 0:
        while retry and len(jobs) > 0:
            print("deleting...")
            oardel(jobs)
            if options.force:
                sleep(5)
                jobs = get_all_jobs()
            else:
                retry = False
        print("...done")
