<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">"test"</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">"ECF_HOME"</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">"HOME"</span><span class="p">)</span> <span class="o">+</span> <span class="s">"/course"</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">"t1"</span><span class="p">)</span> <span class="c">#</span> <span class="c"># Check .ecf --> .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> |