py2/h2o_ray.py
def poll_job(self, job_key, timeoutSecs=10, retryDelaySecs=0.5, key=None, **kwargs):
    '''
    Poll a single job from the /Jobs endpoint until it is "status": "DONE" or "CANCELLED" or "FAILED" or we time out.
    '''
    params_dict = {}
    # merge kwargs into params_dict
    h2o_methods.check_params_update_kwargs(params_dict, kwargs, 'poll_job', False)

    start_time = time.time()
    pollCount = 0
    while True:
        result = self.do_json_request('3/Jobs.json/' + job_key, timeout=timeoutSecs, params=params_dict)
        # print 'Job: ', dump_json(result)

        if key:
            frames_result = self.frames(key=key)
            print 'frames_result for key:', key, dump_json(result)

        jobs = result['jobs'][0]
        description = jobs['description']
        dest = jobs['dest']
        dest_name = dest['name']
        msec = jobs['msec']
        status = jobs['status']
        progress = jobs['progress']
        print description, \
            "dest_name:", dest_name, \
            "\tprogress:", "%-10s" % progress, \
            "\tstatus:", "%-12s" % status, \
            "\tmsec:", msec
        
        if status=='DONE' or status=='CANCELLED' or status=='FAILED':
            h2o_sandbox.check_sandbox_for_errors()
            return result

        # what about 'CREATED'
        # FIX! what are the other legal polling statuses that we should check for?

        if not h2o_args.no_timeout and (time.time() - start_time > timeoutSecs):
            h2o_sandbox.check_sandbox_for_errors()
            emsg = "Job:", job_key, "timed out in:", timeoutSecs

            # for debug
            a = h2o.nodes[0].get_cloud()
            print "cloud.json:", dump_json(a)
            raise Exception(emsg)
            print emsg
            return None

        # check every other poll, for now
        if (pollCount % 2) == 0:
            h2o_sandbox.check_sandbox_for_errors()

        time.sleep(retryDelaySecs)
        pollCount += 1
def poll_job(self, job_key, timeoutSecs=10, retryDelaySecs=0.5, key=None, **kwargs):
    '''
    Poll a single job from the /Jobs endpoint until it is "status": "DONE" or "CANCELLED" or "FAILED" or we time out.
    '''
    params_dict = {}
    # merge kwargs into params_dict
    h2o_methods.check_params_update_kwargs(params_dict, kwargs, 'poll_job', False)

    start_time = time.time()
    pollCount = 0
    while True:
        result = self.do_json_request('3/Jobs.json/' + job_key, timeout=timeoutSecs, params=params_dict)
        # print 'Job: ', dump_json(result)

        if key:
            frames_result = self.frames(key=key)
            print 'frames_result for key:', key, dump_json(result)

        jobs = result['jobs'][0]
        description = jobs['description']
        dest = jobs['dest']
        dest_name = dest['name']
        msec = jobs['msec']
        status = jobs['status']
        progress = jobs['progress']
        print description, \
            "dest_name:", dest_name, \
            "\tprogress:", "%-10s" % progress, \
            "\tstatus:", "%-12s" % status, \
            "\tmsec:", msec
        
        if status=='DONE' or status=='CANCELLED' or status=='FAILED':
            h2o_sandbox.check_sandbox_for_errors()
            return result

        # what about 'CREATED'
        # FIX! what are the other legal polling statuses that we should check for?

        if not h2o_args.no_timeout and (time.time() - start_time > timeoutSecs):
            h2o_sandbox.check_sandbox_for_errors()
            emsg = "Job:", job_key, "timed out in:", timeoutSecs

            # for debug
            a = h2o.nodes[0].get_cloud()
            print "cloud.json:", dump_json(a)
            raise Exception(emsg)
            print emsg
            return None

        # check every other poll, for now
        if (pollCount % 2) == 0:
            h2o_sandbox.check_sandbox_for_errors()

        time.sleep(retryDelaySecs)
        pollCount += 1
def poll_job ( self , job_key , timeoutSecs = 10 , retryDelaySecs = 0.5 , key = None , * * kwargs ) : params_dict = { } # merge kwargs into params_dict h2o_methods . check_params_update_kwargs ( params_dict , kwargs , 'poll_job' , False ) start_time = time . time ( ) pollCount = 0 while True : result = self . do_json_request ( '3/Jobs.json/' + job_key , timeout = timeoutSecs , params = params_dict ) # print 'Job: ', dump_json(result) if key : frames_result = self . frames ( key = key ) print 'frames_result for key:' , key , dump_json ( result ) jobs = result [ 'jobs' ] [ 0 ] description = jobs [ 'description' ] dest = jobs [ 'dest' ] dest_name = dest [ 'name' ] msec = jobs [ 'msec' ] status = jobs [ 'status' ] progress = jobs [ 'progress' ] print description , "dest_name:" , dest_name , "\tprogress:" , "%-10s" % progress , "\tstatus:" , "%-12s" % status , "\tmsec:" , msec if status == 'DONE' or status == 'CANCELLED' or status == 'FAILED' : h2o_sandbox . check_sandbox_for_errors ( ) return result # what about 'CREATED' # FIX! what are the other legal polling statuses that we should check for? if not h2o_args . no_timeout and ( time . time ( ) - start_time > timeoutSecs ) : h2o_sandbox . check_sandbox_for_errors ( ) emsg = "Job:" , job_key , "timed out in:" , timeoutSecs # for debug a = h2o . nodes [ 0 ] . get_cloud ( ) print "cloud.json:" , dump_json ( a ) raise Exception ( emsg ) print emsg return None # check every other poll, for now if ( pollCount % 2 ) == 0 : h2o_sandbox . check_sandbox_for_errors ( ) time . sleep ( retryDelaySecs ) pollCount += 1
Poll a single job from the /Jobs endpoint until it is "status": "DONE" or "CANCELLED" or "FAILED" or we time out.
Poll a single job from the / Jobs endpoint until it is status : DONE or CANCELLED or FAILED or we time out .