def sling_extract_job(sling_extract_version,
                      slc_id,
                      url_type,
                      download_url,
                      queue,
                      archive_file,
                      prod_date,
                      priority,
                      aoi,
                      wuid=None,
                      job_num=None):
    """Map function for spyddder-man extract job."""

    # set job type and disk space reqs
    #job_type = "job-spyddder-extract:{}".format(spyddder_extract_version)
    logger.info("\nsling_extract_job for :%s" % slc_id)
    job_type = "job-spyddder-sling-extract-{}:{}".format(
        url_type, sling_extract_version)

    # resolve hysds job
    params = {"slc_id": slc_id}

    job = resolve_hysds_job(job_type,
                            queue,
                            priority=priority,
                            params=params,
                            job_name="%s-%s" % (job_type, slc_id))

    # add workflow info
    #if wuid is not None and job_num is not None:
    job['payload']['_sciflo_wuid'] = wuid
    job['payload']['_sciflo_job_num'] = job_num
    #print("job: {}".format(json.dumps(job, indent=2)))

    return submit_hysds_job(job)
def extract_job(spyddder_extract_version,
                queue,
                localize_url,
                file,
                prod_name,
                prod_date,
                priority,
                aoi,
                wuid=None,
                job_num=None):
    """Map function for spyddder-man extract job."""
    '''
    if wuid is None or job_num is None:
        raise RuntimeError("Need to specify workunit id and job num.")
    '''

    # set job type and disk space reqs
    job_type = "job-spyddder-extract:{}".format(spyddder_extract_version)
    #job_type = "job-spyddder-sling-extract:{}".format(spyddder_extract_version)

    # resolve hysds job
    params = {
        "localize_url": localize_url,
        "file": file,
        "prod_name": prod_name,
        "prod_date": prod_date,
        "aoi": aoi,
    }

    job = resolve_hysds_job(job_type,
                            queue,
                            priority=priority,
                            params=params,
                            job_name="%s-%s" % (job_type, prod_name))

    # save to archive_filename if it doesn't match url basenamea
    '''
    localize_urls =  [
      {
        "local_path": file, 
        "url": localize_url
      }
    ]
    job['payload']['localize_urls'] = localize_urls
    '''

    if os.path.basename(localize_url) != file:
        job['payload']['localize_urls'][0]['local_path'] = file

    # add workflow info
    #if wuid is not None and job_num is not None:
    job['payload']['_sciflo_wuid'] = wuid
    job['payload']['_sciflo_job_num'] = job_num
    #print("job: {}".format(json.dumps(job, indent=2)))

    return submit_hysds_job(job)
コード例 #3
0
def submit_job(job_name, job_params):
    # submit mozart job
    try:
        job_json = resolve_hysds_job(job_params["type"],
                                     job_params["queue"],
                                     job_params["priority"],
                                     job_params["tags"],
                                     job_params["params"],
                                     job_name=job_name,
                                     payload_hash=job_params["payload_hash"],
                                     enable_dedup=job_params["enable_dedup"])
        ident = submit_hysds_job(job_json)
        print("JOB ID: {}".format(ident))

    except Exception as e:
        raise Exception("Failed to submit HySDS Job:\nERROR: {0}".format(e))