def monitor_status()

in code/workflow/implementations/autopilot/bp_automl_stage.py [0:0]


    def monitor_status(cls, job_name, context, client) :
    
        sleep_time = 60
        while True: 
            
            job_description = client.describe_auto_ml_job(AutoMLJobName=job_name)
            status = job_description['AutoMLJobStatus']
            
            results = {"job_name" : job_name}  
            if status == 'Completed' : 
                
                best_candidate = job_description['BestCandidate']
                best_candidate_name = best_candidate['CandidateName']
                
                results["best-candidate"] = {   
                                            "name" : best_candidate_name,
                                            "objective": {
                                                "name": best_candidate['FinalAutoMLJobObjectiveMetric']['MetricName'],
                                                "value": best_candidate['FinalAutoMLJobObjectiveMetric']['Value']
                                                },
                                            "containers" : best_candidate["InferenceContainers"]
                                            }
                
                break;
                        
            elif status in ('Failed', 'Stopped') :
                break;
            else :
                
                if context.get_remaining_time_in_millis() > 2000*sleep_time :
                    sleep(sleep_time)
                else :
                    raise TaskTimedOut("Task timed out.")
        
        results["status"] = status 
        
        return results