Exemplo n.º 1
0
def create_snapshot_jobs(mmjobset=None,
                         interval=256,
                         input_platefile=None,
                         output_platefile=None,
                         lowest_snapshot_level=3,
                         activate=True):
    if not input_platefile:
        raise Exception("'input_platefile' argument required.")
    if not mmjobset:
        mmjobset = JobSet.objects.filter(name__contains="MipMap").latest('pk')
    snapshot_jobset = JobSet()
    snapshot_jobset.name = "mosaic snapshots (js%d)" % mmjobset.id
    snapshot_jobset.command = "snapshot"
    snapshot_jobset.save()

    i = 0
    transaction_range_start = None
    jobs_for_dependency = []
    endjob = None
    for mmjob in mmjobset.jobs.all().order_by('transaction_id'):
        i += 1
        jobs_for_dependency.append(mmjob)
        if not transaction_range_start:
            transaction_range_start = mmjob.transaction_id
        if i % interval == 0:
            transaction_range = (transaction_range_start, mmjob.transaction_id)
            startjob, endjob = _build_snapshot_start_end(
                transaction_range, jobs_for_dependency, snapshot_jobset,
                endjob, input_platefile, output_platefile)
            startjob.context['lowest_snapshot_level'] = lowest_snapshot_level
            startjob.save(
            )  # StartSnapshot JobCommand needs access to this value

            #clear transaction range and jobs for dependency list
            transaction_range_start = mmjob.transaction_id + 1  # Set the start of the next snapshot
            jobs_for_dependency = []

    else:  # after the last iteration, start a snapshot with whatever's left.
        if jobs_for_dependency:
            transaction_range = (transaction_range_start, mmjob.transaction_id)
            startjob, endjob = _build_snapshot_start_end(
                transaction_range, jobs_for_dependency, snapshot_jobset,
                endjob, input_platefile, output_platefile)
            startjob.context['lowest_snapshot_level'] = lowest_snapshot_level
            startjob.save()

    print "Setting priority to 1 and " + ("activating."
                                          if activate else "NOT activating.")
    snapshot_jobset.priority = 1
    snapshot_jobset.active = activate
    snapshot_jobset.save()
    return snapshot_jobset
Exemplo n.º 2
0
def make_jobset(commandfile_name):
    commandfile = open(commandfile_name, 'r')
    jobset_name = commandfile.next()
    print "Creating JobSet."
    jobset = JobSet()
    jobset.name = jobset_name
    jobset.command = options.command
    jobset.priority = options.priority
    jobset.save()
    make_jobs(jobset, commandfile)
    print "JobSet %d created." % jobset.id
    if options.activate:
        print "Activating!"
        jobset.active = True
        jobset.save()
    else:
        print "Not activated."
Exemplo n.º 3
0
def make_jobset(commandfile_name):
    commandfile = open(commandfile_name, 'r')
    jobset_name = commandfile.next()
    print "Creating JobSet."
    jobset = JobSet()
    jobset.name = jobset_name
    jobset.command = options.command
    jobset.priority = options.priority
    jobset.save()
    make_jobs(jobset, commandfile)
    print "JobSet %d created." % jobset.id
    if options.activate:
        print "Activating!"
        jobset.active = True
        jobset.save()
    else:
        print "Not activated."
Exemplo n.º 4
0
def create_snapshot_jobs(mmjobset=None, interval=256, input_platefile=None, output_platefile=None, lowest_snapshot_level=3, activate=True):
    if not input_platefile:
        raise Exception("'input_platefile' argument required.")
    if not mmjobset:
        mmjobset = JobSet.objects.filter(name__contains="MipMap").latest('pk')
    snapshot_jobset = JobSet()
    snapshot_jobset.name = "mosaic snapshots (js%d)" % mmjobset.id
    snapshot_jobset.command = "snapshot"
    snapshot_jobset.save()

    i = 0
    transaction_range_start = None
    jobs_for_dependency = []
    endjob = None
    for mmjob in mmjobset.jobs.all().order_by('transaction_id'):
        i += 1
        jobs_for_dependency.append(mmjob)
        if not transaction_range_start:
            transaction_range_start = mmjob.transaction_id        
        if i % interval == 0:
            transaction_range = (transaction_range_start, mmjob.transaction_id)
            startjob, endjob = _build_snapshot_start_end(transaction_range, jobs_for_dependency, snapshot_jobset, endjob, input_platefile, output_platefile)
            startjob.context['lowest_snapshot_level'] = lowest_snapshot_level; startjob.save() # StartSnapshot JobCommand needs access to this value

            #clear transaction range and jobs for dependency list
            transaction_range_start = mmjob.transaction_id + 1  # Set the start of the next snapshot
            jobs_for_dependency = []

    else: # after the last iteration, start a snapshot with whatever's left.
        if jobs_for_dependency:
            transaction_range = (transaction_range_start, mmjob.transaction_id)
            startjob, endjob = _build_snapshot_start_end(transaction_range, jobs_for_dependency, snapshot_jobset, endjob, input_platefile, output_platefile)
            startjob.context['lowest_snapshot_level'] = lowest_snapshot_level; startjob.save()
    
    print "Setting priority to 1 and " + ("activating." if activate else "NOT activating.")
    snapshot_jobset.priority = 1
    snapshot_jobset.active = activate
    snapshot_jobset.save()
    return snapshot_jobset