Exemple #1
0
bool ert_test_context_install_workflow( ert_test_context_type * test_context , const char * workflow_name , const char * workflow_file) {
  if (util_file_exists( workflow_file )) {
    enkf_main_type * enkf_main = ert_test_context_get_main( test_context );
    ert_workflow_list_type * workflow_list = enkf_main_get_workflow_list( enkf_main );
    ert_workflow_list_add_workflow( workflow_list , workflow_file , workflow_name );
    return ert_workflow_list_has_workflow( workflow_list , workflow_name);
  } else
    return false;
}
Exemple #2
0
void qc_module_set_workflow( qc_module_type * qc_module , const char * qc_workflow ) {
  char * workflow_name;
  util_alloc_file_components( qc_workflow , NULL , &workflow_name , NULL );
  {
    workflow_type * workflow = ert_workflow_list_add_workflow( qc_module->workflow_list , qc_workflow , workflow_name);
    if (workflow != NULL) {
      ert_workflow_list_add_alias( qc_module->workflow_list , workflow_name , QC_WORKFLOW_NAME );
      qc_module->qc_workflow = workflow;
    }
  }
  free( workflow_name );
}
void test_add_alias( const char * job) {
  test_work_area_type * work_area = test_work_area_alloc( "workflow_list/alias" );
  ert_workflow_list_type * wf_list = ert_workflow_list_alloc( NULL );
  ert_workflow_list_add_job( wf_list , "JOB" , job );

  {
    FILE * stream = util_fopen("WF1" , "w");
    fprintf(stream , "SCALE_STD 0.25\n");
    fclose(stream);
  }


  {
    FILE * stream = util_fopen("WF2" , "w");
    fprintf(stream , "SCALE_STD 0.25\n");
    fclose(stream);
  }

  test_assert_true( workflow_is_instance( ert_workflow_list_add_workflow( wf_list , "WF1" , "WF")));
  test_assert_int_equal( 1 , ert_workflow_list_get_size( wf_list ));
  test_assert_false( ert_workflow_list_has_workflow( wf_list , "WF1"));
  test_assert_true( ert_workflow_list_has_workflow( wf_list , "WF"));

  ert_workflow_list_add_alias( wf_list , "WF" , "alias");
  test_assert_int_equal( 2 , ert_workflow_list_get_size( wf_list ));
  test_assert_true( ert_workflow_list_has_workflow( wf_list , "WF"));
  test_assert_true( ert_workflow_list_has_workflow( wf_list , "alias"));
  test_assert_true( workflow_is_instance( ert_workflow_list_get_workflow( wf_list , "WF")));
  test_assert_true( workflow_is_instance( ert_workflow_list_get_workflow( wf_list , "alias")));

  test_assert_true( workflow_is_instance( ert_workflow_list_add_workflow( wf_list , "WF2" , "WF")));
  test_assert_int_equal( 2 , ert_workflow_list_get_size( wf_list ));
  test_assert_true( ert_workflow_list_has_workflow( wf_list , "WF"));
  test_assert_true( ert_workflow_list_has_workflow( wf_list , "alias"));
  test_assert_true( workflow_is_instance( ert_workflow_list_get_workflow( wf_list , "WF")));
  test_assert_true( workflow_is_instance( ert_workflow_list_get_workflow( wf_list , "alias")));

  test_work_area_free( work_area );
}
Exemple #4
0
void hook_manager_init_hook( hook_manager_type * hook_manager , const config_content_type * config) {
  if (config_content_has_item( config , HOOK_WORKFLOW_KEY)) {
    const char * file_name = config_content_iget( config , HOOK_WORKFLOW_KEY, 0, 0 );
    char * workflow_name;
    util_alloc_file_components( file_name , NULL , &workflow_name , NULL );
    {
      workflow_type * workflow = ert_workflow_list_add_workflow( hook_manager->workflow_list , file_name , workflow_name);
      if (workflow != NULL) {
        ert_workflow_list_add_alias( hook_manager->workflow_list , workflow_name , HOOK_WORKFLOW_KEY );
        hook_workflow_set_workflow( hook_manager->hook_workflow , workflow);
      }
      hook_workflow_set_run_mode( hook_manager->hook_workflow , config_content_iget( config , HOOK_WORKFLOW_KEY, 0, 1 ));
    }
  }
}
Exemple #5
0
void hook_manager_init_post_hook( hook_manager_type * hook_manager , const config_content_type * config) {
 if (config_content_has_item( config , QC_PATH_KEY ))
    hook_manager_set_path( hook_manager, config_content_get_value( config , QC_PATH_KEY ));

  if (config_content_has_item( config , QC_WORKFLOW_KEY)) {
    const char * file_name = config_content_get_value_as_path(config , QC_WORKFLOW_KEY);
    char * workflow_name;
    util_alloc_file_components( file_name , NULL , &workflow_name , NULL );
    {
      workflow_type * workflow = ert_workflow_list_add_workflow( hook_manager->workflow_list , file_name , workflow_name);
      if (workflow != NULL) {
        ert_workflow_list_add_alias( hook_manager->workflow_list , workflow_name , QC_WORKFLOW_NAME );
        hook_workflow_set_workflow( hook_manager->post_hook_workflow, workflow );
      }

      hook_workflow_set_run_mode( hook_manager->post_hook_workflow, RUN_MODE_POST_SIMULATION_NAME);
    }
  }
}
Exemple #6
0
void ert_workflow_list_init( ert_workflow_list_type * workflow_list , config_content_type * config ) {
  /* Adding jobs */
  {
    if (config_content_has_item( config , WORKFLOW_JOB_DIRECTORY_KEY)) {
      const config_content_item_type * jobpath_item = config_content_get_item( config , WORKFLOW_JOB_DIRECTORY_KEY);
      for (int i=0; i < config_content_item_get_size( jobpath_item ); i++) {
        config_content_node_type * path_node = config_content_item_iget_node( jobpath_item , i );

        for (int j=0; j < config_content_node_get_size( path_node ); j++)
          ert_workflow_list_add_jobs_in_directory( workflow_list , config_content_node_iget_as_abspath( path_node , j ) );
      }
    }
  }

  {
    if (config_content_has_item( config , LOAD_WORKFLOW_JOB_KEY)) {
      const config_content_item_type * job_item = config_content_get_item( config , LOAD_WORKFLOW_JOB_KEY);
      for (int i=0; i < config_content_item_get_size( job_item ); i++) {
        config_content_node_type * job_node = config_content_item_iget_node( job_item , i );
        const char * config_file = config_content_node_iget_as_path( job_node , 0 );
        const char * job_name = config_content_node_safe_iget( job_node , 1 );
        ert_workflow_list_add_job( workflow_list , job_name , config_file);
      }
    }
  }


  /* Adding workflows */
  {
    if (config_content_has_item( config , LOAD_WORKFLOW_KEY)) {
      const config_content_item_type * workflow_item = config_content_get_item( config , LOAD_WORKFLOW_KEY);
      for (int i=0; i < config_content_item_get_size( workflow_item ); i++) {
        config_content_node_type * workflow_node = config_content_item_iget_node( workflow_item , i );
        const char * workflow_file = config_content_node_iget_as_path( workflow_node , 0 );
        const char * workflow_name = config_content_node_safe_iget( workflow_node , 1 );

        ert_workflow_list_add_workflow( workflow_list , workflow_file , workflow_name );
      }
    }
  }
}