Exemplo n.º 1
0
def run_model(dbsession,modelrun):
    mapping = create_resource_mapping(modelschemas[modelrun.model_name],modelrun)
    modelrun.progress_state = PROGRESS_STATES['RUNNING']
    dbsession.commit()
    kwargs = {'dbsession':dbsession,'modelrun_id':modelrun.id}
    kwargs.update(mapping)

    try:
        #run the model
        model_modules[modelrun.model_name]['method'](event_emitter=ee,**kwargs)
        output_mapping = resolve_output_map(mapping,modelschemas[modelrun.model_name])
        for m in output_mapping:
            if os.path.exists(output_mapping[m]['location']):
                output_resource = ModelResource()
                output_resource.resource_type=output_mapping[m]['type']
                output_resource.resource_location = output_mapping[m]['location']
                output_resource.resource_size = os.stat(output_resource.resource_location).st_size
                modelrun.resources.append(output_resource)
        modelrun.progress_state=PROGRESS_STATES['FINISHED']
        logging.info('done running::{modelrun}'.format(modelrun=modelrun))
    except:
        logging.info('Erorr Happended while running model:{modelrun}'.format(modelrun=modelrun))
        logging.info(traceback.format_exc())

        modelrun.progress_state=PROGRESS_STATES['ERROR']
    dbsession.commit()
Exemplo n.º 2
0
def create_output_resources(modelrunner,output_map):
    resources = []
    for m in output_map:
        if os.path.exists(output_map[m]):
            obj = storage.container.upload_object(output_map[m],os.path.basename(output_map[m]))
            output_resource = ModelResource()
            output_resource.resource_type = modelrunner.get_resource_type_from_map(m,'outputs')
            output_resource.resource_name = obj.name
            output_resource.resource_size = obj.size
            resources.append(output_resource)
    return resources