Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
HTML
<div class="section" id="checking-job-creation">
<span id="index-0"></span><span id="id1"></span>
<div class="line-block">
<div class="line">The process of <a class="reference internal" href="/wiki/display/ECFLOW/Glossary#term-job-creation"><em class="xref std std-term">job creation</em></a> can be checked before the <a class="reference internal" href="/wiki/display/ECFLOW/Glossary#term-suite-definition"><em class="xref std std-term">suite definition</em></a></div>
<div class="line">is loaded into the <a class="reference internal" href="/wiki/display/ECFLOW/Glossary#term-ecflow-server"><em class="xref std std-term">ecflow_server</em></a>. The following checks are done:</div>
</div>
<ul class="simple">
<li>Locating <a class="reference internal" href="/wiki/display/ECFLOW/Glossary#term-ecf-script"><em class="xref std std-term">ecf script</em></a> files, corresponding to the <a class="reference internal" href="/wiki/display/ECFLOW/Glossary#term-task"><em class="xref std std-term">task</em></a> in the <a class="reference internal" href="/wiki/display/ECFLOW/Glossary#term-suite-definition"><em class="xref std std-term">suite definition</em></a></li>
<li>Performing <a class="reference internal" href="/wiki/display/ECFLOW/Glossary#term-pre-processing"><em class="xref std std-term">pre-processing</em></a></li>
</ul>
<div class="line-block">
<div class="line">When the <a class="reference internal" href="/wiki/display/ECFLOW/Glossary#term-suite-definition"><em class="xref std std-term">suite definition</em></a> is large and has many <a class="reference internal" href="/wiki/display/ECFLOW/Glossary#term-ecf-script"><em class="xref std std-term">ecf script</em></a> this</div>
<div class="line">checking can save a lot of time.</div>
</div>
<p>Checking is done using <tt class="xref py py-class docutils literal"><span class="pre">ecflow.Defs.check_job_creation</span></tt></p>
<div class="highlight-python"><div class="highlight"><pre><span class="c">#!/usr/bin/env python2.5</span>
<span class="kn">import</span> <span class="nn">os</span>
<span class="kn">import</span> <span class="nn">ecflow</span> 
   
<span class="n">defs</span> <span class="o">=</span> <span class="n">ecflow</span><span class="o">.</span><span class="n">Defs</span><span class="p">()</span>
<span class="n">suite</span> <span class="o">=</span> <span class="n">defs</span><span class="o">.</span><span class="n">add_suite</span><span class="p">(</span><span class="s">&quot;test&quot;</span><span class="p">)</span>
<span class="n">suite</span><span class="o">.</span><span class="n">add_variable</span><span class="p">(</span><span class="s">&quot;ECF_HOME&quot;</span><span class="p">,</span><span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="s">&quot;HOME&quot;</span><span class="p">)</span> <span class="o">+</span> <span class="s">&quot;/course&quot;</span><span class="p">)</span>
<span class="n">suite</span><span class="o">.</span><span class="n">add_task</span><span class="p">(</span><span class="s">&quot;t1&quot;</span><span class="p">)</span>

<span class="c">#</span>
<span class="c"># Check .ecf --&gt; .job  </span>
<span class="c">#</span>
<span class="n">job_ctrl</span> <span class="o">=</span> <span class="n">ecflow</span><span class="o">.</span><span class="n">JobCreationCtrl</span><span class="p">()</span>                    
<span class="n">defs</span><span class="o">.</span><span class="n">check_job_creation</span><span class="p">(</span><span class="n">job_ctrl</span><span class="p">)</span>
<span class="k">print</span> <span class="n">job_ctrl</span><span class="o">.</span><span class="n">get_error_msg</span><span class="p">()</span>

<span class="c"># We can assert, so that we only progress, once all job creation works</span>
<span class="c"># assert len(job_ctrl.get_error_msg()) == 0, job_ctrl.get_error_msg()</span>
</pre></div>
</div>
<p>What to do:</p>
<ol class="arabic simple">
<li>Add job creation checking.</li>
</ol>
</div>