tripal/tripal_galaxy

View on GitHub
docs/doxyxml/df/d55/tripal__galaxy_8api_8inc.xml

Summary

Maintainability
Test Coverage
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.13">
  <compounddef id="df/d55/tripal__galaxy_8api_8inc" kind="file" language="PHP">
    <compoundname>tripal_galaxy.api.inc</compoundname>
      <sectiondef kind="func">
      <memberdef kind="function" id="df/d55/tripal__galaxy_8api_8inc_1aee35f9000f503ad715947aa4af7d465e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>_tripal_galaxy_get_workflow_defaults</definition>
        <argsstring>(array $tool_inputs, array &amp;$parameters, array $step_inputs, string $step_input_key)</argsstring>
        <name>_tripal_galaxy_get_workflow_defaults</name>
        <param>
          <type>array</type>
          <declname>$tool_inputs</declname>
        </param>
        <param>
          <type>array &amp;</type>
          <declname>$parameters</declname>
        </param>
        <param>
          <type>array</type>
          <declname>$step_inputs</declname>
        </param>
        <param>
          <type>string</type>
          <declname>$step_input_key</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>A recursive helper function for tripal_galaxy_get_workflow_defaults.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametertype>array</parametertype>
<parametername>$tool_inputs</parametername>
</parameternamelist>
<parameterdescription>
<para>The &apos;tool_inputs&apos; array for the step, or the sub elements on a recursive call. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametertype>array</parametertype>
<parametername>$parameters</parametername>
</parameternamelist>
<parameterdescription>
<para>A pass-by-reference of the $parameters array. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametertype>array</parametertype>
<parametername>$step_inputs</parametername>
</parameternamelist>
<parameterdescription>
<para>The &apos;input_steps&apos; array for the step. This is always passed as is at every recursion level. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametertype>string</parametertype>
<parametername>$step_input_key</parametername>
</parameternamelist>
<parameterdescription>
<para>The key used to lookup up if an element has a key in the $step_inputs. For nested keys they are concatenated. with a &apos;|&apos; separating each level. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" line="814" column="1" bodyfile="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" bodystart="814" bodyend="849"/>
      </memberdef>
      <memberdef kind="function" id="de/db0/group__tripal__galaxy__api_1gab8c1fff132bd8085a3402283208ee422" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tripal_galaxy_add_galaxy</definition>
        <argsstring>(array $values)</argsstring>
        <name>tripal_galaxy_add_galaxy</name>
        <param>
          <type>array</type>
          <declname>$values</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Adds a new Galaxy server to Tripal.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametertype>array</parametertype>
<parametername>$values</parametername>
</parameternamelist>
<parameterdescription>
<para>An associative array containing the following key/value pairs: - servername: A human-readable name for the Galaxy server. The servername must be unique and not already present. - description: (optional) a description about this server. - url: The full URL for the server (e.g. <ulink url="https://usegalaxy.org/">https://usegalaxy.org/</ulink>) - username: The name of the user to connect as. - api_key: The API key of the user. This allows Tripal to access the Galaxy server&apos;s RESTful API services. - uid: The Drupal User ID who created this record.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>object The newly created Galaxy object or FALSE on error. If the record already exists the object is returned and no duplicated record is added. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" line="426" column="1" bodyfile="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" bodystart="426" bodyend="462"/>
      </memberdef>
      <memberdef kind="function" id="de/db0/group__tripal__galaxy__api_1gac0e018b1fb585a9d09bbcc0844be3495" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tripal_galaxy_add_workflow</definition>
        <argsstring>(int $galaxy_id, array $values, bool $create_webform=TRUE)</argsstring>
        <name>tripal_galaxy_add_workflow</name>
        <param>
          <type>int</type>
          <declname>$galaxy_id</declname>
        </param>
        <param>
          <type>array</type>
          <declname>$values</declname>
        </param>
        <param>
          <type>bool</type>
          <declname>$create_webform</declname>
          <defval>TRUE</defval>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Adds a remote Galaxy Workflow to Tripal.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametertype>int</parametertype>
<parametername>$galaxy_id</parametername>
</parameternamelist>
<parameterdescription>
<para>An ID of the galaxy server. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametertype>array</parametertype>
<parametername>$values</parametername>
</parameternamelist>
<parameterdescription>
<para>An associative array used to specify the workflow. The workflow can be identified using the Galaxy workflow ID provided using the &apos;workflow_id&apos; key or using the workflow name provided using the &apos;workflow_name&apos; key. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametertype>bool</parametertype>
<parametername>$create_webform</parametername>
</parameternamelist>
<parameterdescription>
<para>If TRUE, creates a webform for the end-user to submit this workflow using the Tripal website. It will automatically create a history for this workflow on the remote Galaxy server as well.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>object A workflow object or FALSE on error. If the workflow has already been added, then the workflow object is returned and no duplicate record is added. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" line="123" column="1" bodyfile="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" bodystart="123" bodyend="208"/>
      </memberdef>
      <memberdef kind="function" id="de/db0/group__tripal__galaxy__api_1gaa666f881b052ec82ed674da24eb100c2" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tripal_galaxy_check_submission_status</definition>
        <argsstring>(int $sid=NULL, bool $force=FALSE)</argsstring>
        <name>tripal_galaxy_check_submission_status</name>
        <param>
          <type>int</type>
          <declname>$sid</declname>
          <defval>NULL</defval>
        </param>
        <param>
          <type>bool</type>
          <declname>$force</declname>
          <defval>FALSE</defval>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Checks and updates the status of a Galaxy workflow.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametertype>int</parametertype>
<parametername>$sid</parametername>
</parameternamelist>
<parameterdescription>
<para>The submission ID of the workflow. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametertype>bool</parametertype>
<parametername>$force</parametername>
</parameternamelist>
<parameterdescription>
<para>If a workflow submission is already completed this function will quickly return and not check the status again. Setting the $force argument to TRUE will force the function to check the status.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>bool Returns TRUE on successful checking of the status, FALSE if a problem occured. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" line="515" column="1" bodyfile="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" bodystart="515" bodyend="693"/>
      </memberdef>
      <memberdef kind="function" id="de/db0/group__tripal__galaxy__api_1gaf580037935dcd174927d3b0404d452d8" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tripal_galaxy_create_history</definition>
        <argsstring>(GalaxyInstance $galaxy, string $history_name)</argsstring>
        <name>tripal_galaxy_create_history</name>
        <param>
          <type>GalaxyInstance</type>
          <declname>$galaxy</declname>
        </param>
        <param>
          <type>string</type>
          <declname>$history_name</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Creates a history on the Galaxy server.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametertype>GalaxyInstance</parametertype>
<parametername>$galaxy</parametername>
</parameternamelist>
<parameterdescription>
<para></para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametertype>string</parametertype>
<parametername>$history_name</parametername>
</parameternamelist>
<parameterdescription>
<para></para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>array A history array for the created history. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" line="1105" column="1" bodyfile="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" bodystart="1105" bodyend="1128"/>
      </memberdef>
      <memberdef kind="function" id="de/db0/group__tripal__galaxy__api_1gab66a0326d58e3729e95cc28b1e69fa73" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tripal_galaxy_delete_expired_histories</definition>
        <argsstring>()</argsstring>
        <name>tripal_galaxy_delete_expired_histories</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Deletes expired histories.</para><para>Walks through the tripal_galaxy_workflow_submission table and deletes any workflows older in days than specified in the tripal_galaxy_history_days_limit system variable.</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" line="1227" column="1" bodyfile="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" bodystart="1227" bodyend="1266"/>
      </memberdef>
      <memberdef kind="function" id="de/db0/group__tripal__galaxy__api_1ga0c1d8391681ee16b93797089d9bad767" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tripal_galaxy_delete_remote_history</definition>
        <argsstring>(int $galaxy_id, string $history_name)</argsstring>
        <name>tripal_galaxy_delete_remote_history</name>
        <param>
          <type>int</type>
          <declname>$galaxy_id</declname>
        </param>
        <param>
          <type>string</type>
          <declname>$history_name</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Deletes a single remote history from the remote galaxy server.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametertype>int</parametertype>
<parametername>$galaxy_id</parametername>
</parameternamelist>
<parameterdescription>
<para>A unique ID for the galaxy server. If this is provided no other arguments are needed. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametertype>string</parametertype>
<parametername>$history_name</parametername>
</parameternamelist>
<parameterdescription>
<para>The name of the history to retrieve. If the history doesn&apos;t exist then it will be created.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>bool TRUE if the deletion was successful, FALSE otherwise. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" line="1283" column="1" bodyfile="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" bodystart="1283" bodyend="1308"/>
      </memberdef>
      <memberdef kind="function" id="de/db0/group__tripal__galaxy__api_1gaa0e6b46831bf8ec128042d5a585c59e8" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tripal_galaxy_download_file</definition>
        <argsstring>(stdClass $submission, array $dataset, int $uid)</argsstring>
        <name>tripal_galaxy_download_file</name>
        <param>
          <type>stdClass</type>
          <declname>$submission</declname>
        </param>
        <param>
          <type>array</type>
          <declname>$dataset</declname>
        </param>
        <param>
          <type>int</type>
          <declname>$uid</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Downloads a file from a Galaxy history.</para><para>Downloads a single file from a history. The file will be stored in the user&apos;s Tripal space and count towards their quota. If the file has already been downloaded it will be retrieved again and overwrite any existing file.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametertype>stdClass</parametertype>
<parametername>$submission</parametername>
</parameternamelist>
<parameterdescription>
<para>A submission object as obtained by the <ref refid="de/db0/group__tripal__galaxy__api_1gaf8ee6e07586607a7a28bae4bc6d4f315" kindref="member">tripal_galaxy_get_submission()</ref> function. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametertype>array</parametertype>
<parametername>$dataset</parametername>
</parameternamelist>
<parameterdescription>
<para>An array describing the dataset as returned by the <ref refid="de/db0/group__tripal__galaxy__api_1ga6c6d71ff64c3101778972cfc949221e7" kindref="member">tripal_galaxy_get_dataset()</ref> or <ref refid="de/db0/group__tripal__galaxy__api_1gab4fa1a6f26abeddb5ac8ce2b0be47606" kindref="member">tripal_galaxy_get_datasets()</ref> functions. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametertype>int</parametertype>
<parametername>$uid</parametername>
</parameternamelist>
<parameterdescription>
<para>The user that should own this file after it is downloaded.</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="exception"><parameteritem>
<parameternamelist>
<parametername>Exception</parametername>
</parameternamelist>
<parameterdescription>
<para></para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>object Returns a Drupal File object. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" line="1443" column="1" bodyfile="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" bodystart="1443" bodyend="1500"/>
      </memberdef>
      <memberdef kind="function" id="de/db0/group__tripal__galaxy__api_1gab25d14cbae238d1d2375db470d39fe42" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tripal_galaxy_get_active_submissions</definition>
        <argsstring>()</argsstring>
        <name>tripal_galaxy_get_active_submissions</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Retrieves a list of all workflow submissions that have not completed.</para><para><simplesect kind="return"><para>array An array of submission objects. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" line="472" column="1" bodyfile="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" bodystart="472" bodyend="497"/>
      </memberdef>
      <memberdef kind="function" id="de/db0/group__tripal__galaxy__api_1ga7ecc0a27c271f35edb4aa49d799eb9c9" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tripal_galaxy_get_connection</definition>
        <argsstring>(int $galaxy_id)</argsstring>
        <name>tripal_galaxy_get_connection</name>
        <param>
          <type>int</type>
          <declname>$galaxy_id</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Retrieves a GalaxyInstance objects using a galaxy_id.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametertype>int</parametertype>
<parametername>$galaxy_id</parametername>
</parameternamelist>
<parameterdescription>
<para>The ID of a galaxy server.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>GalaxyInstance A galaxyInstance object or FALSE on error. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" line="27" column="1" bodyfile="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" bodystart="27" bodyend="48"/>
      </memberdef>
      <memberdef kind="function" id="de/db0/group__tripal__galaxy__api_1ga6c6d71ff64c3101778972cfc949221e7" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tripal_galaxy_get_dataset</definition>
        <argsstring>(stdClass $submission, $dataset_id)</argsstring>
        <name>tripal_galaxy_get_dataset</name>
        <param>
          <type>stdClass</type>
          <declname>$submission</declname>
        </param>
        <param>
          <declname>$dataset_id</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Retrieves a single datasets for a workflow invocation.</para><para>This function returns a single datasets as reported by the remote Galaxy server. The key/value pairs of the array are dependent on the Galaxy server version.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametertype>stdClass</parametertype>
<parametername>$submission</parametername>
</parameternamelist>
<parameterdescription>
<para>An object for the submission as returned by the tripal_galaxy_get_sumbission() function.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>The</parametername>
</parameternamelist>
<parameterdescription>
<para>ID of the dataset to retrieve.</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="exception"><parameteritem>
<parameternamelist>
<parametername>Exception</parametername>
</parameternamelist>
<parameterdescription>
<para></para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>array An array of datasets as reporte by the Remote Galaxy server. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" line="1399" column="1" bodyfile="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" bodystart="1399" bodyend="1417"/>
      </memberdef>
      <memberdef kind="function" id="de/db0/group__tripal__galaxy__api_1gab4fa1a6f26abeddb5ac8ce2b0be47606" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tripal_galaxy_get_datasets</definition>
        <argsstring>(stdClass $submission)</argsstring>
        <name>tripal_galaxy_get_datasets</name>
        <param>
          <type>stdClass</type>
          <declname>$submission</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Retrieves a list of datasets for a workflow invocation.</para><para>This function returns an array of datasets as reported by the remote Galaxy server. The key/value pairs of the array are dependent on the Galaxy server version.</para><para>Note, this function may take a few seconds to complete as it must communicate with the remote Galaxy server to retrieve dataset information.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametertype>stdClass</parametertype>
<parametername>$submission</parametername>
</parameternamelist>
<parameterdescription>
<para>An object for the submission as returned by the tripal_galaxy_get_sumbission() function.</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="exception"><parameteritem>
<parameternamelist>
<parametername>Exception</parametername>
</parameternamelist>
<parameterdescription>
<para></para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>array An array of datasets as reporte by the Remote Galaxy server. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" line="1331" column="1" bodyfile="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" bodystart="1331" bodyend="1376"/>
      </memberdef>
      <memberdef kind="function" id="de/db0/group__tripal__galaxy__api_1ga8c44bcb1d8e06449fe1be78ef21f622b" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tripal_galaxy_get_files_dir</definition>
        <argsstring>()</argsstring>
        <name>tripal_galaxy_get_files_dir</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Returns the URI where the Tripal Galaxy module stores files.</para><para>This function also ensures that the path exists by creating it.</para><para><simplesect kind="return"><para>string|bool A Drupal URI indicating the location where Galaxy files are housed. Returns FALSE if the location does not exist or cannot be created. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" line="1203" column="1" bodyfile="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" bodystart="1203" bodyend="1216"/>
      </memberdef>
      <memberdef kind="function" id="de/db0/group__tripal__galaxy__api_1gaff8c487209d466050e3dd2fc7c8374f9" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tripal_galaxy_get_galaxies</definition>
        <argsstring>()</argsstring>
        <name>tripal_galaxy_get_galaxies</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Retrieves a list of Galaxy servers that are known to Tripal.</para><para><simplesect kind="return"><para>array An associative array of galaxy server objects. Note, the returned objects are different from the GalaxyInstance objects provided by blend4php. These objects house the information that Tripal maintains about each of these servers. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" line="365" column="1" bodyfile="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" bodystart="365" bodyend="373"/>
      </memberdef>
      <memberdef kind="function" id="de/db0/group__tripal__galaxy__api_1ga9ab413a396a4a875c1126ccde8ade9f3" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tripal_galaxy_get_galaxy</definition>
        <argsstring>(int $galaxy_id)</argsstring>
        <name>tripal_galaxy_get_galaxy</name>
        <param>
          <type>int</type>
          <declname>$galaxy_id</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Retrieves a Galaxy object.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametertype>int</parametertype>
<parametername>$galaxy_id</parametername>
</parameternamelist>
<parameterdescription>
<para>The ID of the galaxy server to retrieve. A list of all galxy servers known to Tripal can be retrieved using the <ref refid="de/db0/group__tripal__galaxy__api_1gaff8c487209d466050e3dd2fc7c8374f9" kindref="member">tripal_galaxy_get_galaxies()</ref> function.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>object A galaxy object Note, the returned object is different from the GalaxyInstance object provided by blend4php. This objects house the information that Tripal maintains about each the servers. Returns FALSE on error. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" line="391" column="1" bodyfile="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" bodystart="391" bodyend="404"/>
      </memberdef>
      <memberdef kind="function" id="de/db0/group__tripal__galaxy__api_1gab81573a1e45464b19d9a2c32520bbf87" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tripal_galaxy_get_history</definition>
        <argsstring>(GalaxyInstance $galaxy, string $history_name)</argsstring>
        <name>tripal_galaxy_get_history</name>
        <param>
          <type>GalaxyInstance</type>
          <declname>$galaxy</declname>
        </param>
        <param>
          <type>string</type>
          <declname>$history_name</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Retrieves a history by name from Galaxy.</para><para>You must first create the history using <ref refid="de/db0/group__tripal__galaxy__api_1gaf580037935dcd174927d3b0404d452d8" kindref="member">tripal_galaxy_create_history()</ref> if it does not already exist.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametertype>GalaxyInstance</parametertype>
<parametername>$galaxy</parametername>
</parameternamelist>
<parameterdescription>
<para>A GalaxyInstance object. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametertype>string</parametertype>
<parametername>$history_name</parametername>
</parameternamelist>
<parameterdescription>
<para>The name of the history to retrieve. If the history doesn&apos;t exist then it will be created.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>array|bool A history array for the specified history or FALSE if the history could not be found. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" line="1077" column="1" bodyfile="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" bodystart="1077" bodyend="1092"/>
      </memberdef>
      <memberdef kind="function" id="de/db0/group__tripal__galaxy__api_1ga789e6cf6dc77ff76856cbe3d8c2d8d93" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tripal_galaxy_get_history_name</definition>
        <argsstring>($submission)</argsstring>
        <name>tripal_galaxy_get_history_name</name>
        <param>
          <declname>$submission</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Constructs the history name for a given submission.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametertype>object</parametertype>
<parametername>$submission</parametername>
</parameternamelist>
<parameterdescription>
<para>A submission object that contains the galaxy_workflow_id, sid, and submit_date properties.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>string The history name. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" line="707" column="1" bodyfile="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" bodystart="707" bodyend="726"/>
      </memberdef>
      <memberdef kind="function" id="de/db0/group__tripal__galaxy__api_1gaf8ee6e07586607a7a28bae4bc6d4f315" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tripal_galaxy_get_submission</definition>
        <argsstring>(int $sid)</argsstring>
        <name>tripal_galaxy_get_submission</name>
        <param>
          <type>int</type>
          <declname>$sid</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Retrieves a workflow submission object using the submission ID.</para><para>The returned submission object includes all information about the submission. If the submission has been invoked then the &apos;errors&apos; element will have more information about the run including the history information, the history name, and the state of the history_contents from the last time the status of the submission was checked. If the status of the submission is &apos;Completed&apos; then the history_contents should contain all the history contents.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametertype>int</parametertype>
<parametername>$sid</parametername>
</parameternamelist>
<parameterdescription>
<para>The submission ID of the workflow.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>object An object containing the submission information. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" line="325" column="1" bodyfile="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" bodystart="325" bodyend="352"/>
      </memberdef>
      <memberdef kind="function" id="de/db0/group__tripal__galaxy__api_1ga86766383eb0518eeae28277a255d0677" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tripal_galaxy_get_user_submissions</definition>
        <argsstring>(int $userid)</argsstring>
        <name>tripal_galaxy_get_user_submissions</name>
        <param>
          <type>int</type>
          <declname>$userid</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Retrieve all submission IDs for a user.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametertype>int</parametertype>
<parametername>$userid</parametername>
</parameternamelist>
<parameterdescription>
<para>User id number.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>array A list of submission ids. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" line="739" column="1" bodyfile="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" bodystart="739" bodyend="748"/>
      </memberdef>
      <memberdef kind="function" id="de/db0/group__tripal__galaxy__api_1gabf03119507bfb737fd7b2af04501a18f" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tripal_galaxy_get_workflow_defaults</definition>
        <argsstring>(GalaxyInstance $galaxy, string $workflow_id)</argsstring>
        <name>tripal_galaxy_get_workflow_defaults</name>
        <param>
          <type>GalaxyInstance</type>
          <declname>$galaxy</declname>
        </param>
        <param>
          <type>string</type>
          <declname>$workflow_id</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Retrieves an array of settings used by the workflow.</para><para>This is a helpful function to help a developer understand how the $parameters array should be structured when passing into the <ref refid="de/db0/group__tripal__galaxy__api_1gad26f04e74dc76a75413530315ff8ffb2" kindref="member">tripal_galaxy_invoke_workflow()</ref> function.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametertype>GalaxyInstance</parametertype>
<parametername>$galaxy</parametername>
</parameternamelist>
<parameterdescription>
<para>A GalaxyInstance object. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametertype>string</parametertype>
<parametername>$workflow_id</parametername>
</parameternamelist>
<parameterdescription>
<para>The ID of the workflow to retrieve settings for. This is the Galaxy ID for the workflow not Tripal&apos;s internal workflow ID.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>bool|array An array compatible with the $parameters argument for the tripal_galaxy_invoke_wokflow(). Values are populatd with appropriate defaults. Returns FALSE if the workflow settings could not be retrieved. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" line="771" column="1" bodyfile="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" bodystart="771" bodyend="796"/>
      </memberdef>
      <memberdef kind="function" id="de/db0/group__tripal__galaxy__api_1ga8abde38e7305740399ad8559def04c62" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tripal_galaxy_get_workflows</definition>
        <argsstring>(array $values=[])</argsstring>
        <name>tripal_galaxy_get_workflows</name>
        <param>
          <type>array</type>
          <declname>$values</declname>
          <defval>[]</defval>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Retrieves a list of workflows integrated with Tripal.</para><para>The returned workflows can be filtered using a set of matching criteria given by the $values argument. This list only includes workflows that have been integrated with Tripal and not the list of workflows available on a remote galaxy server. Use blend4php functions to retrieve a list of workflows available on a remote Galaxy server.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametertype>array</parametertype>
<parametername>$values</parametername>
</parameternamelist>
<parameterdescription>
<para>An associative array used to find workflows. The following keys are supported: - galaxy_id: finds all workflows that match the given galayx_id. - id: finds the workflow with this specific workflow ID. - workflow_id: the ID of the workflow on the remote Galaxy instance. - name: finds the workflow with a given name. Note: the workflow name is not guranteed to be unique. - status: finds all workflows whose status matches the value provided. Any combination of the keys can be used.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>array An array of workflow objects. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" line="233" column="1" bodyfile="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" bodystart="233" bodyend="264"/>
      </memberdef>
      <memberdef kind="function" id="de/db0/group__tripal__galaxy__api_1ga402915ec024f4de2df5d437c901e69da" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tripal_galaxy_init_submission</definition>
        <argsstring>($workflow, $user)</argsstring>
        <name>tripal_galaxy_init_submission</name>
        <param>
          <declname>$workflow</declname>
        </param>
        <param>
          <declname>$user</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Initializes a new workflow submission record.</para><para>This function creates the record for the submission.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametertype>object</parametertype>
<parametername>$workflow</parametername>
</parameternamelist>
<parameterdescription>
<para>An workflow object as generated by the tripal_galaxy_get_workflow() function. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametertype>object</parametertype>
<parametername>$user</parametername>
</parameternamelist>
<parameterdescription>
<para>The Drupal User object. This is the user who owns the submission.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int|bool The submission ID on success, FALSE on failure. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" line="282" column="1" bodyfile="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" bodystart="282" bodyend="304"/>
      </memberdef>
      <memberdef kind="function" id="de/db0/group__tripal__galaxy__api_1gad26f04e74dc76a75413530315ff8ffb2" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tripal_galaxy_invoke_workflow</definition>
        <argsstring>(GalaxyInstance $galaxy, $submission, array $parameters, array $inputs, array $history)</argsstring>
        <name>tripal_galaxy_invoke_workflow</name>
        <param>
          <type>GalaxyInstance</type>
          <declname>$galaxy</declname>
        </param>
        <param>
          <declname>$submission</declname>
        </param>
        <param>
          <type>array</type>
          <declname>$parameters</declname>
        </param>
        <param>
          <type>array</type>
          <declname>$inputs</declname>
        </param>
        <param>
          <type>array</type>
          <declname>$history</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Invokes all submitted workflows that are in the &apos;Waiting&apos; state.</para><para>This function can be called by the tripal Job system hence the $job argument. For Tripal v2 the job_id is passed, for Tripal v3 a job object is passed so we&apos;ll handle both cases.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametertype>GalaxyInstance</parametertype>
<parametername>$galaxy</parametername>
</parameternamelist>
<parameterdescription>
<para>An instance of a GalaxyInstance object. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametertype>object</parametertype>
<parametername>$submission</parametername>
</parameternamelist>
<parameterdescription>
<para>A Galaxy workflow submission object. This object can be retrieved using the <ref refid="de/db0/group__tripal__galaxy__api_1gaf8ee6e07586607a7a28bae4bc6d4f315" kindref="member">tripal_galaxy_get_submission()</ref> function. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametertype>array</parametertype>
<parametername>$parameters</parametername>
</parameternamelist>
<parameterdescription>
<para>A mapping of tool parameters that are non-datasets parameters. The map must be in the following format: <programlisting><codeline><highlight class="normal">[</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/>{step_id_or_UUID}<sp/>=&gt;<sp/>[</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/>{param_name}<sp/>=&gt;<sp/>{value}</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/>],</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/>{step_id_or_UUID}<sp/>=&gt;<sp/>[</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/>{param_name}<sp/>=&gt;</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/>{value}</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/>]</highlight></codeline>
<codeline><highlight class="normal">];</highlight></codeline>
</programlisting> </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametertype>array</parametertype>
<parametername>$inputs</parametername>
</parameternamelist>
<parameterdescription>
<para>An array of file inputs. These files should already be uploaded to the history on the Galaxy server. This array contains a mapping of workflow inputs to datasets and dataset collections. The datasets source can be a LibraryDatasetDatasetAssociation (ldda), LibraryDataset (ld), HistoryDatasetAssociation (hda), or HistoryDatasetCollectionAssociation (hdca). The map must be in the following format. <programlisting><codeline><highlight class="normal">[</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/>{step<sp/>index}<sp/>=&gt;<sp/>[</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/>&apos;id&apos;<sp/>=&gt;<sp/>{encoded<sp/>dataset<sp/>ID},</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/>&apos;src&apos;<sp/>=&gt;<sp/>{&apos;ldda&apos;|&apos;ld&apos;|&apos;hda&apos;|&apos;hdca&apos;},</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/>],</highlight></codeline>
<codeline><highlight class="normal">];</highlight></codeline>
</programlisting> The id&apos;s are data set IDs and can be found using the data set class&apos;s index() function. The data set must be present in a history, and the data set &apos;state&apos; must be &apos;ok&apos; and &apos;deleted&apos; must be set to FALSE. The {step index&gt; is the numeric value of the step in the workflow where the file is used. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametertype>array</parametertype>
<parametername>$history</parametername>
</parameternamelist>
<parameterdescription>
<para>A history record as returned by the function <ref refid="de/db0/group__tripal__galaxy__api_1gab81573a1e45464b19d9a2c32520bbf87" kindref="member">tripal_galaxy_get_history()</ref>.</para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" line="908" column="1" bodyfile="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" bodystart="908" bodyend="980"/>
      </memberdef>
      <memberdef kind="function" id="df/d55/tripal__galaxy_8api_8inc_1a413af37aaacd994ad46b0844f695a76e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tripal_galaxy_split_url</definition>
        <argsstring>(string $url)</argsstring>
        <name>tripal_galaxy_split_url</name>
        <param>
          <type>string</type>
          <declname>$url</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Splits a URL to a Galaxy server into the host, port and if HTTPS is required.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametertype>string</parametertype>
<parametername>$url</parametername>
</parameternamelist>
<parameterdescription>
<para>The URL for the remote galaxy instance.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>array An array with three keys: host, port and use_https. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" line="59" column="1" bodyfile="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" bodystart="59" bodyend="99"/>
      </memberdef>
      <memberdef kind="function" id="de/db0/group__tripal__galaxy__api_1ga59906aa5301eccfee60f1ac153f02f92" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tripal_galaxy_test_connection</definition>
        <argsstring>(array $connect)</argsstring>
        <name>tripal_galaxy_test_connection</name>
        <param>
          <type>array</type>
          <declname>$connect</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Tests if a Galaxy server is accessible.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametertype>array</parametertype>
<parametername>$connect</parametername>
</parameternamelist>
<parameterdescription>
<para>An array of the following: - galaxy_id: A unique ID for the galaxy server. If this is provided no other arguments are needed. - host: The DNS hostname of the galaxy server. - port: The TCP port for the server. - use_https: Set to TRUE of the server uses HTTPS If the &apos;galaxy_id&apos; is provided then no other values are needed. Use the host, port and use_https arguments if testing connection to a server that has not yet been added.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>bool Returns TRUE if accessible. FALSE otherwise. A Drupal message is also provided that indicates if the test was successful. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" line="1148" column="1" bodyfile="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" bodystart="1148" bodyend="1189"/>
      </memberdef>
      <memberdef kind="function" id="de/db0/group__tripal__galaxy__api_1gafd57170f587e9a82dd233b0723d34b12" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tripal_galaxy_upload_file</definition>
        <argsstring>($galaxy, int $fid, string $history_id, array $history_contents)</argsstring>
        <name>tripal_galaxy_upload_file</name>
        <param>
          <declname>$galaxy</declname>
        </param>
        <param>
          <type>int</type>
          <declname>$fid</declname>
        </param>
        <param>
          <type>string</type>
          <declname>$history_id</declname>
        </param>
        <param>
          <type>array</type>
          <declname>$history_contents</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Uploads a file to a given history on Galaxy.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametertype>object</parametertype>
<parametername>$galaxy</parametername>
</parameternamelist>
<parameterdescription>
<para>An instance of a Galaxy server object. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametertype>int</parametertype>
<parametername>$fid</parametername>
</parameternamelist>
<parameterdescription>
<para>The Drupal managed file ID. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametertype>string</parametertype>
<parametername>$history_id</parametername>
</parameternamelist>
<parameterdescription>
<para>The history ID. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametertype>array</parametertype>
<parametername>$history_contents</parametername>
</parameternamelist>
<parameterdescription>
<para>The Galaxy history contents array as returned by the GalaxyHistoryContents::index function.</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="exception"><parameteritem>
<parameternamelist>
<parametername>Exception</parametername>
</parameternamelist>
<parameterdescription>
<para></para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>array An array of the dataset details from Galaxy for the uploaded file. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" line="1006" column="1" bodyfile="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc" bodystart="1006" bodyend="1057"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
    </briefdescription>
    <detaileddescription>
<para>An application programming interface (API) for the Tripal Galaxy module. </para>    </detaileddescription>
    <programlisting>
<codeline lineno="1"><highlight class="normal">&lt;?php</highlight></codeline>
<codeline lineno="2"><highlight class="normal"></highlight></codeline>
<codeline lineno="27" refid="de/db0/group__tripal__galaxy__api_1ga7ecc0a27c271f35edb4aa49d799eb9c9" refkind="member"><highlight class="keyword">function</highlight><highlight class="normal"><sp/><ref refid="de/db0/group__tripal__galaxy__api_1ga7ecc0a27c271f35edb4aa49d799eb9c9" kindref="member">tripal_galaxy_get_connection</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>$galaxy_id)<sp/>{</highlight></codeline>
<codeline lineno="28"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Get<sp/>the<sp/>galaxy<sp/>server<sp/>for<sp/>this<sp/>workflow.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="29"><highlight class="normal"><sp/><sp/>$galaxy_server<sp/>=<sp/>db_select(</highlight><highlight class="stringliteral">&apos;tripal_galaxy&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;tg&apos;</highlight><highlight class="normal">)-&gt;fields(</highlight><highlight class="stringliteral">&apos;tg&apos;</highlight><highlight class="normal">)</highlight></codeline>
<codeline lineno="30"><highlight class="normal"><sp/><sp/><sp/><sp/>-&gt;condition(</highlight><highlight class="stringliteral">&apos;galaxy_id&apos;</highlight><highlight class="normal">,<sp/>$galaxy_id)</highlight></codeline>
<codeline lineno="31"><highlight class="normal"><sp/><sp/><sp/><sp/>-&gt;execute()</highlight></codeline>
<codeline lineno="32"><highlight class="normal"><sp/><sp/><sp/><sp/>-&gt;fetchObject();</highlight></codeline>
<codeline lineno="33"><highlight class="normal"></highlight></codeline>
<codeline lineno="34"><highlight class="normal"><sp/><sp/>$library<sp/>=<sp/>libraries_load(</highlight><highlight class="stringliteral">&apos;blend4php&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="35"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(array_key_exists(</highlight><highlight class="stringliteral">&apos;error&apos;</highlight><highlight class="normal">,<sp/>$library))<sp/>{</highlight></codeline>
<codeline lineno="36"><highlight class="normal"><sp/><sp/><sp/><sp/>drupal_set_message($library[</highlight><highlight class="stringliteral">&apos;error<sp/>message&apos;</highlight><highlight class="normal">],<sp/></highlight><highlight class="stringliteral">&apos;error&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="37"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>FALSE;</highlight></codeline>
<codeline lineno="38"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="39"><highlight class="normal"></highlight></codeline>
<codeline lineno="40"><highlight class="normal"><sp/><sp/>$connect<sp/>=<sp/><ref refid="df/d55/tripal__galaxy_8api_8inc_1a413af37aaacd994ad46b0844f695a76e" kindref="member">tripal_galaxy_split_url</ref>($galaxy_server-&gt;url);</highlight></codeline>
<codeline lineno="41"><highlight class="normal"><sp/><sp/>$galaxy<sp/>=<sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>GalaxyInstance($connect[</highlight><highlight class="stringliteral">&apos;host&apos;</highlight><highlight class="normal">],<sp/>$connect[</highlight><highlight class="stringliteral">&apos;port&apos;</highlight><highlight class="normal">],<sp/>$connect[</highlight><highlight class="stringliteral">&apos;use_https&apos;</highlight><highlight class="normal">]);</highlight></codeline>
<codeline lineno="42"><highlight class="normal"><sp/><sp/>$galaxy-&gt;setAPIKey($galaxy_server-&gt;api_key);</highlight></codeline>
<codeline lineno="43"><highlight class="normal"><sp/><sp/>$error<sp/>=<sp/>$galaxy-&gt;getErrorType();</highlight></codeline>
<codeline lineno="44"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>($error)<sp/>{</highlight></codeline>
<codeline lineno="45"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>FALSE;</highlight></codeline>
<codeline lineno="46"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="47"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>$galaxy;</highlight></codeline>
<codeline lineno="48"><highlight class="normal">}</highlight></codeline>
<codeline lineno="49"><highlight class="normal"></highlight></codeline>
<codeline lineno="59" refid="df/d55/tripal__galaxy_8api_8inc_1a413af37aaacd994ad46b0844f695a76e" refkind="member"><highlight class="keyword">function</highlight><highlight class="normal"><sp/><ref refid="df/d55/tripal__galaxy_8api_8inc_1a413af37aaacd994ad46b0844f695a76e" kindref="member">tripal_galaxy_split_url</ref>(</highlight><highlight class="keywordtype">string</highlight><highlight class="normal"><sp/>$url)<sp/>{</highlight></codeline>
<codeline lineno="60"><highlight class="normal"></highlight></codeline>
<codeline lineno="61"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>TODO:<sp/>should<sp/>this<sp/>go<sp/>into<sp/>blend4php?</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="62"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>First<sp/>check<sp/>a<sp/>URL<sp/>with<sp/>a<sp/>port.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="63"><highlight class="normal"><sp/><sp/>$matches<sp/>=<sp/>[];</highlight></codeline>
<codeline lineno="64"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(preg_match(</highlight><highlight class="stringliteral">&apos;/^(.*)\:\/\/(.+?)\:(\d+)\/*$/&apos;</highlight><highlight class="normal">,<sp/>$url,<sp/>$matches))<sp/>{</highlight></codeline>
<codeline lineno="65"><highlight class="normal"><sp/><sp/><sp/><sp/>$protocol<sp/>=<sp/>$matches[1];</highlight></codeline>
<codeline lineno="66"><highlight class="normal"><sp/><sp/><sp/><sp/>$host<sp/>=<sp/>$matches[2];</highlight></codeline>
<codeline lineno="67"><highlight class="normal"><sp/><sp/><sp/><sp/>$port<sp/>=<sp/>$matches[3];</highlight></codeline>
<codeline lineno="68"><highlight class="normal"><sp/><sp/><sp/><sp/>$use_https<sp/>=<sp/>FALSE;</highlight></codeline>
<codeline lineno="69"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>($protocol<sp/>==<sp/></highlight><highlight class="stringliteral">&apos;https&apos;</highlight><highlight class="normal">)<sp/>{</highlight></codeline>
<codeline lineno="70"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>$use_https<sp/>=<sp/>TRUE;</highlight></codeline>
<codeline lineno="71"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="72"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="73"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Next<sp/>check<sp/>a<sp/>URL<sp/>without<sp/>a<sp/>port.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="74"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="75"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(preg_match(</highlight><highlight class="stringliteral">&apos;/^(.*)\:\/\/(.+?)\/*$/&apos;</highlight><highlight class="normal">,<sp/>$url,<sp/>$matches))<sp/>{</highlight></codeline>
<codeline lineno="76"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>$protocol<sp/>=<sp/>$matches[1];</highlight></codeline>
<codeline lineno="77"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>$host<sp/>=<sp/>$matches[2];</highlight></codeline>
<codeline lineno="78"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>$use_https<sp/>=<sp/>FALSE;</highlight></codeline>
<codeline lineno="79"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>$port<sp/>=<sp/>80;</highlight></codeline>
<codeline lineno="80"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>($protocol<sp/>==<sp/></highlight><highlight class="stringliteral">&apos;https&apos;</highlight><highlight class="normal">)<sp/>{</highlight></codeline>
<codeline lineno="81"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$use_https<sp/>=<sp/>TRUE;</highlight></codeline>
<codeline lineno="82"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$port<sp/>=<sp/>443;</highlight></codeline>
<codeline lineno="83"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="84"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="85"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>For<sp/>simple<sp/>url<sp/>w/port<sp/>ie.<sp/>localhost:8080.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="86"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="87"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(preg_match(</highlight><highlight class="stringliteral">&apos;/(.*)\:(\d+)\/*$/&apos;</highlight><highlight class="normal">,<sp/>$url,<sp/>$matches))<sp/>{</highlight></codeline>
<codeline lineno="88"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$use_https<sp/>=<sp/>FALSE;</highlight></codeline>
<codeline lineno="89"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$host<sp/>=<sp/>$matches[1];</highlight></codeline>
<codeline lineno="90"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$port<sp/>=<sp/>$matches[2];</highlight></codeline>
<codeline lineno="91"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="92"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="93"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="94"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>[</highlight></codeline>
<codeline lineno="95"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;host&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$host,</highlight></codeline>
<codeline lineno="96"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;port&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$port,</highlight></codeline>
<codeline lineno="97"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;use_https&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$use_https,</highlight></codeline>
<codeline lineno="98"><highlight class="normal"><sp/><sp/>];</highlight></codeline>
<codeline lineno="99"><highlight class="normal">}</highlight></codeline>
<codeline lineno="100"><highlight class="normal"></highlight></codeline>
<codeline lineno="123" refid="de/db0/group__tripal__galaxy__api_1gac0e018b1fb585a9d09bbcc0844be3495" refkind="member"><highlight class="keyword">function</highlight><highlight class="normal"><sp/><ref refid="de/db0/group__tripal__galaxy__api_1gac0e018b1fb585a9d09bbcc0844be3495" kindref="member">tripal_galaxy_add_workflow</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>$galaxy_id,<sp/>array<sp/>$values,<sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>$create_webform<sp/>=<sp/>TRUE)<sp/>{</highlight></codeline>
<codeline lineno="124"><highlight class="normal"><sp/><sp/>$transaction<sp/>=<sp/>db_transaction();</highlight></codeline>
<codeline lineno="125"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="126"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Connect<sp/>to<sp/>the<sp/>galaxy<sp/>server.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="127"><highlight class="normal"><sp/><sp/><sp/><sp/>$galaxy<sp/>=<sp/><ref refid="de/db0/group__tripal__galaxy__api_1ga7ecc0a27c271f35edb4aa49d799eb9c9" kindref="member">tripal_galaxy_get_connection</ref>($galaxy_id);</highlight></codeline>
<codeline lineno="128"><highlight class="normal"></highlight></codeline>
<codeline lineno="129"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Get<sp/>the<sp/>workflow<sp/>details<sp/>and<sp/>see<sp/>if<sp/>this<sp/>workflow<sp/>exists.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="130"><highlight class="normal"><sp/><sp/><sp/><sp/>$gworkflows<sp/>=<sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>GalaxyWorkflows($galaxy);</highlight></codeline>
<codeline lineno="131"><highlight class="normal"><sp/><sp/><sp/><sp/>$workflows<sp/>=<sp/>$gworkflows-&gt;index();</highlight></codeline>
<codeline lineno="132"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$workflows)<sp/>{</highlight></codeline>
<codeline lineno="133"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>$error<sp/>=<sp/>$galaxy-&gt;getError();</highlight></codeline>
<codeline lineno="134"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(empty($error[</highlight><highlight class="stringliteral">&apos;message&apos;</highlight><highlight class="normal">]))<sp/>{</highlight></codeline>
<codeline lineno="135"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$error[</highlight><highlight class="stringliteral">&apos;message&apos;</highlight><highlight class="normal">]<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;No<sp/>workflow<sp/>using<sp/>the<sp/>criteria<sp/>provided<sp/>was<sp/>found<sp/>in<sp/>this<sp/>Galaxy<sp/>server.&apos;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="136"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="137"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>drupal_set_message($error[</highlight><highlight class="stringliteral">&apos;message&apos;</highlight><highlight class="normal">],<sp/></highlight><highlight class="stringliteral">&apos;error&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="138"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>FALSE;</highlight></codeline>
<codeline lineno="139"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="140"><highlight class="normal"></highlight></codeline>
<codeline lineno="141"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Loop<sp/>through<sp/>each<sp/>workflow<sp/>to<sp/>add<sp/>it<sp/>to<sp/>the<sp/>form.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="142"><highlight class="normal"><sp/><sp/><sp/><sp/>$found_workflow<sp/>=<sp/>NULL;</highlight></codeline>
<codeline lineno="143"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">foreach</highlight><highlight class="normal"><sp/>($workflows<sp/>as<sp/>$workflow)<sp/>{</highlight></codeline>
<codeline lineno="144"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(array_key_exists(</highlight><highlight class="stringliteral">&apos;workflow_name&apos;</highlight><highlight class="normal">,<sp/>$values)<sp/>and<sp/>$workflow[</highlight><highlight class="stringliteral">&apos;name&apos;</highlight><highlight class="normal">]<sp/>==<sp/>$values[</highlight><highlight class="stringliteral">&apos;workflow_name&apos;</highlight><highlight class="normal">])<sp/>{</highlight></codeline>
<codeline lineno="145"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$found_workflow<sp/>=<sp/>$workflow;</highlight></codeline>
<codeline lineno="146"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="147"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(array_key_exists(</highlight><highlight class="stringliteral">&apos;workflow_id&apos;</highlight><highlight class="normal">,<sp/>$values)<sp/>and<sp/>$workflow[</highlight><highlight class="stringliteral">&apos;id&apos;</highlight><highlight class="normal">]<sp/>==<sp/>$values[</highlight><highlight class="stringliteral">&apos;workflow_id&apos;</highlight><highlight class="normal">])<sp/>{</highlight></codeline>
<codeline lineno="148"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$found_workflow<sp/>=<sp/>$workflow;</highlight></codeline>
<codeline lineno="149"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="150"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="151"><highlight class="normal"></highlight></codeline>
<codeline lineno="152"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$found_workflow)<sp/>{</highlight></codeline>
<codeline lineno="153"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>drupal_set_message(</highlight><highlight class="stringliteral">&apos;No<sp/>workflow<sp/>using<sp/>the<sp/>criteria<sp/>provided<sp/>was<sp/>found<sp/>in<sp/>this<sp/>Galaxy<sp/>server.&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;error&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="154"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>FALSE;</highlight></codeline>
<codeline lineno="155"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="156"><highlight class="normal"></highlight></codeline>
<codeline lineno="157"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Now<sp/>let&apos;s<sp/>check<sp/>to<sp/>see<sp/>if<sp/>this<sp/>workflow<sp/>exists<sp/>in<sp/>the<sp/>database,<sp/>If<sp/>it</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="158"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>exists<sp/>then<sp/>just<sp/>return<sp/>it.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="159"><highlight class="normal"><sp/><sp/><sp/><sp/>$workflow<sp/>=<sp/>db_select(</highlight><highlight class="stringliteral">&apos;tripal_galaxy_workflow&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;tgw&apos;</highlight><highlight class="normal">)-&gt;fields(</highlight><highlight class="stringliteral">&apos;tgw&apos;</highlight><highlight class="normal">)</highlight></codeline>
<codeline lineno="160"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>-&gt;condition(</highlight><highlight class="stringliteral">&apos;tgw.workflow_id&apos;</highlight><highlight class="normal">,<sp/>$found_workflow[</highlight><highlight class="stringliteral">&apos;id&apos;</highlight><highlight class="normal">])</highlight></codeline>
<codeline lineno="161"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>-&gt;condition(</highlight><highlight class="stringliteral">&apos;tgw.galaxy_id&apos;</highlight><highlight class="normal">,<sp/>$galaxy_id)</highlight></codeline>
<codeline lineno="162"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>-&gt;execute()</highlight></codeline>
<codeline lineno="163"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>-&gt;fetchObject();</highlight></codeline>
<codeline lineno="164"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>($workflow)<sp/>{</highlight></codeline>
<codeline lineno="165"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>$workflow;</highlight></codeline>
<codeline lineno="166"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="167"><highlight class="normal"></highlight></codeline>
<codeline lineno="168"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Insert<sp/>the<sp/>workflow.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="169"><highlight class="normal"><sp/><sp/><sp/><sp/>$data<sp/>=<sp/>[</highlight></codeline>
<codeline lineno="170"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;workflow_name&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$found_workflow[</highlight><highlight class="stringliteral">&apos;name&apos;</highlight><highlight class="normal">],</highlight></codeline>
<codeline lineno="171"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;workflow_id&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$found_workflow[</highlight><highlight class="stringliteral">&apos;id&apos;</highlight><highlight class="normal">],</highlight></codeline>
<codeline lineno="172"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;galaxy_id&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$galaxy_id,</highlight></codeline>
<codeline lineno="173"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;workflow_uuid&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$found_workflow[</highlight><highlight class="stringliteral">&apos;latest_workflow_uuid&apos;</highlight><highlight class="normal">],</highlight></codeline>
<codeline lineno="174"><highlight class="normal"><sp/><sp/><sp/><sp/>];</highlight></codeline>
<codeline lineno="175"><highlight class="normal"><sp/><sp/><sp/><sp/>$success<sp/>=<sp/>drupal_write_record(</highlight><highlight class="stringliteral">&apos;tripal_galaxy_workflow&apos;</highlight><highlight class="normal">,<sp/>$data);</highlight></codeline>
<codeline lineno="176"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>($success)<sp/>{</highlight></codeline>
<codeline lineno="177"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>$workflows<sp/>=<sp/><ref refid="de/db0/group__tripal__galaxy__api_1ga8abde38e7305740399ad8559def04c62" kindref="member">tripal_galaxy_get_workflows</ref>([</highlight></codeline>
<codeline lineno="178"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;workflow_id&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$found_workflow[</highlight><highlight class="stringliteral">&apos;id&apos;</highlight><highlight class="normal">],</highlight></codeline>
<codeline lineno="179"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;galaxy_id&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$galaxy_id,</highlight></codeline>
<codeline lineno="180"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>]);</highlight></codeline>
<codeline lineno="181"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>$workflow<sp/>=<sp/>$workflows[0];</highlight></codeline>
<codeline lineno="182"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="183"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="184"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>drupal_set_message(</highlight><highlight class="stringliteral">&apos;Could<sp/>not<sp/>add<sp/>the<sp/>workflow.&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;error&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="185"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>FALSE;</highlight></codeline>
<codeline lineno="186"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="187"><highlight class="normal"></highlight></codeline>
<codeline lineno="188"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>If<sp/>the<sp/>user<sp/>wants<sp/>to<sp/>create<sp/>the<sp/>webform<sp/>for<sp/>end-users<sp/>to<sp/>submit.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="189"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>($create_webform)<sp/>{</highlight></codeline>
<codeline lineno="190"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>module_load_include(</highlight><highlight class="stringliteral">&apos;inc&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;tripal_galaxy&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;includes/tripal_galaxy.webform&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="191"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>$nid<sp/>=<sp/>tripal_galaxy_build_webform($galaxy_id,<sp/>$workflow-&gt;workflow_id);</highlight></codeline>
<codeline lineno="192"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>$num_updated<sp/>=<sp/>db_update(</highlight><highlight class="stringliteral">&apos;tripal_galaxy_workflow&apos;</highlight><highlight class="normal">)-&gt;fields([</highlight></codeline>
<codeline lineno="193"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;nid&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$nid,</highlight></codeline>
<codeline lineno="194"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>])</highlight></codeline>
<codeline lineno="195"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-&gt;condition(</highlight><highlight class="stringliteral">&apos;workflow_id&apos;</highlight><highlight class="normal">,<sp/>$workflow-&gt;workflow_id)</highlight></codeline>
<codeline lineno="196"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-&gt;condition(</highlight><highlight class="stringliteral">&apos;galaxy_id&apos;</highlight><highlight class="normal">,<sp/>$galaxy_id)</highlight></codeline>
<codeline lineno="197"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-&gt;execute();</highlight></codeline>
<codeline lineno="198"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>$workflow-&gt;nid<sp/>=<sp/>$nid;</highlight></codeline>
<codeline lineno="199"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="200"><highlight class="normal"></highlight></codeline>
<codeline lineno="201"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>$workflow;</highlight></codeline>
<codeline lineno="202"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="203"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">catch</highlight><highlight class="normal"><sp/>(Exception<sp/>$e)<sp/>{</highlight></codeline>
<codeline lineno="204"><highlight class="normal"><sp/><sp/><sp/><sp/>$transaction-&gt;rollback();</highlight></codeline>
<codeline lineno="205"><highlight class="normal"><sp/><sp/><sp/><sp/>tripal_report_error(</highlight><highlight class="stringliteral">&apos;tripal_galaxy&apos;</highlight><highlight class="normal">,<sp/>TRIPAL_ERROR,<sp/></highlight><highlight class="stringliteral">&apos;Unable<sp/>to<sp/>import<sp/>Galaxy<sp/>workflow&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="206"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>FALSE;</highlight></codeline>
<codeline lineno="207"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="208"><highlight class="normal">}</highlight></codeline>
<codeline lineno="209"><highlight class="normal"></highlight></codeline>
<codeline lineno="233" refid="de/db0/group__tripal__galaxy__api_1ga8abde38e7305740399ad8559def04c62" refkind="member"><highlight class="keyword">function</highlight><highlight class="normal"><sp/><ref refid="de/db0/group__tripal__galaxy__api_1ga8abde38e7305740399ad8559def04c62" kindref="member">tripal_galaxy_get_workflows</ref>(array<sp/>$values<sp/>=<sp/>[])<sp/>{</highlight></codeline>
<codeline lineno="234"><highlight class="normal"><sp/><sp/>$workflows<sp/>=<sp/>[];</highlight></codeline>
<codeline lineno="235"><highlight class="normal"></highlight></codeline>
<codeline lineno="236"><highlight class="normal"><sp/><sp/>$query<sp/>=<sp/>db_select(</highlight><highlight class="stringliteral">&apos;tripal_galaxy_workflow&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;tgw&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="237"><highlight class="normal"><sp/><sp/>$query-&gt;fields(</highlight><highlight class="stringliteral">&apos;tgw&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="238"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(array_key_exists(</highlight><highlight class="stringliteral">&apos;galaxy_id&apos;</highlight><highlight class="normal">,<sp/>$values))<sp/>{</highlight></codeline>
<codeline lineno="239"><highlight class="normal"><sp/><sp/><sp/><sp/>$query-&gt;condition(</highlight><highlight class="stringliteral">&apos;tgw.galaxy_id&apos;</highlight><highlight class="normal">,<sp/>$values[</highlight><highlight class="stringliteral">&apos;galaxy_id&apos;</highlight><highlight class="normal">]);</highlight></codeline>
<codeline lineno="240"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="241"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(array_key_exists(</highlight><highlight class="stringliteral">&apos;id&apos;</highlight><highlight class="normal">,<sp/>$values))<sp/>{</highlight></codeline>
<codeline lineno="242"><highlight class="normal"><sp/><sp/><sp/><sp/>$query-&gt;condition(</highlight><highlight class="stringliteral">&apos;tgw.galaxy_workflow_id&apos;</highlight><highlight class="normal">,<sp/>$values[</highlight><highlight class="stringliteral">&apos;id&apos;</highlight><highlight class="normal">]);</highlight></codeline>
<codeline lineno="243"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="244"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(array_key_exists(</highlight><highlight class="stringliteral">&apos;name&apos;</highlight><highlight class="normal">,<sp/>$values))<sp/>{</highlight></codeline>
<codeline lineno="245"><highlight class="normal"><sp/><sp/><sp/><sp/>$query-&gt;condition(</highlight><highlight class="stringliteral">&apos;tgw.workflow_name&apos;</highlight><highlight class="normal">,<sp/>$values[</highlight><highlight class="stringliteral">&apos;name&apos;</highlight><highlight class="normal">]);</highlight></codeline>
<codeline lineno="246"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="247"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(array_key_exists(</highlight><highlight class="stringliteral">&apos;workflow_id&apos;</highlight><highlight class="normal">,<sp/>$values))<sp/>{</highlight></codeline>
<codeline lineno="248"><highlight class="normal"><sp/><sp/><sp/><sp/>$query-&gt;condition(</highlight><highlight class="stringliteral">&apos;tgw.workflow_id&apos;</highlight><highlight class="normal">,<sp/>$values[</highlight><highlight class="stringliteral">&apos;workflow_id&apos;</highlight><highlight class="normal">]);</highlight></codeline>
<codeline lineno="249"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="250"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(array_key_exists(</highlight><highlight class="stringliteral">&apos;status&apos;</highlight><highlight class="normal">,<sp/>$values))<sp/>{</highlight></codeline>
<codeline lineno="251"><highlight class="normal"><sp/><sp/><sp/><sp/>$query-&gt;condition(</highlight><highlight class="stringliteral">&apos;tgw.status&apos;</highlight><highlight class="normal">,<sp/>$values[</highlight><highlight class="stringliteral">&apos;status&apos;</highlight><highlight class="normal">]);</highlight></codeline>
<codeline lineno="252"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="253"><highlight class="normal"><sp/><sp/>$results<sp/>=<sp/>$query-&gt;execute();</highlight></codeline>
<codeline lineno="254"><highlight class="normal"></highlight></codeline>
<codeline lineno="255"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>($workflow<sp/>=<sp/>$results-&gt;fetchObject())<sp/>{</highlight></codeline>
<codeline lineno="256"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>($workflow-&gt;nid)<sp/>{</highlight></codeline>
<codeline lineno="257"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>$node<sp/>=<sp/>node_load($workflow-&gt;nid);</highlight></codeline>
<codeline lineno="258"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>$workflow-&gt;node_title<sp/>=<sp/>$node-&gt;title;</highlight></codeline>
<codeline lineno="259"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="260"><highlight class="normal"><sp/><sp/><sp/><sp/>$workflows[]<sp/>=<sp/>$workflow;</highlight></codeline>
<codeline lineno="261"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="262"><highlight class="normal"></highlight></codeline>
<codeline lineno="263"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>$workflows;</highlight></codeline>
<codeline lineno="264"><highlight class="normal">}</highlight></codeline>
<codeline lineno="265"><highlight class="normal"></highlight></codeline>
<codeline lineno="282" refid="de/db0/group__tripal__galaxy__api_1ga402915ec024f4de2df5d437c901e69da" refkind="member"><highlight class="keyword">function</highlight><highlight class="normal"><sp/><ref refid="de/db0/group__tripal__galaxy__api_1ga402915ec024f4de2df5d437c901e69da" kindref="member">tripal_galaxy_init_submission</ref>($workflow,<sp/>$user)<sp/>{</highlight></codeline>
<codeline lineno="283"><highlight class="normal"><sp/><sp/>$transaction<sp/>=<sp/>db_transaction();</highlight></codeline>
<codeline lineno="284"><highlight class="normal"></highlight></codeline>
<codeline lineno="285"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="286"><highlight class="normal"><sp/><sp/><sp/><sp/>$data<sp/>=<sp/>[</highlight></codeline>
<codeline lineno="287"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;galaxy_workflow_id&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$workflow-&gt;galaxy_workflow_id,</highlight></codeline>
<codeline lineno="288"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;errors&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="289"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;submit_date&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>REQUEST_TIME,</highlight></codeline>
<codeline lineno="290"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;status&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/></highlight><highlight class="stringliteral">&apos;Waiting&apos;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="291"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;uid&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$user-&gt;uid,</highlight></codeline>
<codeline lineno="292"><highlight class="normal"><sp/><sp/><sp/><sp/>];</highlight></codeline>
<codeline lineno="293"><highlight class="normal"></highlight></codeline>
<codeline lineno="294"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Now<sp/>insert<sp/>the<sp/>submission<sp/>into<sp/>the<sp/>database.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="295"><highlight class="normal"><sp/><sp/><sp/><sp/>$sid<sp/>=<sp/>db_insert(</highlight><highlight class="stringliteral">&apos;tripal_galaxy_workflow_submission&apos;</highlight><highlight class="normal">)-&gt;fields($data)-&gt;execute();</highlight></codeline>
<codeline lineno="296"><highlight class="normal"></highlight></codeline>
<codeline lineno="297"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>$sid;</highlight></codeline>
<codeline lineno="298"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="299"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">catch</highlight><highlight class="normal"><sp/>(Exception<sp/>$e)<sp/>{</highlight></codeline>
<codeline lineno="300"><highlight class="normal"><sp/><sp/><sp/><sp/>$transaction-&gt;rollback();</highlight></codeline>
<codeline lineno="301"><highlight class="normal"><sp/><sp/><sp/><sp/>tripal_report_error(</highlight><highlight class="stringliteral">&apos;tripal_galaxy&apos;</highlight><highlight class="normal">,<sp/>TRIPAL_ERROR,<sp/></highlight><highlight class="stringliteral">&apos;Unable<sp/>to<sp/>create<sp/>Galaxy<sp/>workflow<sp/>submission&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="302"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>FALSE;</highlight></codeline>
<codeline lineno="303"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="304"><highlight class="normal">}</highlight></codeline>
<codeline lineno="305"><highlight class="normal"></highlight></codeline>
<codeline lineno="325" refid="de/db0/group__tripal__galaxy__api_1gaf8ee6e07586607a7a28bae4bc6d4f315" refkind="member"><highlight class="keyword">function</highlight><highlight class="normal"><sp/><ref refid="de/db0/group__tripal__galaxy__api_1gaf8ee6e07586607a7a28bae4bc6d4f315" kindref="member">tripal_galaxy_get_submission</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>$sid)<sp/>{</highlight></codeline>
<codeline lineno="326"><highlight class="normal"><sp/><sp/>$query<sp/>=<sp/>db_select(</highlight><highlight class="stringliteral">&apos;tripal_galaxy_workflow_submission&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;tgws&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="327"><highlight class="normal"><sp/><sp/>$query-&gt;fields(</highlight><highlight class="stringliteral">&apos;tgws&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="328"><highlight class="normal"><sp/><sp/>$query-&gt;join(</highlight><highlight class="stringliteral">&apos;tripal_galaxy_workflow&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;tgw&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;tgw.galaxy_workflow_id<sp/>=<sp/>tgws.galaxy_workflow_id&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="329"><highlight class="normal"><sp/><sp/>$query-&gt;fields(</highlight><highlight class="stringliteral">&apos;tgw&apos;</highlight><highlight class="normal">,<sp/>[</highlight></codeline>
<codeline lineno="330"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;galaxy_id&apos;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="331"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;workflow_id&apos;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="332"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;nid&apos;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="333"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;workflow_name&apos;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="334"><highlight class="normal"><sp/><sp/>]);</highlight></codeline>
<codeline lineno="335"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Do<sp/>a<sp/>left-join<sp/>on<sp/>the<sp/>node<sp/>to<sp/>get<sp/>the<sp/>title<sp/>for<sp/>the<sp/>webform<sp/>but<sp/>in</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="336"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>the<sp/>event<sp/>this<sp/>submission<sp/>did<sp/>not<sp/>use<sp/>a<sp/>webform<sp/>the<sp/>left<sp/>join<sp/>will</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="337"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>proivde<sp/>a<sp/>NULL<sp/>value<sp/>for<sp/>the<sp/>webform<sp/>title.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="338"><highlight class="normal"><sp/><sp/>$query-&gt;leftJoin(</highlight><highlight class="stringliteral">&apos;node&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="charliteral">&apos;n&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;(n.nid<sp/>=<sp/>tgw.nid)&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="339"><highlight class="normal"><sp/><sp/>$query-&gt;addField(</highlight><highlight class="charliteral">&apos;n&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;title&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;webform_title&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="340"><highlight class="normal"><sp/><sp/>$query-&gt;condition(</highlight><highlight class="stringliteral">&apos;tgws.sid&apos;</highlight><highlight class="normal">,<sp/>$sid);</highlight></codeline>
<codeline lineno="341"><highlight class="normal"><sp/><sp/>$submission<sp/>=<sp/>$query-&gt;execute()-&gt;fetchObject();</highlight></codeline>
<codeline lineno="342"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$submission)<sp/>{</highlight></codeline>
<codeline lineno="343"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>NULL;</highlight></codeline>
<codeline lineno="344"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="345"><highlight class="normal"><sp/><sp/>$submission-&gt;errors<sp/>=<sp/>!empty($submission-&gt;errors)<sp/>?<sp/>unserialize($submission-&gt;errors)<sp/>:<sp/>[];</highlight></codeline>
<codeline lineno="346"><highlight class="normal"></highlight></codeline>
<codeline lineno="347"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Now<sp/>add<sp/>the<sp/>workflow<sp/>details:</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="348"><highlight class="normal"><sp/><sp/>$workflows<sp/>=<sp/><ref refid="de/db0/group__tripal__galaxy__api_1ga8abde38e7305740399ad8559def04c62" kindref="member">tripal_galaxy_get_workflows</ref>([</highlight><highlight class="stringliteral">&apos;id&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$submission-&gt;galaxy_workflow_id]);</highlight></codeline>
<codeline lineno="349"><highlight class="normal"><sp/><sp/>$workflow<sp/>=<sp/>$workflows[0];</highlight></codeline>
<codeline lineno="350"><highlight class="normal"><sp/><sp/>$submission-&gt;workflow<sp/>=<sp/>$workflow;</highlight></codeline>
<codeline lineno="351"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>$submission;</highlight></codeline>
<codeline lineno="352"><highlight class="normal">}</highlight></codeline>
<codeline lineno="353"><highlight class="normal"></highlight></codeline>
<codeline lineno="365" refid="de/db0/group__tripal__galaxy__api_1gaff8c487209d466050e3dd2fc7c8374f9" refkind="member"><highlight class="keyword">function</highlight><highlight class="normal"><sp/><ref refid="de/db0/group__tripal__galaxy__api_1gaff8c487209d466050e3dd2fc7c8374f9" kindref="member">tripal_galaxy_get_galaxies</ref>()<sp/>{</highlight></codeline>
<codeline lineno="366"><highlight class="normal"><sp/><sp/>$galaxies<sp/>=<sp/>[];</highlight></codeline>
<codeline lineno="367"><highlight class="normal"><sp/><sp/>$results<sp/>=<sp/>db_select(</highlight><highlight class="stringliteral">&apos;tripal_galaxy&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;tg&apos;</highlight><highlight class="normal">)-&gt;fields(</highlight><highlight class="stringliteral">&apos;tg&apos;</highlight><highlight class="normal">)-&gt;execute();</highlight></codeline>
<codeline lineno="368"><highlight class="normal"></highlight></codeline>
<codeline lineno="369"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>($galaxy<sp/>=<sp/>$results-&gt;fetchObject())<sp/>{</highlight></codeline>
<codeline lineno="370"><highlight class="normal"><sp/><sp/><sp/><sp/>$galaxies[]<sp/>=<sp/>$galaxy;</highlight></codeline>
<codeline lineno="371"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="372"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>$galaxies;</highlight></codeline>
<codeline lineno="373"><highlight class="normal">}</highlight></codeline>
<codeline lineno="374"><highlight class="normal"></highlight></codeline>
<codeline lineno="391" refid="de/db0/group__tripal__galaxy__api_1ga9ab413a396a4a875c1126ccde8ade9f3" refkind="member"><highlight class="keyword">function</highlight><highlight class="normal"><sp/><ref refid="de/db0/group__tripal__galaxy__api_1ga9ab413a396a4a875c1126ccde8ade9f3" kindref="member">tripal_galaxy_get_galaxy</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>$galaxy_id)<sp/>{</highlight></codeline>
<codeline lineno="392"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$galaxy_id)<sp/>{</highlight></codeline>
<codeline lineno="393"><highlight class="normal"><sp/><sp/><sp/><sp/>tripal_report_error(</highlight><highlight class="stringliteral">&apos;tripal_galaxy&apos;</highlight><highlight class="normal">,<sp/>TRIPAL_ERROR,<sp/></highlight><highlight class="stringliteral">&apos;tripal_galaxy_get_galaxy:<sp/>missing<sp/>required<sp/>field<sp/>&quot;$galaxy_id&quot;&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="394"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>FALSE;</highlight></codeline>
<codeline lineno="395"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="396"><highlight class="normal"></highlight></codeline>
<codeline lineno="397"><highlight class="normal"><sp/><sp/>$galaxies<sp/>=<sp/>[];</highlight></codeline>
<codeline lineno="398"><highlight class="normal"><sp/><sp/>$galaxy<sp/>=<sp/>db_select(</highlight><highlight class="stringliteral">&apos;tripal_galaxy&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;tg&apos;</highlight><highlight class="normal">)-&gt;fields(</highlight><highlight class="stringliteral">&apos;tg&apos;</highlight><highlight class="normal">)</highlight></codeline>
<codeline lineno="399"><highlight class="normal"><sp/><sp/><sp/><sp/>-&gt;condition(</highlight><highlight class="stringliteral">&apos;galaxy_id&apos;</highlight><highlight class="normal">,<sp/>$galaxy_id)</highlight></codeline>
<codeline lineno="400"><highlight class="normal"><sp/><sp/><sp/><sp/>-&gt;execute()</highlight></codeline>
<codeline lineno="401"><highlight class="normal"><sp/><sp/><sp/><sp/>-&gt;fetchObject();</highlight></codeline>
<codeline lineno="402"><highlight class="normal"></highlight></codeline>
<codeline lineno="403"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>$galaxy;</highlight></codeline>
<codeline lineno="404"><highlight class="normal">}</highlight></codeline>
<codeline lineno="405"><highlight class="normal"></highlight></codeline>
<codeline lineno="426" refid="de/db0/group__tripal__galaxy__api_1gab8c1fff132bd8085a3402283208ee422" refkind="member"><highlight class="keyword">function</highlight><highlight class="normal"><sp/><ref refid="de/db0/group__tripal__galaxy__api_1gab8c1fff132bd8085a3402283208ee422" kindref="member">tripal_galaxy_add_galaxy</ref>(array<sp/>$values)<sp/>{</highlight></codeline>
<codeline lineno="427"><highlight class="normal"><sp/><sp/>$required_args<sp/>=<sp/>[</highlight></codeline>
<codeline lineno="428"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;servername&apos;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="429"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;url&apos;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="430"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;username&apos;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="431"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;api_key&apos;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="432"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;uid&apos;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="433"><highlight class="normal"><sp/><sp/>];</highlight></codeline>
<codeline lineno="434"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">foreach</highlight><highlight class="normal"><sp/>($required_args<sp/>as<sp/>$key)<sp/>{</highlight></codeline>
<codeline lineno="435"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!array_key_exists($key,<sp/>$values))<sp/>{</highlight></codeline>
<codeline lineno="436"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>tripal_report_error(</highlight><highlight class="stringliteral">&apos;tripal_galaxy&apos;</highlight><highlight class="normal">,<sp/>TRIPAL_ERROR,<sp/></highlight><highlight class="stringliteral">&apos;tripal_galaxy_add_galaxy:<sp/>missing<sp/>required<sp/>field<sp/>&quot;&apos;</highlight><highlight class="normal"><sp/>.<sp/>$key<sp/>.<sp/></highlight><highlight class="charliteral">&apos;&quot;&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="437"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>FALSE;</highlight></codeline>
<codeline lineno="438"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="439"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="440"><highlight class="normal"></highlight></codeline>
<codeline lineno="441"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>The<sp/>servername<sp/>can&apos;t<sp/>already<sp/>exist.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="442"><highlight class="normal"><sp/><sp/>$exists<sp/>=<sp/>db_select(</highlight><highlight class="stringliteral">&apos;tripal_galaxy&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;tg&apos;</highlight><highlight class="normal">)-&gt;fields(</highlight><highlight class="stringliteral">&apos;tg&apos;</highlight><highlight class="normal">)</highlight></codeline>
<codeline lineno="443"><highlight class="normal"><sp/><sp/><sp/><sp/>-&gt;condition(</highlight><highlight class="stringliteral">&apos;servername&apos;</highlight><highlight class="normal">,<sp/>$values[</highlight><highlight class="stringliteral">&apos;servername&apos;</highlight><highlight class="normal">])</highlight></codeline>
<codeline lineno="444"><highlight class="normal"><sp/><sp/><sp/><sp/>-&gt;execute()</highlight></codeline>
<codeline lineno="445"><highlight class="normal"><sp/><sp/><sp/><sp/>-&gt;fetchObject();</highlight></codeline>
<codeline lineno="446"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>($exists)<sp/>{</highlight></codeline>
<codeline lineno="447"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>$exists;</highlight></codeline>
<codeline lineno="448"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="449"><highlight class="normal"></highlight></codeline>
<codeline lineno="450"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Create<sp/>the<sp/>element.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="451"><highlight class="normal"><sp/><sp/>$data<sp/>=<sp/>array(</highlight></codeline>
<codeline lineno="452"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;servername&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$values[</highlight><highlight class="stringliteral">&apos;servername&apos;</highlight><highlight class="normal">],</highlight></codeline>
<codeline lineno="453"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;description&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$values[</highlight><highlight class="stringliteral">&apos;description&apos;</highlight><highlight class="normal">],</highlight></codeline>
<codeline lineno="454"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;url&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$values[</highlight><highlight class="stringliteral">&apos;url&apos;</highlight><highlight class="normal">],</highlight></codeline>
<codeline lineno="455"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;username&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$values[</highlight><highlight class="stringliteral">&apos;username&apos;</highlight><highlight class="normal">],</highlight></codeline>
<codeline lineno="456"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;api_key&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$values[</highlight><highlight class="stringliteral">&apos;api_key&apos;</highlight><highlight class="normal">],</highlight></codeline>
<codeline lineno="457"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;uid&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$values[</highlight><highlight class="stringliteral">&apos;uid&apos;</highlight><highlight class="normal">],</highlight></codeline>
<codeline lineno="458"><highlight class="normal"><sp/><sp/>);</highlight></codeline>
<codeline lineno="459"><highlight class="normal"><sp/><sp/>drupal_write_record(</highlight><highlight class="stringliteral">&apos;tripal_galaxy&apos;</highlight><highlight class="normal">,<sp/>$data);</highlight></codeline>
<codeline lineno="460"><highlight class="normal"></highlight></codeline>
<codeline lineno="461"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="de/db0/group__tripal__galaxy__api_1ga9ab413a396a4a875c1126ccde8ade9f3" kindref="member">tripal_galaxy_get_galaxy</ref>($data[</highlight><highlight class="stringliteral">&apos;galaxy_id&apos;</highlight><highlight class="normal">]);</highlight></codeline>
<codeline lineno="462"><highlight class="normal">}</highlight></codeline>
<codeline lineno="463"><highlight class="normal"></highlight></codeline>
<codeline lineno="472" refid="de/db0/group__tripal__galaxy__api_1gab25d14cbae238d1d2375db470d39fe42" refkind="member"><highlight class="keyword">function</highlight><highlight class="normal"><sp/><ref refid="de/db0/group__tripal__galaxy__api_1gab25d14cbae238d1d2375db470d39fe42" kindref="member">tripal_galaxy_get_active_submissions</ref>()<sp/>{</highlight></codeline>
<codeline lineno="473"><highlight class="normal"><sp/><sp/>$query<sp/>=<sp/>db_select(</highlight><highlight class="stringliteral">&apos;tripal_galaxy_workflow_submission&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;tgws&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="474"><highlight class="normal"><sp/><sp/>$query-&gt;fields(</highlight><highlight class="stringliteral">&apos;tgws&apos;</highlight><highlight class="normal">,<sp/>[</highlight></codeline>
<codeline lineno="475"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;invocation_id&apos;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="476"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;galaxy_workflow_id&apos;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="477"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;sid&apos;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="478"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;submit_date&apos;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="479"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;status&apos;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="480"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;email&apos;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="481"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;uid&apos;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="482"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;errors&apos;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="483"><highlight class="normal"><sp/><sp/>]);</highlight></codeline>
<codeline lineno="484"><highlight class="normal"><sp/><sp/>$query-&gt;join(</highlight><highlight class="stringliteral">&apos;tripal_galaxy_workflow&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;tgw&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;tgw.galaxy_workflow_id<sp/>=<sp/>tgws.galaxy_workflow_id&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="485"><highlight class="normal"><sp/><sp/>$query-&gt;fields(</highlight><highlight class="stringliteral">&apos;tgw&apos;</highlight><highlight class="normal">,<sp/>[</highlight><highlight class="stringliteral">&apos;galaxy_id&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;workflow_id&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;nid&apos;</highlight><highlight class="normal">]);</highlight></codeline>
<codeline lineno="486"><highlight class="normal"><sp/><sp/>$query-&gt;leftJoin(</highlight><highlight class="stringliteral">&apos;node&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="charliteral">&apos;n&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;(n.nid<sp/>=<sp/>tgw.nid)&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="487"><highlight class="normal"><sp/><sp/>$query-&gt;addField(</highlight><highlight class="charliteral">&apos;n&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;title&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;webform_title&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="488"><highlight class="normal"><sp/><sp/>$query-&gt;condition(</highlight><highlight class="stringliteral">&apos;tgws.status&apos;</highlight><highlight class="normal">,<sp/>[</highlight><highlight class="stringliteral">&apos;Error&apos;</highlight><highlight class="normal">,</highlight><highlight class="stringliteral">&apos;Completed&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;Deleted&apos;</highlight><highlight class="normal">],<sp/></highlight><highlight class="stringliteral">&apos;NOT<sp/>IN&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="489"><highlight class="normal"><sp/><sp/>$results<sp/>=<sp/>$query-&gt;execute();</highlight></codeline>
<codeline lineno="490"><highlight class="normal"></highlight></codeline>
<codeline lineno="491"><highlight class="normal"><sp/><sp/>$submissions<sp/>=<sp/>[];</highlight></codeline>
<codeline lineno="492"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>($submission<sp/>=<sp/>$results-&gt;fetchObject())<sp/>{</highlight></codeline>
<codeline lineno="493"><highlight class="normal"><sp/><sp/><sp/><sp/>$submission-&gt;errors<sp/>=<sp/>$submission-&gt;errors<sp/>?<sp/>unserialize($submission-&gt;errors)<sp/>:<sp/>[];</highlight></codeline>
<codeline lineno="494"><highlight class="normal"><sp/><sp/><sp/><sp/>$submissions[]<sp/>=<sp/>$submission;</highlight></codeline>
<codeline lineno="495"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="496"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>$submissions;</highlight></codeline>
<codeline lineno="497"><highlight class="normal">}</highlight></codeline>
<codeline lineno="498"><highlight class="normal"></highlight></codeline>
<codeline lineno="515" refid="de/db0/group__tripal__galaxy__api_1gaa666f881b052ec82ed674da24eb100c2" refkind="member"><highlight class="keyword">function</highlight><highlight class="normal"><sp/><ref refid="de/db0/group__tripal__galaxy__api_1gaa666f881b052ec82ed674da24eb100c2" kindref="member">tripal_galaxy_check_submission_status</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>$sid<sp/>=<sp/>NULL,<sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>$force<sp/>=<sp/>FALSE)<sp/>{</highlight></codeline>
<codeline lineno="516"><highlight class="normal"><sp/><sp/>$submissions<sp/>=<sp/>[];</highlight></codeline>
<codeline lineno="517"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$sid)<sp/>{</highlight></codeline>
<codeline lineno="518"><highlight class="normal"><sp/><sp/><sp/><sp/>$submissions<sp/>=<sp/><ref refid="de/db0/group__tripal__galaxy__api_1gab25d14cbae238d1d2375db470d39fe42" kindref="member">tripal_galaxy_get_active_submissions</ref>();</highlight></codeline>
<codeline lineno="519"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="520"><highlight class="normal"><sp/><sp/>elseif<sp/>($sid<sp/>&amp;&amp;<sp/>!is_numeric($sid))<sp/>{</highlight></codeline>
<codeline lineno="521"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>Exception(</highlight><highlight class="stringliteral">&apos;tripal_galaxy_check_submission_status():<sp/>The<sp/>$sid<sp/>argument<sp/>is<sp/>not<sp/>numeric&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="522"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="523"><highlight class="normal"><sp/><sp/>elseif<sp/>($sid)<sp/>{</highlight></codeline>
<codeline lineno="524"><highlight class="normal"><sp/><sp/><sp/><sp/>$submission<sp/>=<sp/><ref refid="de/db0/group__tripal__galaxy__api_1gaf8ee6e07586607a7a28bae4bc6d4f315" kindref="member">tripal_galaxy_get_submission</ref>($sid);</highlight></codeline>
<codeline lineno="525"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$submission)<sp/>{</highlight></codeline>
<codeline lineno="526"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>Exception(</highlight><highlight class="stringliteral">&apos;The<sp/>provided<sp/>submission<sp/>ID<sp/>does<sp/>not<sp/>exist&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="527"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="528"><highlight class="normal"><sp/><sp/><sp/><sp/>$submissions[]<sp/>=<sp/>$submission;</highlight></codeline>
<codeline lineno="529"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="530"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">foreach</highlight><highlight class="normal"><sp/>($submissions<sp/>as<sp/>$submission)<sp/>{</highlight></codeline>
<codeline lineno="531"><highlight class="normal"><sp/><sp/><sp/><sp/>$status<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="532"><highlight class="normal"></highlight></codeline>
<codeline lineno="533"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>If<sp/>the<sp/>job<sp/>hasn&apos;t<sp/>yet<sp/>been<sp/>invoked<sp/>then<sp/>skip<sp/>it.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="534"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$submission-&gt;invocation_id)<sp/>{</highlight></codeline>
<codeline lineno="535"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">continue</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="536"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="537"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>If<sp/>the<sp/>job<sp/>is<sp/>complete<sp/>skip<sp/>it<sp/>unless<sp/>$force<sp/>is<sp/>set<sp/>to<sp/>TRUE.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="538"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>($submission-&gt;status<sp/>==<sp/></highlight><highlight class="stringliteral">&apos;Completed&apos;</highlight><highlight class="normal"><sp/>and<sp/>!$force)<sp/>{</highlight></codeline>
<codeline lineno="539"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">continue</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="540"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="541"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>If<sp/>the<sp/>job<sp/>is<sp/>deleted<sp/>skip<sp/>it<sp/>unless<sp/>$force<sp/>is<sp/>set<sp/>to<sp/>TRUE.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="542"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>($submission-&gt;status<sp/>==<sp/></highlight><highlight class="stringliteral">&apos;Deleted&apos;</highlight><highlight class="normal"><sp/>and<sp/>!$force)<sp/>{</highlight></codeline>
<codeline lineno="543"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">continue</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="544"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="545"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>There<sp/>is<sp/>no<sp/>submission<sp/>go<sp/>no<sp/>further,<sp/>danger<sp/>Will<sp/>Robinson.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="546"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>($submission<sp/>===<sp/>NULL)<sp/>{</highlight></codeline>
<codeline lineno="547"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">continue</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="548"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="549"><highlight class="normal"></highlight></codeline>
<codeline lineno="550"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Connect<sp/>to<sp/>the<sp/>Galaxy<sp/>instance.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="551"><highlight class="normal"><sp/><sp/><sp/><sp/>$galaxy<sp/>=<sp/><ref refid="de/db0/group__tripal__galaxy__api_1ga7ecc0a27c271f35edb4aa49d799eb9c9" kindref="member">tripal_galaxy_get_connection</ref>($submission-&gt;galaxy_id);</highlight></codeline>
<codeline lineno="552"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$galaxy)<sp/>{</highlight></codeline>
<codeline lineno="553"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>$error<sp/>=<sp/>$galaxy-&gt;getError();</highlight></codeline>
<codeline lineno="554"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>drupal_set_message(</highlight><highlight class="stringliteral">&apos;Could<sp/>not<sp/>connect<sp/>to<sp/>Galaxy<sp/>server.<sp/>&apos;</highlight><highlight class="normal"><sp/>.<sp/>$error[</highlight><highlight class="stringliteral">&apos;message&apos;</highlight><highlight class="normal">],<sp/></highlight><highlight class="stringliteral">&apos;error&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="555"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>FALSE;</highlight></codeline>
<codeline lineno="556"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="557"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Get<sp/>the<sp/>invocation<sp/>specified.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="558"><highlight class="normal"><sp/><sp/><sp/><sp/>$gworkflows<sp/>=<sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>GalaxyWorkflows($galaxy);</highlight></codeline>
<codeline lineno="559"><highlight class="normal"><sp/><sp/><sp/><sp/>$invocation<sp/>=<sp/>$gworkflows-&gt;showInvocations([</highlight></codeline>
<codeline lineno="560"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;workflow_id&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$submission-&gt;workflow_id,</highlight></codeline>
<codeline lineno="561"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;invocation_id&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$submission-&gt;invocation_id,</highlight></codeline>
<codeline lineno="562"><highlight class="normal"><sp/><sp/><sp/><sp/>]);</highlight></codeline>
<codeline lineno="563"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$invocation)<sp/>{</highlight></codeline>
<codeline lineno="564"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>Exception($galaxy-&gt;getErrorMessage());</highlight></codeline>
<codeline lineno="565"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="566"><highlight class="normal"><sp/><sp/><sp/><sp/>$end_time<sp/>=<sp/>NULL;</highlight></codeline>
<codeline lineno="567"><highlight class="normal"><sp/><sp/><sp/><sp/>$update_time<sp/>=<sp/>date_create_from_format(</highlight><highlight class="stringliteral">&apos;Y-m-d*G:i:s.ue&apos;</highlight><highlight class="normal">,<sp/>$invocation[</highlight><highlight class="stringliteral">&apos;update_time&apos;</highlight><highlight class="normal">]<sp/>.<sp/></highlight><highlight class="stringliteral">&apos;UTC&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="568"><highlight class="normal"></highlight></codeline>
<codeline lineno="569"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Find<sp/>the<sp/>History<sp/>for<sp/>this<sp/>submission.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="570"><highlight class="normal"><sp/><sp/><sp/><sp/>$invocation_info<sp/>=<sp/>[];</highlight></codeline>
<codeline lineno="571"><highlight class="normal"></highlight></codeline>
<codeline lineno="572"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>($submission-&gt;errors)<sp/>{</highlight></codeline>
<codeline lineno="573"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>$history_name<sp/>=<sp/>$submission-&gt;errors[</highlight><highlight class="stringliteral">&apos;history&apos;</highlight><highlight class="normal">][</highlight><highlight class="stringliteral">&apos;name&apos;</highlight><highlight class="normal">];</highlight></codeline>
<codeline lineno="574"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>($history_name)<sp/>{</highlight></codeline>
<codeline lineno="575"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$history<sp/>=<sp/><ref refid="de/db0/group__tripal__galaxy__api_1gab81573a1e45464b19d9a2c32520bbf87" kindref="member">tripal_galaxy_get_history</ref>($galaxy,<sp/>$history_name);</highlight></codeline>
<codeline lineno="576"><highlight class="normal"></highlight></codeline>
<codeline lineno="577"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>If<sp/>the<sp/>history<sp/>doesn&apos;t<sp/>exist<sp/>then<sp/>it<sp/>must<sp/>have<sp/>been<sp/>deleted.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="578"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$history)<sp/>{</highlight></codeline>
<codeline lineno="579"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$status<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;Deleted&apos;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="580"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="581"><highlight class="normal"></highlight></codeline>
<codeline lineno="582"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Check<sp/>state<sp/>details<sp/>for<sp/>all<sp/>jobs</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="583"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>valid<sp/>state<sp/>names<sp/>are:<sp/><sp/>paused,<sp/>ok,<sp/>failed_metadata,<sp/>upload,</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="584"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>discarded,<sp/>running,<sp/>setting_metadata,<sp/>error,<sp/>queued,<sp/><sp/>empty.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="585"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>&apos;ok&apos;<sp/>state<sp/>has<sp/>value<sp/>larger<sp/>than<sp/>0<sp/>and<sp/>all<sp/>other<sp/>states&apos;<sp/>values<sp/>being</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="586"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>0,<sp/>then<sp/>this<sp/>history<sp/>has<sp/>completed<sp/>successfully.<sp/>We<sp/>can<sp/>set<sp/>the<sp/>$status<sp/>=</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="587"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>&apos;Completed&apos;.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="588"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>($history)<sp/>{</highlight></codeline>
<codeline lineno="589"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Get<sp/>greater<sp/>details<sp/>about<sp/>this<sp/>history</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="590"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$ghistories<sp/>=<sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>GalaxyHistories($galaxy);</highlight></codeline>
<codeline lineno="591"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$history_info<sp/>=<sp/>$ghistories-&gt;show([</highlight></codeline>
<codeline lineno="592"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;history_id&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$history[</highlight><highlight class="stringliteral">&apos;id&apos;</highlight><highlight class="normal">],</highlight></codeline>
<codeline lineno="593"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>]);</highlight></codeline>
<codeline lineno="594"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$state_details<sp/>=<sp/>array_filter($history_info[</highlight><highlight class="stringliteral">&apos;state_details&apos;</highlight><highlight class="normal">]);</highlight></codeline>
<codeline lineno="595"><highlight class="normal"></highlight></codeline>
<codeline lineno="596"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Get<sp/>the<sp/>history<sp/>contents<sp/>for<sp/>this<sp/>history.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="597"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$ghistory_contents<sp/>=<sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>GalaxyHistoryContents($galaxy);</highlight></codeline>
<codeline lineno="598"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$history_contents<sp/>=<sp/>$ghistory_contents-&gt;index([</highlight></codeline>
<codeline lineno="599"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;history_id&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$history[</highlight><highlight class="stringliteral">&apos;id&apos;</highlight><highlight class="normal">],</highlight></codeline>
<codeline lineno="600"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>]);</highlight></codeline>
<codeline lineno="601"><highlight class="normal"></highlight></codeline>
<codeline lineno="602"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Get<sp/>more<sp/>details<sp/>about<sp/>each<sp/>history<sp/>content<sp/>item.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="603"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">foreach</highlight><highlight class="normal"><sp/>($history_contents<sp/>as<sp/>$index<sp/>=&gt;<sp/>$history_content)<sp/>{</highlight></codeline>
<codeline lineno="604"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$history_contents[$index]<sp/>=<sp/>$ghistory_contents-&gt;show([</highlight></codeline>
<codeline lineno="605"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;id&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$history_content[</highlight><highlight class="stringliteral">&apos;id&apos;</highlight><highlight class="normal">],</highlight></codeline>
<codeline lineno="606"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;history_id&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$history[</highlight><highlight class="stringliteral">&apos;id&apos;</highlight><highlight class="normal">],</highlight></codeline>
<codeline lineno="607"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>]);</highlight></codeline>
<codeline lineno="608"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">switch</highlight><highlight class="normal"><sp/>($history_content[</highlight><highlight class="stringliteral">&apos;type&apos;</highlight><highlight class="normal">])<sp/>{</highlight></codeline>
<codeline lineno="609"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">case</highlight><highlight class="normal"><sp/></highlight><highlight class="stringliteral">&apos;file&apos;</highlight><highlight class="normal">:</highlight></codeline>
<codeline lineno="610"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$params<sp/>=<sp/>[];</highlight></codeline>
<codeline lineno="611"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$params[</highlight><highlight class="stringliteral">&apos;history_id&apos;</highlight><highlight class="normal">]<sp/>=<sp/>$history[</highlight><highlight class="stringliteral">&apos;id&apos;</highlight><highlight class="normal">];</highlight></codeline>
<codeline lineno="612"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$params[</highlight><highlight class="stringliteral">&apos;url_only&apos;</highlight><highlight class="normal">]<sp/>=<sp/>TRUE;</highlight></codeline>
<codeline lineno="613"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$params[</highlight><highlight class="stringliteral">&apos;history_content_id&apos;</highlight><highlight class="normal">]<sp/>=<sp/>$history_content[</highlight><highlight class="stringliteral">&apos;id&apos;</highlight><highlight class="normal">];</highlight></codeline>
<codeline lineno="614"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$link<sp/>=<sp/>$ghistory_contents-&gt;download_history_content($params);</highlight></codeline>
<codeline lineno="615"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$history_contents[$index][</highlight><highlight class="stringliteral">&apos;content_link&apos;</highlight><highlight class="normal">]<sp/>=<sp/>$link;</highlight></codeline>
<codeline lineno="616"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">break</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="617"><highlight class="normal"></highlight></codeline>
<codeline lineno="618"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">default</highlight><highlight class="normal">:</highlight></codeline>
<codeline lineno="619"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">break</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="620"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="621"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$job_id<sp/>=<sp/>$history_contents[$index][</highlight><highlight class="stringliteral">&apos;creating_job&apos;</highlight><highlight class="normal">];</highlight></codeline>
<codeline lineno="622"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$gJobs<sp/>=<sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>GalaxyJobs($galaxy);</highlight></codeline>
<codeline lineno="623"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$job<sp/>=<sp/>$gJobs-&gt;show([</highlight><highlight class="stringliteral">&apos;job_id&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$job_id,<sp/></highlight><highlight class="stringliteral">&apos;full&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/></highlight><highlight class="stringliteral">&apos;TRUE&apos;</highlight><highlight class="normal">]);</highlight></codeline>
<codeline lineno="624"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$job)<sp/>{</highlight></codeline>
<codeline lineno="625"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$error<sp/>=<sp/>$galaxy-&gt;getError();</highlight></codeline>
<codeline lineno="626"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>drupal_set_message(</highlight><highlight class="stringliteral">&apos;Could<sp/>not<sp/>retreive<sp/>details<sp/>about<sp/>the<sp/>submitting<sp/>job.<sp/>&apos;</highlight><highlight class="normal"><sp/>.<sp/>$error[</highlight><highlight class="stringliteral">&apos;message&apos;</highlight><highlight class="normal">],<sp/></highlight><highlight class="stringliteral">&apos;error&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="627"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>FALSE;</highlight></codeline>
<codeline lineno="628"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="629"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$history_contents[$index][</highlight><highlight class="stringliteral">&apos;creating_job&apos;</highlight><highlight class="normal">]<sp/>=<sp/>$job;</highlight></codeline>
<codeline lineno="630"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="631"><highlight class="normal"></highlight></codeline>
<codeline lineno="632"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Save<sp/>all<sp/>this<sp/>history<sp/>information<sp/>so<sp/>we<sp/>can<sp/>cahce<sp/>it.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="633"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$invocation_info[</highlight><highlight class="stringliteral">&apos;history&apos;</highlight><highlight class="normal">]<sp/>=<sp/>$history;</highlight></codeline>
<codeline lineno="634"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$invocation_info[</highlight><highlight class="stringliteral">&apos;history_info&apos;</highlight><highlight class="normal">]<sp/>=<sp/>$history_info;</highlight></codeline>
<codeline lineno="635"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$invocation_info[</highlight><highlight class="stringliteral">&apos;history_contents&apos;</highlight><highlight class="normal">]<sp/>=<sp/>$history_contents;</highlight></codeline>
<codeline lineno="636"><highlight class="normal"></highlight></codeline>
<codeline lineno="637"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>If<sp/>any<sp/>of<sp/>the<sp/>jobs<sp/>have<sp/>a<sp/>state<sp/>of<sp/>error<sp/>then<sp/>that&apos;s<sp/>it.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="638"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(isset($state_details[</highlight><highlight class="stringliteral">&apos;error&apos;</highlight><highlight class="normal">]))<sp/>{</highlight></codeline>
<codeline lineno="639"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$status<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;Error&apos;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="640"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="641"><highlight class="normal"></highlight></codeline>
<codeline lineno="642"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>If<sp/>no<sp/>jobs<sp/>are<sp/>in<sp/>the<sp/>state<sp/>of<sp/>&apos;paused&apos;,<sp/>&apos;running&apos;,<sp/>or<sp/>&apos;queued&apos;,<sp/>the</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="643"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>history<sp/>is<sp/>completed.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="644"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(</highlight></codeline>
<codeline lineno="645"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>!isset($state_details[</highlight><highlight class="stringliteral">&apos;paused&apos;</highlight><highlight class="normal">])<sp/>and<sp/>!isset($state_details[</highlight><highlight class="stringliteral">&apos;running&apos;</highlight><highlight class="normal">])<sp/>and</highlight></codeline>
<codeline lineno="646"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>!isset($state_details[</highlight><highlight class="stringliteral">&apos;queued&apos;</highlight><highlight class="normal">])<sp/>and<sp/>!isset($state_details[</highlight><highlight class="stringliteral">&apos;new&apos;</highlight><highlight class="normal">])</highlight></codeline>
<codeline lineno="647"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>)<sp/>{</highlight></codeline>
<codeline lineno="648"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$status<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;Completed&apos;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="649"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$end_time<sp/>=<sp/>$update_time-&gt;getTimestamp();</highlight></codeline>
<codeline lineno="650"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="651"><highlight class="normal"></highlight></codeline>
<codeline lineno="652"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>For<sp/>all<sp/>other<sp/>job<sp/>states<sp/>we&apos;re<sp/>still<sp/>processing.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="653"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="654"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$status<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;Processing&apos;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="655"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="656"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="657"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="658"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="659"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Now<sp/>inform<sp/>the<sp/>user<sp/>that<sp/>the<sp/>job<sp/>is<sp/>done!</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="660"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$force<sp/>&amp;&amp;<sp/>$submission-&gt;email<sp/>!=<sp/></highlight><highlight class="stringliteral">&apos;SENT&apos;</highlight><highlight class="normal">)<sp/>{</highlight></codeline>
<codeline lineno="661"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>tripal_galaxy_send_submission_ended_mail($submission-&gt;sid);</highlight></codeline>
<codeline lineno="662"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="663"><highlight class="normal"></highlight></codeline>
<codeline lineno="664"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!empty($invocation_info))<sp/>{</highlight></codeline>
<codeline lineno="665"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>$fields<sp/>=<sp/>[</highlight></codeline>
<codeline lineno="666"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;status&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$status,</highlight></codeline>
<codeline lineno="667"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;errors&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>serialize($invocation_info),</highlight></codeline>
<codeline lineno="668"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>];</highlight></codeline>
<codeline lineno="669"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="670"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="671"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>$fields<sp/>=<sp/>[</highlight></codeline>
<codeline lineno="672"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;status&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$status,</highlight></codeline>
<codeline lineno="673"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;errors&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>serialize(</highlight><highlight class="stringliteral">&apos;No<sp/>innovation<sp/>info.&apos;</highlight><highlight class="normal">),</highlight></codeline>
<codeline lineno="674"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>];</highlight></codeline>
<codeline lineno="675"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="676"><highlight class="normal"></highlight></codeline>
<codeline lineno="677"><highlight class="normal"></highlight></codeline>
<codeline lineno="678"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>We<sp/>should<sp/>never<sp/>set<sp/>a<sp/>history<sp/>to<sp/>have<sp/>an<sp/>empty<sp/>status.<sp/>If<sp/>this</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="679"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>happens<sp/>we<sp/>need<sp/>to<sp/>fix<sp/>the<sp/>code<sp/>above!</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="680"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$status)<sp/>{</highlight></codeline>
<codeline lineno="681"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>Exception(</highlight><highlight class="stringliteral">&quot;Cannot<sp/>set<sp/>empty<sp/>status<sp/>for<sp/>submission:<sp/>&quot;</highlight><highlight class="normal"><sp/>.<sp/>$submission-&gt;sid);</highlight></codeline>
<codeline lineno="682"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="683"><highlight class="normal"></highlight></codeline>
<codeline lineno="684"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>($end_time<sp/>!=<sp/>NULL)<sp/>{</highlight></codeline>
<codeline lineno="685"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>$fields[</highlight><highlight class="stringliteral">&apos;end_time&apos;</highlight><highlight class="normal">]<sp/>=<sp/>$end_time;</highlight></codeline>
<codeline lineno="686"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="687"><highlight class="normal"><sp/><sp/><sp/><sp/>db_update(</highlight><highlight class="stringliteral">&apos;tripal_galaxy_workflow_submission&apos;</highlight><highlight class="normal">)</highlight></codeline>
<codeline lineno="688"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>-&gt;fields($fields)</highlight></codeline>
<codeline lineno="689"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>-&gt;condition(</highlight><highlight class="stringliteral">&apos;sid&apos;</highlight><highlight class="normal">,<sp/>$submission-&gt;sid)</highlight></codeline>
<codeline lineno="690"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>-&gt;execute();</highlight></codeline>
<codeline lineno="691"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="692"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>TRUE;</highlight></codeline>
<codeline lineno="693"><highlight class="normal">}</highlight></codeline>
<codeline lineno="694"><highlight class="normal"></highlight></codeline>
<codeline lineno="707" refid="de/db0/group__tripal__galaxy__api_1ga789e6cf6dc77ff76856cbe3d8c2d8d93" refkind="member"><highlight class="keyword">function</highlight><highlight class="normal"><sp/><ref refid="de/db0/group__tripal__galaxy__api_1ga789e6cf6dc77ff76856cbe3d8c2d8d93" kindref="member">tripal_galaxy_get_history_name</ref>($submission)<sp/>{</highlight></codeline>
<codeline lineno="708"><highlight class="normal"></highlight></codeline>
<codeline lineno="709"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$submission)<sp/>{</highlight></codeline>
<codeline lineno="710"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>Exception(</highlight><highlight class="stringliteral">&apos;Please<sp/>provide<sp/>a<sp/>valid<sp/>submission<sp/>object.&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="711"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="712"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!property_exists($submission,<sp/></highlight><highlight class="stringliteral">&apos;galaxy_workflow_id&apos;</highlight><highlight class="normal">))<sp/>{</highlight></codeline>
<codeline lineno="713"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>Exception(</highlight><highlight class="stringliteral">&apos;The<sp/>submission<sp/>is<sp/>missing<sp/>the<sp/>&quot;galaxy_workflow_id&quot;<sp/>property&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="714"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="715"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!property_exists($submission,<sp/></highlight><highlight class="stringliteral">&apos;uid&apos;</highlight><highlight class="normal">))<sp/>{</highlight></codeline>
<codeline lineno="716"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>Exception(</highlight><highlight class="stringliteral">&apos;The<sp/>submission<sp/>is<sp/>missing<sp/>the<sp/>&quot;uid&quot;<sp/>property&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="717"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="718"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!property_exists($submission,<sp/></highlight><highlight class="stringliteral">&apos;sid&apos;</highlight><highlight class="normal">))<sp/>{</highlight></codeline>
<codeline lineno="719"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>Exception(</highlight><highlight class="stringliteral">&apos;The<sp/>submission<sp/>is<sp/>missing<sp/>the<sp/>&quot;sid&quot;<sp/>property&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="720"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="721"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!property_exists($submission,<sp/></highlight><highlight class="stringliteral">&apos;submit_date&apos;</highlight><highlight class="normal">))<sp/>{</highlight></codeline>
<codeline lineno="722"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>Exception(</highlight><highlight class="stringliteral">&apos;The<sp/>submission<sp/>is<sp/>missing<sp/>the<sp/>&quot;sid&quot;<sp/>property&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="723"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="724"><highlight class="normal"></highlight></codeline>
<codeline lineno="725"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="stringliteral">&quot;TG-&quot;</highlight><highlight class="normal"><sp/>.<sp/>$submission-&gt;uid<sp/>.<sp/></highlight><highlight class="stringliteral">&quot;-&quot;</highlight><highlight class="normal"><sp/>.<sp/>$submission-&gt;galaxy_workflow_id<sp/>.<sp/></highlight><highlight class="stringliteral">&quot;-&quot;</highlight><highlight class="normal"><sp/>.<sp/>$submission-&gt;sid<sp/>.<sp/></highlight><highlight class="charliteral">&apos;-&apos;</highlight><highlight class="normal"><sp/>.<sp/>date(</highlight><highlight class="stringliteral">&apos;Y_m_d_H:i:s&apos;</highlight><highlight class="normal">,<sp/>$submission-&gt;submit_date);</highlight></codeline>
<codeline lineno="726"><highlight class="normal">}</highlight></codeline>
<codeline lineno="727"><highlight class="normal"></highlight></codeline>
<codeline lineno="739" refid="de/db0/group__tripal__galaxy__api_1ga86766383eb0518eeae28277a255d0677" refkind="member"><highlight class="keyword">function</highlight><highlight class="normal"><sp/><ref refid="de/db0/group__tripal__galaxy__api_1ga86766383eb0518eeae28277a255d0677" kindref="member">tripal_galaxy_get_user_submissions</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>$userid)<sp/>{</highlight></codeline>
<codeline lineno="740"><highlight class="normal"><sp/><sp/>$submissions<sp/>=<sp/>db_select(</highlight><highlight class="stringliteral">&apos;tripal_galaxy_workflow_submission&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;tgws&apos;</highlight><highlight class="normal">)</highlight></codeline>
<codeline lineno="741"><highlight class="normal"><sp/><sp/><sp/><sp/>-&gt;fields(</highlight><highlight class="stringliteral">&apos;tgws&apos;</highlight><highlight class="normal">)</highlight></codeline>
<codeline lineno="742"><highlight class="normal"><sp/><sp/><sp/><sp/>-&gt;condition(</highlight><highlight class="stringliteral">&apos;uid&apos;</highlight><highlight class="normal">,<sp/>$userid,<sp/></highlight><highlight class="charliteral">&apos;=&apos;</highlight><highlight class="normal">)</highlight></codeline>
<codeline lineno="743"><highlight class="normal"><sp/><sp/><sp/><sp/>-&gt;execute();</highlight></codeline>
<codeline lineno="744"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>($submission<sp/>=<sp/>$submissions-&gt;fetchObject())<sp/>{</highlight></codeline>
<codeline lineno="745"><highlight class="normal"><sp/><sp/><sp/><sp/>$sids[]<sp/>=<sp/>$submission-&gt;sid;</highlight></codeline>
<codeline lineno="746"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="747"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>$sids;</highlight></codeline>
<codeline lineno="748"><highlight class="normal">}</highlight></codeline>
<codeline lineno="749"><highlight class="normal"></highlight></codeline>
<codeline lineno="771" refid="de/db0/group__tripal__galaxy__api_1gabf03119507bfb737fd7b2af04501a18f" refkind="member"><highlight class="keyword">function</highlight><highlight class="normal"><sp/><ref refid="de/db0/group__tripal__galaxy__api_1gabf03119507bfb737fd7b2af04501a18f" kindref="member">tripal_galaxy_get_workflow_defaults</ref>(GalaxyInstance<sp/>$galaxy,<sp/></highlight><highlight class="keywordtype">string</highlight><highlight class="normal"><sp/>$workflow_id)<sp/>{</highlight></codeline>
<codeline lineno="772"><highlight class="normal"><sp/><sp/>$gworkflows<sp/>=<sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>GalaxyWorkflows($galaxy);</highlight></codeline>
<codeline lineno="773"><highlight class="normal"><sp/><sp/>$workflow<sp/>=<sp/>$gworkflows-&gt;show([</highlight></codeline>
<codeline lineno="774"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;workflow_id&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$workflow_id,</highlight></codeline>
<codeline lineno="775"><highlight class="normal"><sp/><sp/>]);</highlight></codeline>
<codeline lineno="776"><highlight class="normal"></highlight></codeline>
<codeline lineno="777"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$workflow)<sp/>{</highlight></codeline>
<codeline lineno="778"><highlight class="normal"><sp/><sp/><sp/><sp/>$error<sp/>=<sp/>$galaxy-&gt;getError();</highlight></codeline>
<codeline lineno="779"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(empty($error[</highlight><highlight class="stringliteral">&apos;message&apos;</highlight><highlight class="normal">]))<sp/>{</highlight></codeline>
<codeline lineno="780"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>$error[</highlight><highlight class="stringliteral">&apos;message&apos;</highlight><highlight class="normal">]<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;No<sp/>workflow<sp/>is<sp/>found<sp/>in<sp/>this<sp/>Galaxy<sp/>server<sp/>for<sp/>the<sp/>user<sp/>you<sp/>used</highlight></codeline>
<codeline lineno="781"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>to<sp/>connect<sp/>to<sp/>the<sp/>Galaxy<sp/>server.&apos;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="782"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="783"><highlight class="normal"><sp/><sp/><sp/><sp/>drupal_set_message($error[</highlight><highlight class="stringliteral">&apos;message&apos;</highlight><highlight class="normal">],<sp/></highlight><highlight class="stringliteral">&apos;error&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="784"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>FALSE;</highlight></codeline>
<codeline lineno="785"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="786"><highlight class="normal"></highlight></codeline>
<codeline lineno="787"><highlight class="normal"><sp/><sp/>$parameters<sp/>=<sp/>[];</highlight></codeline>
<codeline lineno="788"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">foreach</highlight><highlight class="normal"><sp/>($workflow[</highlight><highlight class="stringliteral">&apos;steps&apos;</highlight><highlight class="normal">]<sp/>as<sp/>$step<sp/>=&gt;<sp/>$details)<sp/>{</highlight></codeline>
<codeline lineno="789"><highlight class="normal"><sp/><sp/><sp/><sp/>$parameters[$step]<sp/>=<sp/>[];</highlight></codeline>
<codeline lineno="790"><highlight class="normal"><sp/><sp/><sp/><sp/>$step_inputs<sp/>=<sp/>$details[</highlight><highlight class="stringliteral">&apos;input_steps&apos;</highlight><highlight class="normal">];</highlight></codeline>
<codeline lineno="791"><highlight class="normal"><sp/><sp/><sp/><sp/>$step_input_key<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="792"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="df/d55/tripal__galaxy_8api_8inc_1aee35f9000f503ad715947aa4af7d465e" kindref="member">_tripal_galaxy_get_workflow_defaults</ref>($details[</highlight><highlight class="stringliteral">&apos;tool_inputs&apos;</highlight><highlight class="normal">],<sp/>$parameters[$step],<sp/>$step_inputs,<sp/>$step_input_key);</highlight></codeline>
<codeline lineno="793"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="794"><highlight class="normal"></highlight></codeline>
<codeline lineno="795"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>$parameters;</highlight></codeline>
<codeline lineno="796"><highlight class="normal">}</highlight></codeline>
<codeline lineno="797"><highlight class="normal"></highlight></codeline>
<codeline lineno="814" refid="df/d55/tripal__galaxy_8api_8inc_1aee35f9000f503ad715947aa4af7d465e" refkind="member"><highlight class="keyword">function</highlight><highlight class="normal"><sp/><ref refid="df/d55/tripal__galaxy_8api_8inc_1aee35f9000f503ad715947aa4af7d465e" kindref="member">_tripal_galaxy_get_workflow_defaults</ref>(array<sp/>$tool_inputs,<sp/>array<sp/>&amp;$parameters,<sp/>array<sp/>$step_inputs,<sp/></highlight><highlight class="keywordtype">string</highlight><highlight class="normal"><sp/>$step_input_key)<sp/>{</highlight></codeline>
<codeline lineno="815"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">foreach</highlight><highlight class="normal"><sp/>($tool_inputs<sp/>as<sp/>$key<sp/>=&gt;<sp/>$value)<sp/>{</highlight></codeline>
<codeline lineno="816"><highlight class="normal"></highlight></codeline>
<codeline lineno="817"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Skip<sp/>keys<sp/>that<sp/>are<sp/>just<sp/>internal<sp/>to<sp/>Galaxy.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="818"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(preg_match(</highlight><highlight class="stringliteral">&apos;/^__/&apos;</highlight><highlight class="normal">,<sp/>$key))<sp/>{</highlight></codeline>
<codeline lineno="819"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">continue</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="820"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="821"><highlight class="normal"></highlight></codeline>
<codeline lineno="822"><highlight class="normal"><sp/><sp/><sp/><sp/>$this_step_input_key<sp/>=<sp/>$step_input_key<sp/>.<sp/>$key;</highlight></codeline>
<codeline lineno="823"><highlight class="normal"></highlight></codeline>
<codeline lineno="824"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>If<sp/>this<sp/>is<sp/>an<sp/>array<sp/>then<sp/>we<sp/>want<sp/>to<sp/>recurse.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="825"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(is_array($value))<sp/>{</highlight></codeline>
<codeline lineno="826"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>$parameters[$key]<sp/>=<sp/>[];</highlight></codeline>
<codeline lineno="827"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="df/d55/tripal__galaxy_8api_8inc_1aee35f9000f503ad715947aa4af7d465e" kindref="member">_tripal_galaxy_get_workflow_defaults</ref>($value,<sp/>$parameters[$key],<sp/>$step_inputs,<sp/>$this_step_input_key<sp/>.<sp/></highlight><highlight class="charliteral">&apos;|&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="828"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(empty($parameters[$key]))<sp/>{</highlight></codeline>
<codeline lineno="829"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(is_array($step_inputs)<sp/>and<sp/>array_key_exists($this_step_input_key,<sp/>$step_inputs))<sp/>{</highlight></codeline>
<codeline lineno="830"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$parameters[$key]<sp/>=<sp/>$step_inputs[$this_step_input_key];</highlight></codeline>
<codeline lineno="831"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="832"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="833"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$parameters[$key]<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="834"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="835"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="836"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="837"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Otherwise<sp/>just<sp/>set<sp/>the<sp/>value.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="838"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="839"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>If<sp/>this<sp/>key<sp/>is<sp/>an<sp/>input<sp/>from<sp/>another<sp/>tool<sp/>we<sp/>need<sp/>to<sp/>get<sp/>that</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="840"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>information.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="841"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(is_array($step_inputs)<sp/>and<sp/>array_key_exists($this_step_input_key,<sp/>$step_inputs))<sp/>{</highlight></codeline>
<codeline lineno="842"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$parameters[$key]<sp/>=<sp/>$step_inputs[$this_step_input_key];</highlight></codeline>
<codeline lineno="843"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="844"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="845"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$parameters[$key]<sp/>=<sp/>$value;</highlight></codeline>
<codeline lineno="846"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="847"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="848"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="849"><highlight class="normal">}</highlight></codeline>
<codeline lineno="850"><highlight class="normal"></highlight></codeline>
<codeline lineno="851"><highlight class="normal"></highlight><highlight class="comment">//<sp/>phpcs:disable<sp/>Drupal.Commenting.DocCommentAlignment.SpaceAfterStar</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="852"><highlight class="normal"></highlight><highlight class="comment">//<sp/>phpcs:disable<sp/>Drupal.Commenting.DocComment.TagGroupSpacing</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="853"><highlight class="normal"></highlight><highlight class="comment">//<sp/>phpcs:disable<sp/>Drupal.Commenting.DocComment.TagsNotGrouped</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="854"><highlight class="normal"></highlight></codeline>
<codeline lineno="908" refid="de/db0/group__tripal__galaxy__api_1gad26f04e74dc76a75413530315ff8ffb2" refkind="member"><highlight class="keyword">function</highlight><highlight class="normal"><sp/><ref refid="de/db0/group__tripal__galaxy__api_1gad26f04e74dc76a75413530315ff8ffb2" kindref="member">tripal_galaxy_invoke_workflow</ref>(GalaxyInstance<sp/>$galaxy,<sp/>$submission,<sp/>array<sp/>$parameters,<sp/>array<sp/>$inputs,<sp/>array<sp/>$history)<sp/>{</highlight></codeline>
<codeline lineno="909"><highlight class="normal"></highlight></codeline>
<codeline lineno="910"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Make<sp/>sure<sp/>we<sp/>have<sp/>the<sp/>correct<sp/>inputs</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="911"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$submission)<sp/>{</highlight></codeline>
<codeline lineno="912"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>Exception(</highlight><highlight class="stringliteral">&apos;Please<sp/>provide<sp/>a<sp/>valid<sp/>submission<sp/>argument.&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="913"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="914"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!property_exists($submission,<sp/></highlight><highlight class="stringliteral">&apos;sid&apos;</highlight><highlight class="normal">))<sp/>{</highlight></codeline>
<codeline lineno="915"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>Exception(</highlight><highlight class="stringliteral">&apos;The<sp/>submission<sp/>argument<sp/>is<sp/>missing<sp/>the<sp/>&quot;sid&quot;<sp/>property.&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="916"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="917"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$history)<sp/>{</highlight></codeline>
<codeline lineno="918"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>Exception(</highlight><highlight class="stringliteral">&apos;Please<sp/>provide<sp/>a<sp/>valid<sp/>history<sp/>argument.&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="919"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="920"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!array_key_exists(</highlight><highlight class="stringliteral">&apos;name&apos;</highlight><highlight class="normal">,<sp/>$history))<sp/>{</highlight></codeline>
<codeline lineno="921"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>Exception(</highlight><highlight class="stringliteral">&apos;The<sp/>history<sp/>argument<sp/>is<sp/>missing<sp/>the<sp/>&quot;sid&quot;<sp/>property.&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="922"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="923"><highlight class="normal"></highlight></codeline>
<codeline lineno="924"><highlight class="normal"><sp/><sp/>$history_id<sp/>=<sp/>$history[</highlight><highlight class="stringliteral">&apos;id&apos;</highlight><highlight class="normal">];</highlight></codeline>
<codeline lineno="925"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Create<sp/>some<sp/>handy<sp/>variables<sp/>for<sp/>working<sp/>with<sp/>this<sp/>submission.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="926"><highlight class="normal"><sp/><sp/>$workflow_id<sp/>=<sp/>$submission-&gt;workflow_id;</highlight></codeline>
<codeline lineno="927"><highlight class="normal"><sp/><sp/>$uid<sp/>=<sp/>$submission-&gt;uid;</highlight></codeline>
<codeline lineno="928"><highlight class="normal"><sp/><sp/>$sid<sp/>=<sp/>$submission-&gt;sid;</highlight></codeline>
<codeline lineno="929"><highlight class="normal"></highlight></codeline>
<codeline lineno="930"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Invoke<sp/>the<sp/>workflow<sp/>and<sp/>check<sp/>for<sp/>errors.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="931"><highlight class="normal"><sp/><sp/>$gworkflows<sp/>=<sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>GalaxyWorkflows($galaxy);</highlight></codeline>
<codeline lineno="932"><highlight class="normal"><sp/><sp/>$params<sp/>=<sp/>[</highlight></codeline>
<codeline lineno="933"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;workflow_id&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$workflow_id,</highlight></codeline>
<codeline lineno="934"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;parameters&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$parameters,</highlight></codeline>
<codeline lineno="935"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;inputs&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$inputs,</highlight></codeline>
<codeline lineno="936"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;history_id&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$history_id,</highlight></codeline>
<codeline lineno="937"><highlight class="normal"><sp/><sp/>];</highlight></codeline>
<codeline lineno="938"><highlight class="normal"></highlight></codeline>
<codeline lineno="939"><highlight class="normal"><sp/><sp/>$invocation<sp/>=<sp/>$gworkflows-&gt;invoke($params);</highlight></codeline>
<codeline lineno="940"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$invocation)<sp/>{</highlight></codeline>
<codeline lineno="941"><highlight class="normal"><sp/><sp/><sp/><sp/>$error<sp/>=<sp/>$galaxy-&gt;getError();</highlight></codeline>
<codeline lineno="942"><highlight class="normal"><sp/><sp/><sp/><sp/>$error_msg<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;ERROR:<sp/>&apos;</highlight><highlight class="normal"><sp/>.<sp/>$error[</highlight><highlight class="stringliteral">&apos;message&apos;</highlight><highlight class="normal">];</highlight></codeline>
<codeline lineno="943"><highlight class="normal"></highlight></codeline>
<codeline lineno="944"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>If<sp/>the<sp/>message<sp/>is<sp/>an<sp/>array<sp/>than<sp/>we&apos;ll<sp/>convert<sp/>it<sp/>into<sp/>a<sp/>string.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="945"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(is_array($error[</highlight><highlight class="stringliteral">&apos;message&apos;</highlight><highlight class="normal">]))<sp/>{</highlight></codeline>
<codeline lineno="946"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>$error_msg<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;ERROR:<sp/>&apos;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="947"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">foreach</highlight><highlight class="normal"><sp/>($error[</highlight><highlight class="stringliteral">&apos;message&apos;</highlight><highlight class="normal">]<sp/>as<sp/>$key<sp/>=&gt;<sp/>$value)<sp/>{</highlight></codeline>
<codeline lineno="948"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>$error_msg<sp/>.=<sp/>$key<sp/>.<sp/></highlight><highlight class="stringliteral">&apos;:<sp/>&apos;</highlight><highlight class="normal"><sp/>.<sp/>$value;</highlight></codeline>
<codeline lineno="949"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="950"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="951"><highlight class="normal"><sp/><sp/><sp/><sp/>drupal_set_message($error_msg,<sp/></highlight><highlight class="stringliteral">&apos;error&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="952"><highlight class="normal"><sp/><sp/><sp/><sp/>db_update(</highlight><highlight class="stringliteral">&apos;tripal_galaxy_workflow_submission&apos;</highlight><highlight class="normal">)-&gt;fields([</highlight></codeline>
<codeline lineno="953"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;status&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/></highlight><highlight class="stringliteral">&apos;Error&apos;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="954"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;errors&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>serialize([</highlight></codeline>
<codeline lineno="955"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;history&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$history,</highlight></codeline>
<codeline lineno="956"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;history_contents&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="957"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;history_info&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="958"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;error&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$error_msg])</highlight></codeline>
<codeline lineno="959"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>])</highlight></codeline>
<codeline lineno="960"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>-&gt;condition(</highlight><highlight class="stringliteral">&apos;sid&apos;</highlight><highlight class="normal">,<sp/>$sid)</highlight></codeline>
<codeline lineno="961"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>-&gt;execute();</highlight></codeline>
<codeline lineno="962"><highlight class="normal"><sp/><sp/><sp/><sp/>tripal_galaxy_send_submission_failed_mail($sid);</highlight></codeline>
<codeline lineno="963"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="964"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="965"><highlight class="normal"><sp/><sp/><sp/><sp/>db_update(</highlight><highlight class="stringliteral">&apos;tripal_galaxy_workflow_submission&apos;</highlight><highlight class="normal">)-&gt;fields([</highlight></codeline>
<codeline lineno="966"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;status&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/></highlight><highlight class="stringliteral">&apos;Submitted&apos;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="967"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;start_time&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>REQUEST_TIME,</highlight></codeline>
<codeline lineno="968"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;end_time&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>NULL,</highlight></codeline>
<codeline lineno="969"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;invocation_id&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$invocation[</highlight><highlight class="stringliteral">&apos;id&apos;</highlight><highlight class="normal">],</highlight></codeline>
<codeline lineno="970"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;errors&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>serialize([</highlight></codeline>
<codeline lineno="971"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;history&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$history,</highlight></codeline>
<codeline lineno="972"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;history_contents&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="973"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;history_info&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="974"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;error&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal">]),</highlight></codeline>
<codeline lineno="975"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>])</highlight></codeline>
<codeline lineno="976"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>-&gt;condition(</highlight><highlight class="stringliteral">&apos;sid&apos;</highlight><highlight class="normal">,<sp/>$sid)</highlight></codeline>
<codeline lineno="977"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>-&gt;execute();</highlight></codeline>
<codeline lineno="978"><highlight class="normal"><sp/><sp/><sp/><sp/>tripal_galaxy_send_submission_start_mail($sid);</highlight></codeline>
<codeline lineno="979"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="980"><highlight class="normal">}</highlight></codeline>
<codeline lineno="981"><highlight class="normal"></highlight></codeline>
<codeline lineno="982"><highlight class="normal"></highlight><highlight class="comment">//<sp/>phpcs:enable<sp/>Drupal.Commenting.DocComment.TagGroupSpacing</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="983"><highlight class="normal"></highlight><highlight class="comment">//<sp/>phpcs:enable<sp/>Drupal.Commenting.DocCommentAlignment.SpaceAfterStar</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="984"><highlight class="normal"></highlight><highlight class="comment">//<sp/>phpcs:enable<sp/>Drupal.Commenting.DocComment.TagsNotGrouped</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="985"><highlight class="normal"></highlight></codeline>
<codeline lineno="1006" refid="de/db0/group__tripal__galaxy__api_1gafd57170f587e9a82dd233b0723d34b12" refkind="member"><highlight class="keyword">function</highlight><highlight class="normal"><sp/><ref refid="de/db0/group__tripal__galaxy__api_1gafd57170f587e9a82dd233b0723d34b12" kindref="member">tripal_galaxy_upload_file</ref>($galaxy,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>$fid,<sp/></highlight><highlight class="keywordtype">string</highlight><highlight class="normal"><sp/>$history_id,<sp/>array<sp/>$history_contents)<sp/>{</highlight></codeline>
<codeline lineno="1007"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$fid)<sp/>{</highlight></codeline>
<codeline lineno="1008"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>Exception(</highlight><highlight class="stringliteral">&apos;Cannot<sp/>upload<sp/>a<sp/>file<sp/>without<sp/>an<sp/>fid&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="1009"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1010"><highlight class="normal"></highlight></codeline>
<codeline lineno="1011"><highlight class="normal"><sp/><sp/>$file<sp/>=<sp/>file_load($fid);</highlight></codeline>
<codeline lineno="1012"><highlight class="normal"><sp/><sp/>$uploaded_file<sp/>=<sp/>NULL;</highlight></codeline>
<codeline lineno="1013"><highlight class="normal"></highlight></codeline>
<codeline lineno="1014"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">foreach</highlight><highlight class="normal"><sp/>($history_contents<sp/>as<sp/>$hfile)<sp/>{</highlight></codeline>
<codeline lineno="1015"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$hfile[</highlight><highlight class="stringliteral">&apos;deleted&apos;</highlight><highlight class="normal">]<sp/>and<sp/>$hfile[</highlight><highlight class="stringliteral">&apos;state&apos;</highlight><highlight class="normal">]<sp/>==<sp/></highlight><highlight class="stringliteral">&apos;ok&apos;</highlight><highlight class="normal"><sp/>and<sp/>$hfile[</highlight><highlight class="stringliteral">&apos;name&apos;</highlight><highlight class="normal">]<sp/>==<sp/>$file-&gt;filename)<sp/>{</highlight></codeline>
<codeline lineno="1016"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>$uploaded_file<sp/>=<sp/>$hfile;</highlight></codeline>
<codeline lineno="1017"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1018"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1019"><highlight class="normal"></highlight></codeline>
<codeline lineno="1020"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Only<sp/>upload<sp/>the<sp/>file<sp/>if<sp/>it<sp/>isn&apos;t<sp/>already<sp/>there.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1021"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$uploaded_file)<sp/>{</highlight></codeline>
<codeline lineno="1022"><highlight class="normal"><sp/><sp/><sp/><sp/>$file_list<sp/>=<sp/>[];</highlight></codeline>
<codeline lineno="1023"><highlight class="normal"><sp/><sp/><sp/><sp/>$file_list[]<sp/>=<sp/>[</highlight></codeline>
<codeline lineno="1024"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;name&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$file-&gt;filename,</highlight></codeline>
<codeline lineno="1025"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;path&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>drupal_realpath($file-&gt;uri),</highlight></codeline>
<codeline lineno="1026"><highlight class="normal"><sp/><sp/><sp/><sp/>];</highlight></codeline>
<codeline lineno="1027"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Now<sp/>upload<sp/>the<sp/>files.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1028"><highlight class="normal"><sp/><sp/><sp/><sp/>$report<sp/>=<sp/></highlight><highlight class="stringliteral">&quot;Uploading<sp/>$file-&gt;filename...&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1029"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(is_object($job))<sp/>{</highlight></codeline>
<codeline lineno="1030"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>$job-&gt;logMessage($report);</highlight></codeline>
<codeline lineno="1031"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1032"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="1033"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>print<sp/>$report<sp/>.<sp/></highlight><highlight class="stringliteral">&quot;\n&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1034"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1035"><highlight class="normal"><sp/><sp/><sp/><sp/>$gtool<sp/>=<sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>GalaxyTools($galaxy);</highlight></codeline>
<codeline lineno="1036"><highlight class="normal"><sp/><sp/><sp/><sp/>$tool<sp/>=<sp/>$gtool-&gt;create([</highlight></codeline>
<codeline lineno="1037"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;tool_id&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/></highlight><highlight class="stringliteral">&apos;upload1&apos;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="1038"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;history_id&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$history_id,</highlight></codeline>
<codeline lineno="1039"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;files&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$file_list,</highlight></codeline>
<codeline lineno="1040"><highlight class="normal"><sp/><sp/><sp/><sp/>]);</highlight></codeline>
<codeline lineno="1041"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$tool)<sp/>{</highlight></codeline>
<codeline lineno="1042"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>$error<sp/>=<sp/>$galaxy-&gt;getError();</highlight></codeline>
<codeline lineno="1043"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>Exception($error[</highlight><highlight class="stringliteral">&apos;message&apos;</highlight><highlight class="normal">]);</highlight></codeline>
<codeline lineno="1044"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1045"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>$tool[</highlight><highlight class="stringliteral">&apos;outputs&apos;</highlight><highlight class="normal">][0];</highlight></codeline>
<codeline lineno="1046"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1047"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="1048"><highlight class="normal"><sp/><sp/><sp/><sp/>$report<sp/>=<sp/></highlight><highlight class="stringliteral">&quot;File<sp/>already<sp/>exists<sp/>in<sp/>history:<sp/>$file-&gt;filename...&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1049"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(is_object($job))<sp/>{</highlight></codeline>
<codeline lineno="1050"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>$job-&gt;logMessage($report);</highlight></codeline>
<codeline lineno="1051"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1052"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="1053"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>print<sp/>$report<sp/>.<sp/></highlight><highlight class="stringliteral">&quot;\n&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1054"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1055"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>$uploaded_file;</highlight></codeline>
<codeline lineno="1056"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1057"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1058"><highlight class="normal"></highlight></codeline>
<codeline lineno="1077" refid="de/db0/group__tripal__galaxy__api_1gab81573a1e45464b19d9a2c32520bbf87" refkind="member"><highlight class="keyword">function</highlight><highlight class="normal"><sp/><ref refid="de/db0/group__tripal__galaxy__api_1gab81573a1e45464b19d9a2c32520bbf87" kindref="member">tripal_galaxy_get_history</ref>(GalaxyInstance<sp/>$galaxy,<sp/></highlight><highlight class="keywordtype">string</highlight><highlight class="normal"><sp/>$history_name)<sp/>{</highlight></codeline>
<codeline lineno="1078"><highlight class="normal"></highlight></codeline>
<codeline lineno="1079"><highlight class="normal"><sp/><sp/>$ghistories<sp/>=<sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>GalaxyHistories($galaxy);</highlight></codeline>
<codeline lineno="1080"><highlight class="normal"></highlight></codeline>
<codeline lineno="1081"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Look<sp/>through<sp/>existing<sp/>histories<sp/>to<sp/>find<sp/>what<sp/>we&apos;re<sp/>looking<sp/>for.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1082"><highlight class="normal"><sp/><sp/>$histories<sp/>=<sp/>$ghistories-&gt;index();</highlight></codeline>
<codeline lineno="1083"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$histories)<sp/>{</highlight></codeline>
<codeline lineno="1084"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>Exception($error[</highlight><highlight class="stringliteral">&apos;message&apos;</highlight><highlight class="normal">]);</highlight></codeline>
<codeline lineno="1085"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1086"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">foreach</highlight><highlight class="normal"><sp/>($histories<sp/>as<sp/>$history)<sp/>{</highlight></codeline>
<codeline lineno="1087"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>($history[</highlight><highlight class="stringliteral">&apos;name&apos;</highlight><highlight class="normal">]<sp/>==<sp/>$history_name)<sp/>{</highlight></codeline>
<codeline lineno="1088"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>$history;</highlight></codeline>
<codeline lineno="1089"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1090"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1091"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>FALSE;</highlight></codeline>
<codeline lineno="1092"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1093"><highlight class="normal"></highlight></codeline>
<codeline lineno="1105" refid="de/db0/group__tripal__galaxy__api_1gaf580037935dcd174927d3b0404d452d8" refkind="member"><highlight class="keyword">function</highlight><highlight class="normal"><sp/><ref refid="de/db0/group__tripal__galaxy__api_1gaf580037935dcd174927d3b0404d452d8" kindref="member">tripal_galaxy_create_history</ref>(GalaxyInstance<sp/>$galaxy,<sp/></highlight><highlight class="keywordtype">string</highlight><highlight class="normal"><sp/>$history_name)<sp/>{</highlight></codeline>
<codeline lineno="1106"><highlight class="normal"><sp/><sp/>$ghistories<sp/>=<sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>GalaxyHistories($galaxy);</highlight></codeline>
<codeline lineno="1107"><highlight class="normal"></highlight></codeline>
<codeline lineno="1108"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Look<sp/>through<sp/>existing<sp/>histories<sp/>to<sp/>find<sp/>what<sp/>we&apos;re<sp/>looking<sp/>for.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1109"><highlight class="normal"><sp/><sp/>$histories<sp/>=<sp/>$ghistories-&gt;index();</highlight></codeline>
<codeline lineno="1110"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!is_array($histories))<sp/>{</highlight></codeline>
<codeline lineno="1111"><highlight class="normal"><sp/><sp/><sp/><sp/>$error<sp/>=<sp/>$galaxy-&gt;getError();</highlight></codeline>
<codeline lineno="1112"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>Exception($error[</highlight><highlight class="stringliteral">&apos;message&apos;</highlight><highlight class="normal">]);</highlight></codeline>
<codeline lineno="1113"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1114"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">foreach</highlight><highlight class="normal"><sp/>($histories<sp/>as<sp/>$history)<sp/>{</highlight></codeline>
<codeline lineno="1115"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>($history[</highlight><highlight class="stringliteral">&apos;name&apos;</highlight><highlight class="normal">]<sp/>==<sp/>$history_name)<sp/>{</highlight></codeline>
<codeline lineno="1116"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>$history;</highlight></codeline>
<codeline lineno="1117"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1118"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1119"><highlight class="normal"></highlight></codeline>
<codeline lineno="1120"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>If<sp/>we&apos;re<sp/>here<sp/>then<sp/>the<sp/>history<sp/>doesn&apos;t<sp/>exist,<sp/>so<sp/>create<sp/>one.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1121"><highlight class="normal"><sp/><sp/>$history<sp/>=<sp/>$ghistories-&gt;create([</highlight></codeline>
<codeline lineno="1122"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;name&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$history_name,</highlight></codeline>
<codeline lineno="1123"><highlight class="normal"><sp/><sp/>]);</highlight></codeline>
<codeline lineno="1124"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$history)<sp/>{</highlight></codeline>
<codeline lineno="1125"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>Exception($error[</highlight><highlight class="stringliteral">&apos;message&apos;</highlight><highlight class="normal">]);</highlight></codeline>
<codeline lineno="1126"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1127"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>$history;</highlight></codeline>
<codeline lineno="1128"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1129"><highlight class="normal"></highlight></codeline>
<codeline lineno="1148" refid="de/db0/group__tripal__galaxy__api_1ga59906aa5301eccfee60f1ac153f02f92" refkind="member"><highlight class="keyword">function</highlight><highlight class="normal"><sp/><ref refid="de/db0/group__tripal__galaxy__api_1ga59906aa5301eccfee60f1ac153f02f92" kindref="member">tripal_galaxy_test_connection</ref>(array<sp/>$connect)<sp/>{</highlight></codeline>
<codeline lineno="1149"><highlight class="normal"><sp/><sp/>$library<sp/>=<sp/>libraries_load(</highlight><highlight class="stringliteral">&apos;blend4php&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="1150"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(array_key_exists(</highlight><highlight class="stringliteral">&apos;error&apos;</highlight><highlight class="normal">,<sp/>$library))<sp/>{</highlight></codeline>
<codeline lineno="1151"><highlight class="normal"><sp/><sp/><sp/><sp/>drupal_set_message($library[</highlight><highlight class="stringliteral">&apos;error<sp/>message&apos;</highlight><highlight class="normal">],<sp/></highlight><highlight class="stringliteral">&apos;error&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="1152"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>FALSE;</highlight></codeline>
<codeline lineno="1153"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1154"><highlight class="normal"></highlight></codeline>
<codeline lineno="1155"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(array_key_exists(</highlight><highlight class="stringliteral">&apos;galaxy_id&apos;</highlight><highlight class="normal">,<sp/>$connect))<sp/>{</highlight></codeline>
<codeline lineno="1156"><highlight class="normal"><sp/><sp/><sp/><sp/>$galaxy_id<sp/>=<sp/>$connect[</highlight><highlight class="stringliteral">&apos;galaxy_id&apos;</highlight><highlight class="normal">];</highlight></codeline>
<codeline lineno="1157"><highlight class="normal"><sp/><sp/><sp/><sp/>$galaxy<sp/>=<sp/><ref refid="de/db0/group__tripal__galaxy__api_1ga7ecc0a27c271f35edb4aa49d799eb9c9" kindref="member">tripal_galaxy_get_connection</ref>($galaxy_id);</highlight></codeline>
<codeline lineno="1158"><highlight class="normal"><sp/><sp/><sp/><sp/>$error<sp/>=<sp/>$galaxy-&gt;getError();</highlight></codeline>
<codeline lineno="1159"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>($error[</highlight><highlight class="stringliteral">&apos;message&apos;</highlight><highlight class="normal">])<sp/>{</highlight></codeline>
<codeline lineno="1160"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>drupal_set_message(</highlight><highlight class="stringliteral">&apos;Could<sp/>not<sp/>connect:<sp/>&apos;</highlight><highlight class="normal"><sp/>.<sp/>$error[</highlight><highlight class="stringliteral">&apos;message&apos;</highlight><highlight class="normal">],<sp/></highlight><highlight class="stringliteral">&apos;error&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="1161"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>FALSE;</highlight></codeline>
<codeline lineno="1162"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1163"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1164"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="1165"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Create<sp/>a<sp/>new<sp/>galaxy<sp/>instance<sp/>using<sp/>the<sp/>obtained<sp/>hostname<sp/>and<sp/>port</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1166"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Then<sp/>Authenticate.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1167"><highlight class="normal"><sp/><sp/><sp/><sp/>$galaxy<sp/>=<sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>GalaxyInstance($connect[</highlight><highlight class="stringliteral">&apos;host&apos;</highlight><highlight class="normal">],<sp/>$connect[</highlight><highlight class="stringliteral">&apos;port&apos;</highlight><highlight class="normal">],<sp/>$connect[</highlight><highlight class="stringliteral">&apos;use_https&apos;</highlight><highlight class="normal">]);</highlight></codeline>
<codeline lineno="1168"><highlight class="normal"><sp/><sp/><sp/><sp/>$error<sp/>=<sp/>$galaxy-&gt;getError();</highlight></codeline>
<codeline lineno="1169"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>($error[</highlight><highlight class="stringliteral">&apos;message&apos;</highlight><highlight class="normal">])<sp/>{</highlight></codeline>
<codeline lineno="1170"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>drupal_set_message(</highlight><highlight class="stringliteral">&apos;Could<sp/>not<sp/>connect:<sp/>&apos;</highlight><highlight class="normal"><sp/>.<sp/>$error[</highlight><highlight class="stringliteral">&apos;message&apos;</highlight><highlight class="normal">],<sp/></highlight><highlight class="stringliteral">&apos;error&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="1171"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>FALSE;</highlight></codeline>
<codeline lineno="1172"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1173"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1174"><highlight class="normal"></highlight></codeline>
<codeline lineno="1175"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Tell<sp/>the<sp/>user<sp/>whether<sp/>the<sp/>connection<sp/>was<sp/>successful<sp/>based<sp/>on</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1176"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>getVersion()</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1177"><highlight class="normal"><sp/><sp/>$version<sp/>=<sp/>$galaxy-&gt;getVersion();</highlight></codeline>
<codeline lineno="1178"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>($version<sp/>==<sp/>NULL)<sp/>{</highlight></codeline>
<codeline lineno="1179"><highlight class="normal"><sp/><sp/><sp/><sp/>$error<sp/>=<sp/>$galaxy-&gt;getError();</highlight></codeline>
<codeline lineno="1180"><highlight class="normal"><sp/><sp/><sp/><sp/>drupal_set_message(</highlight><highlight class="stringliteral">&apos;Could<sp/>not<sp/>connect:<sp/>&apos;</highlight><highlight class="normal"><sp/>.<sp/>$error[</highlight><highlight class="stringliteral">&apos;message&apos;</highlight><highlight class="normal">],<sp/></highlight><highlight class="stringliteral">&apos;error&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="1181"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>FALSE;</highlight></codeline>
<codeline lineno="1182"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1183"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="1184"><highlight class="normal"><sp/><sp/><sp/><sp/>drupal_set_message(t(</highlight><highlight class="stringliteral">&apos;Successful<sp/>connection<sp/>to<sp/>the<sp/>Galaxy<sp/>server<sp/>(version<sp/>%version)&apos;</highlight><highlight class="normal">,<sp/>[</highlight></codeline>
<codeline lineno="1185"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;%version&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$version[</highlight><highlight class="stringliteral">&apos;version_major&apos;</highlight><highlight class="normal">],</highlight></codeline>
<codeline lineno="1186"><highlight class="normal"><sp/><sp/><sp/><sp/>]));</highlight></codeline>
<codeline lineno="1187"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1188"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>TRUE;</highlight></codeline>
<codeline lineno="1189"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1190"><highlight class="normal"></highlight></codeline>
<codeline lineno="1203" refid="de/db0/group__tripal__galaxy__api_1ga8c44bcb1d8e06449fe1be78ef21f622b" refkind="member"><highlight class="keyword">function</highlight><highlight class="normal"><sp/><ref refid="de/db0/group__tripal__galaxy__api_1ga8c44bcb1d8e06449fe1be78ef21f622b" kindref="member">tripal_galaxy_get_files_dir</ref>()<sp/>{</highlight></codeline>
<codeline lineno="1204"><highlight class="normal"><sp/><sp/>global<sp/>$user;</highlight></codeline>
<codeline lineno="1205"><highlight class="normal"></highlight></codeline>
<codeline lineno="1206"><highlight class="normal"><sp/><sp/>$user_uid<sp/>=<sp/>md5($user-&gt;uid);</highlight></codeline>
<codeline lineno="1207"><highlight class="normal"></highlight></codeline>
<codeline lineno="1208"><highlight class="normal"><sp/><sp/>$site_dir<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;public://tripal/files/galaxy/&apos;</highlight><highlight class="normal"><sp/>.<sp/>$user_uid;</highlight></codeline>
<codeline lineno="1209"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!file_prepare_directory($site_dir,<sp/>FILE_CREATE_DIRECTORY))<sp/>{</highlight></codeline>
<codeline lineno="1210"><highlight class="normal"><sp/><sp/><sp/><sp/>$message<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;Could<sp/>not<sp/>access<sp/>the<sp/>directory<sp/>on<sp/>the<sp/>server<sp/>for<sp/>storing<sp/>this<sp/>file.&apos;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1211"><highlight class="normal"><sp/><sp/><sp/><sp/>watchdog(</highlight><highlight class="stringliteral">&apos;tripal&apos;</highlight><highlight class="normal">,<sp/>$message,<sp/>[],<sp/>WATCHDOG_ERROR);</highlight></codeline>
<codeline lineno="1212"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>FALSE;</highlight></codeline>
<codeline lineno="1213"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1214"><highlight class="normal"></highlight></codeline>
<codeline lineno="1215"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>$site_dir;</highlight></codeline>
<codeline lineno="1216"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1217"><highlight class="normal"></highlight></codeline>
<codeline lineno="1227" refid="de/db0/group__tripal__galaxy__api_1gab66a0326d58e3729e95cc28b1e69fa73" refkind="member"><highlight class="keyword">function</highlight><highlight class="normal"><sp/><ref refid="de/db0/group__tripal__galaxy__api_1gab66a0326d58e3729e95cc28b1e69fa73" kindref="member">tripal_galaxy_delete_expired_histories</ref>()<sp/>{</highlight></codeline>
<codeline lineno="1228"><highlight class="normal"></highlight></codeline>
<codeline lineno="1229"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Calculate<sp/>the<sp/>timestamp<sp/>for<sp/>how<sp/>old<sp/>a<sp/>history<sp/>has<sp/>to<sp/>be<sp/>in<sp/>order<sp/>to<sp/>get</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1230"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>deleted.<sp/>The<sp/>default<sp/>is<sp/>60<sp/>days.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1231"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>60<sp/>secs<sp/>*<sp/>60<sp/>mins<sp/>*<sp/>24<sp/>hours<sp/>*<sp/>x<sp/>days<sp/>==<sp/>total<sp/>seconds.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1232"><highlight class="normal"><sp/><sp/>$history_days_limit<sp/>=<sp/>variable_get(</highlight><highlight class="stringliteral">&apos;tripal_galaxy_history_days_limit&apos;</highlight><highlight class="normal">,<sp/>60)<sp/>*<sp/>60<sp/>*<sp/>60<sp/>*<sp/>24;</highlight></codeline>
<codeline lineno="1233"><highlight class="normal"><sp/><sp/>$history_max_age_date<sp/>=<sp/>time()<sp/>-<sp/>$history_days_limit;</highlight></codeline>
<codeline lineno="1234"><highlight class="normal"></highlight></codeline>
<codeline lineno="1235"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Find<sp/>workflows<sp/>that<sp/>are<sp/>as<sp/>older<sp/>or<sp/>older<sp/>than<sp/>our<sp/>max<sp/>history<sp/>age.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1236"><highlight class="normal"><sp/><sp/>$old_workflows<sp/>=<sp/>db_select(</highlight><highlight class="stringliteral">&apos;tripal_galaxy_workflow_submission&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;tgws&apos;</highlight><highlight class="normal">)</highlight></codeline>
<codeline lineno="1237"><highlight class="normal"><sp/><sp/><sp/><sp/>-&gt;fields(</highlight><highlight class="stringliteral">&apos;tgws&apos;</highlight><highlight class="normal">)</highlight></codeline>
<codeline lineno="1238"><highlight class="normal"><sp/><sp/><sp/><sp/>-&gt;condition(</highlight><highlight class="stringliteral">&apos;start_time&apos;</highlight><highlight class="normal">,<sp/>$history_max_age_date,<sp/></highlight><highlight class="charliteral">&apos;&lt;&apos;</highlight><highlight class="normal">)</highlight></codeline>
<codeline lineno="1239"><highlight class="normal"><sp/><sp/><sp/><sp/>-&gt;condition(</highlight><highlight class="stringliteral">&apos;status&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;Deleted&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;!=&apos;</highlight><highlight class="normal">)</highlight></codeline>
<codeline lineno="1240"><highlight class="normal"><sp/><sp/><sp/><sp/>-&gt;execute();</highlight></codeline>
<codeline lineno="1241"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>($old_workflow<sp/>=<sp/>$old_workflows-&gt;fetchObject())<sp/>{</highlight></codeline>
<codeline lineno="1242"><highlight class="normal"></highlight></codeline>
<codeline lineno="1243"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Skip<sp/>already<sp/>deleted<sp/>workflow<sp/>invocations.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1244"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>($old_workflow-&gt;status<sp/>==<sp/></highlight><highlight class="stringliteral">&apos;Deleted&apos;</highlight><highlight class="normal">)<sp/>{</highlight></codeline>
<codeline lineno="1245"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">continue</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1246"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1247"><highlight class="normal"></highlight></codeline>
<codeline lineno="1248"><highlight class="normal"><sp/><sp/><sp/><sp/>$submission<sp/>=<sp/><ref refid="de/db0/group__tripal__galaxy__api_1gaf8ee6e07586607a7a28bae4bc6d4f315" kindref="member">tripal_galaxy_get_submission</ref>($old_workflow-&gt;sid);</highlight></codeline>
<codeline lineno="1249"><highlight class="normal"><sp/><sp/><sp/><sp/>$history_name<sp/>=<sp/><ref refid="de/db0/group__tripal__galaxy__api_1ga789e6cf6dc77ff76856cbe3d8c2d8d93" kindref="member">tripal_galaxy_get_history_name</ref>($submission);</highlight></codeline>
<codeline lineno="1250"><highlight class="normal"><sp/><sp/><sp/><sp/>$success<sp/>=<sp/><ref refid="de/db0/group__tripal__galaxy__api_1ga0c1d8391681ee16b93797089d9bad767" kindref="member">tripal_galaxy_delete_remote_history</ref>($submission-&gt;galaxy_id,<sp/>$history_name);</highlight></codeline>
<codeline lineno="1251"><highlight class="normal"></highlight></codeline>
<codeline lineno="1252"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Disable<sp/>the<sp/>workflow<sp/>on<sp/>the<sp/>site<sp/>if<sp/>history<sp/>deletion<sp/>was<sp/>successful.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1253"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>($success)<sp/>{</highlight></codeline>
<codeline lineno="1254"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>drupal_set_message(</highlight><highlight class="stringliteral">&apos;Successfully<sp/>deleted<sp/>workflow<sp/>invocation:<sp/>&apos;</highlight><highlight class="normal"><sp/>.<sp/>$old_workflow-&gt;invocation_id);</highlight></codeline>
<codeline lineno="1255"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>db_update(</highlight><highlight class="stringliteral">&apos;tripal_galaxy_workflow_submission&apos;</highlight><highlight class="normal">)</highlight></codeline>
<codeline lineno="1256"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-&gt;fields(array(</highlight></codeline>
<codeline lineno="1257"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;status&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/></highlight><highlight class="stringliteral">&apos;Deleted&apos;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="1258"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>))</highlight></codeline>
<codeline lineno="1259"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-&gt;condition(</highlight><highlight class="stringliteral">&apos;invocation_id&apos;</highlight><highlight class="normal">,<sp/>$old_workflow-&gt;invocation_id)</highlight></codeline>
<codeline lineno="1260"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-&gt;execute();</highlight></codeline>
<codeline lineno="1261"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1262"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="1263"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>drupal_set_message(</highlight><highlight class="stringliteral">&apos;Failed<sp/>to<sp/>deleted<sp/>history<sp/>for<sp/>workflow<sp/>invocation:<sp/>&apos;</highlight><highlight class="normal"><sp/>.<sp/>$old_workflow-&gt;invocation_id,<sp/></highlight><highlight class="stringliteral">&apos;error&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="1264"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1265"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1266"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1267"><highlight class="normal"></highlight></codeline>
<codeline lineno="1283" refid="de/db0/group__tripal__galaxy__api_1ga0c1d8391681ee16b93797089d9bad767" refkind="member"><highlight class="keyword">function</highlight><highlight class="normal"><sp/><ref refid="de/db0/group__tripal__galaxy__api_1ga0c1d8391681ee16b93797089d9bad767" kindref="member">tripal_galaxy_delete_remote_history</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>$galaxy_id,<sp/></highlight><highlight class="keywordtype">string</highlight><highlight class="normal"><sp/>$history_name)<sp/>{</highlight></codeline>
<codeline lineno="1284"><highlight class="normal"><sp/><sp/>$error<sp/>=<sp/>[];</highlight></codeline>
<codeline lineno="1285"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="1286"><highlight class="normal"><sp/><sp/><sp/><sp/>$galaxy<sp/>=<sp/><ref refid="de/db0/group__tripal__galaxy__api_1ga7ecc0a27c271f35edb4aa49d799eb9c9" kindref="member">tripal_galaxy_get_connection</ref>($galaxy_id);</highlight></codeline>
<codeline lineno="1287"><highlight class="normal"><sp/><sp/><sp/><sp/>$history<sp/>=<sp/><ref refid="de/db0/group__tripal__galaxy__api_1gab81573a1e45464b19d9a2c32520bbf87" kindref="member">tripal_galaxy_get_history</ref>($galaxy,<sp/>$history_name);</highlight></codeline>
<codeline lineno="1288"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$history)<sp/>{</highlight></codeline>
<codeline lineno="1289"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>$error<sp/>=<sp/>$galaxy-&gt;getError();</highlight></codeline>
<codeline lineno="1290"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>Exception(</highlight><highlight class="stringliteral">&quot;Cannot<sp/>find<sp/>history,<sp/>$history_name<sp/>:&quot;</highlight><highlight class="normal"><sp/>.<sp/>$error[</highlight><highlight class="stringliteral">&apos;message&apos;</highlight><highlight class="normal">]);</highlight></codeline>
<codeline lineno="1291"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1292"><highlight class="normal"></highlight></codeline>
<codeline lineno="1293"><highlight class="normal"><sp/><sp/><sp/><sp/>$ghistories<sp/>=<sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>GalaxyHistories($galaxy);</highlight></codeline>
<codeline lineno="1294"><highlight class="normal"><sp/><sp/><sp/><sp/>$deleted<sp/>=<sp/>$ghistories-&gt;deleteHistory(array(</highlight></codeline>
<codeline lineno="1295"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;history_id&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$history[</highlight><highlight class="stringliteral">&apos;id&apos;</highlight><highlight class="normal">],</highlight></codeline>
<codeline lineno="1296"><highlight class="normal"><sp/><sp/><sp/><sp/>));</highlight></codeline>
<codeline lineno="1297"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$deleted)<sp/>{</highlight></codeline>
<codeline lineno="1298"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>$error<sp/>=<sp/>$galaxy-&gt;getError();</highlight></codeline>
<codeline lineno="1299"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>Exception(</highlight><highlight class="stringliteral">&quot;Cannot<sp/>delete<sp/>the<sp/>history,<sp/>$history_name<sp/>:&quot;</highlight><highlight class="normal"><sp/>.<sp/>$error[</highlight><highlight class="stringliteral">&apos;message&apos;</highlight><highlight class="normal">]);</highlight></codeline>
<codeline lineno="1300"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1301"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>TRUE;</highlight></codeline>
<codeline lineno="1302"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1303"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">catch</highlight><highlight class="normal"><sp/>(Exception<sp/>$e)<sp/>{</highlight></codeline>
<codeline lineno="1304"><highlight class="normal"><sp/><sp/><sp/><sp/>drupal_set_message(t(</highlight><highlight class="stringliteral">&apos;Could<sp/>not<sp/>delete<sp/>the<sp/>remote<sp/>history.<sp/><sp/>Please<sp/>contact<sp/>the<sp/>web<sp/>site<sp/>administrator<sp/>to<sp/>report<sp/>this<sp/>issue.&apos;</highlight><highlight class="normal">),<sp/></highlight><highlight class="stringliteral">&apos;error&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="1305"><highlight class="normal"><sp/><sp/><sp/><sp/>watchdog_exception(</highlight><highlight class="stringliteral">&apos;tripal_galaxy&apos;</highlight><highlight class="normal">,<sp/>$e);</highlight></codeline>
<codeline lineno="1306"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>FALSE;</highlight></codeline>
<codeline lineno="1307"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1308"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1309"><highlight class="normal"></highlight></codeline>
<codeline lineno="1331" refid="de/db0/group__tripal__galaxy__api_1gab4fa1a6f26abeddb5ac8ce2b0be47606" refkind="member"><highlight class="keyword">function</highlight><highlight class="normal"><sp/><ref refid="de/db0/group__tripal__galaxy__api_1gab4fa1a6f26abeddb5ac8ce2b0be47606" kindref="member">tripal_galaxy_get_datasets</ref>(stdClass<sp/>$submission)<sp/>{</highlight></codeline>
<codeline lineno="1332"><highlight class="normal"></highlight></codeline>
<codeline lineno="1333"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$submission-&gt;status<sp/>==<sp/></highlight><highlight class="stringliteral">&apos;Completed&apos;</highlight><highlight class="normal">)<sp/>{</highlight></codeline>
<codeline lineno="1334"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>Exception(</highlight><highlight class="stringliteral">&apos;Cannot<sp/>retrieve<sp/>results<sp/>for<sp/>a<sp/>workflow<sp/>invocation<sp/>that<sp/>has<sp/>not<sp/>yet<sp/>completed.&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="1335"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1336"><highlight class="normal"></highlight></codeline>
<codeline lineno="1337"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Connect<sp/>to<sp/>the<sp/>Galaxy<sp/>server<sp/>and<sp/>get<sp/>the<sp/>history.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1338"><highlight class="normal"><sp/><sp/>$galaxy_id<sp/>=<sp/>$submission-&gt;workflow-&gt;galaxy_id;</highlight></codeline>
<codeline lineno="1339"><highlight class="normal"><sp/><sp/>$galaxy<sp/>=<sp/><ref refid="de/db0/group__tripal__galaxy__api_1ga7ecc0a27c271f35edb4aa49d799eb9c9" kindref="member">tripal_galaxy_get_connection</ref>($galaxy_id);</highlight></codeline>
<codeline lineno="1340"><highlight class="normal"><sp/><sp/>$history_name<sp/>=<sp/>$submission-&gt;errors[</highlight><highlight class="stringliteral">&apos;history&apos;</highlight><highlight class="normal">][</highlight><highlight class="stringliteral">&apos;name&apos;</highlight><highlight class="normal">];</highlight></codeline>
<codeline lineno="1341"><highlight class="normal"><sp/><sp/>$history<sp/>=<sp/><ref refid="de/db0/group__tripal__galaxy__api_1gab81573a1e45464b19d9a2c32520bbf87" kindref="member">tripal_galaxy_get_history</ref>($galaxy,<sp/>$history_name);</highlight></codeline>
<codeline lineno="1342"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$history)<sp/>{</highlight></codeline>
<codeline lineno="1343"><highlight class="normal"><sp/><sp/><sp/><sp/>$error<sp/>=<sp/>$galaxy-&gt;getError();</highlight></codeline>
<codeline lineno="1344"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>Exception(</highlight><highlight class="stringliteral">&quot;Cannot<sp/>find<sp/>history,<sp/>$history_name<sp/>:&quot;</highlight><highlight class="normal"><sp/>.<sp/>$error[</highlight><highlight class="stringliteral">&apos;message&apos;</highlight><highlight class="normal">]);</highlight></codeline>
<codeline lineno="1345"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1346"><highlight class="normal"></highlight></codeline>
<codeline lineno="1347"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Get<sp/>the<sp/>history<sp/>contents</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1348"><highlight class="normal"><sp/><sp/>$ghistory_contents<sp/>=<sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>GalaxyHistoryContents($galaxy);</highlight></codeline>
<codeline lineno="1349"><highlight class="normal"><sp/><sp/>$history_contents<sp/>=<sp/>$ghistory_contents-&gt;index([</highlight></codeline>
<codeline lineno="1350"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;history_id&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$history[</highlight><highlight class="stringliteral">&apos;id&apos;</highlight><highlight class="normal">],</highlight></codeline>
<codeline lineno="1351"><highlight class="normal"><sp/><sp/>]);</highlight></codeline>
<codeline lineno="1352"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$history_contents)<sp/>{</highlight></codeline>
<codeline lineno="1353"><highlight class="normal"><sp/><sp/><sp/><sp/>$error<sp/>=<sp/>$galaxy-&gt;getError();</highlight></codeline>
<codeline lineno="1354"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>Exception(</highlight><highlight class="stringliteral">&quot;Cannot<sp/>find<sp/>the<sp/>history<sp/>contents<sp/>with<sp/>name<sp/>&apos;$history_name&apos;<sp/>:&quot;</highlight><highlight class="normal"><sp/>.<sp/>$error[</highlight><highlight class="stringliteral">&apos;message&apos;</highlight><highlight class="normal">]);</highlight></codeline>
<codeline lineno="1355"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1356"><highlight class="normal"></highlight></codeline>
<codeline lineno="1357"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Iterate<sp/>through<sp/>the<sp/>history<sp/>contents<sp/>and<sp/>get<sp/>a<sp/>list<sp/>of<sp/>datasets.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1358"><highlight class="normal"><sp/><sp/>$datasets<sp/>=<sp/>[];</highlight></codeline>
<codeline lineno="1359"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">foreach</highlight><highlight class="normal"><sp/>($history_contents<sp/>as<sp/>$entry)<sp/>{</highlight></codeline>
<codeline lineno="1360"><highlight class="normal"><sp/><sp/><sp/><sp/>$dataset_id<sp/>=<sp/>$entry[</highlight><highlight class="stringliteral">&apos;dataset_id&apos;</highlight><highlight class="normal">];</highlight></codeline>
<codeline lineno="1361"><highlight class="normal"></highlight></codeline>
<codeline lineno="1362"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Get<sp/>the<sp/>record<sp/>for<sp/>the<sp/>dataset.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1363"><highlight class="normal"><sp/><sp/><sp/><sp/>$gdataset<sp/>=<sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>GalaxyDatasets($galaxy);</highlight></codeline>
<codeline lineno="1364"><highlight class="normal"><sp/><sp/><sp/><sp/>$dataset<sp/>=<sp/>$gdataset-&gt;show([</highlight><highlight class="stringliteral">&apos;dataset_id&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$dataset_id]);</highlight></codeline>
<codeline lineno="1365"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$dataset)<sp/>{</highlight></codeline>
<codeline lineno="1366"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>$error<sp/>=<sp/>$galaxy-&gt;getError();</highlight></codeline>
<codeline lineno="1367"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>Exception(</highlight><highlight class="stringliteral">&quot;Cannot<sp/>find<sp/>the<sp/>dataset<sp/>with<sp/>ID<sp/>&apos;$dataset_id&apos;<sp/>:&quot;</highlight><highlight class="normal"><sp/>.<sp/>$error[</highlight><highlight class="stringliteral">&apos;message&apos;</highlight><highlight class="normal">]);</highlight></codeline>
<codeline lineno="1368"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1369"><highlight class="normal"></highlight></codeline>
<codeline lineno="1370"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Generate<sp/>a<sp/>filename<sp/>for<sp/>this<sp/>file.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1371"><highlight class="normal"><sp/><sp/><sp/><sp/>$file_name<sp/>=<sp/>preg_replace(</highlight><highlight class="stringliteral">&apos;/[^\w]/&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="charliteral">&apos;_&apos;</highlight><highlight class="normal">,<sp/>$dataset[</highlight><highlight class="stringliteral">&apos;name&apos;</highlight><highlight class="normal">])<sp/>.<sp/></highlight><highlight class="charliteral">&apos;.&apos;</highlight><highlight class="normal"><sp/>.<sp/>$dataset[</highlight><highlight class="stringliteral">&apos;file_ext&apos;</highlight><highlight class="normal">];</highlight></codeline>
<codeline lineno="1372"><highlight class="normal"><sp/><sp/><sp/><sp/>$datasets[]<sp/>=<sp/>$dataset;</highlight></codeline>
<codeline lineno="1373"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1374"><highlight class="normal"></highlight></codeline>
<codeline lineno="1375"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>$datasets;</highlight></codeline>
<codeline lineno="1376"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1377"><highlight class="normal"></highlight></codeline>
<codeline lineno="1399" refid="de/db0/group__tripal__galaxy__api_1ga6c6d71ff64c3101778972cfc949221e7" refkind="member"><highlight class="keyword">function</highlight><highlight class="normal"><sp/><ref refid="de/db0/group__tripal__galaxy__api_1ga6c6d71ff64c3101778972cfc949221e7" kindref="member">tripal_galaxy_get_dataset</ref>(stdClass<sp/>$submission,<sp/>$dataset_id)<sp/>{</highlight></codeline>
<codeline lineno="1400"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$submission-&gt;status<sp/>==<sp/></highlight><highlight class="stringliteral">&apos;Completed&apos;</highlight><highlight class="normal">)<sp/>{</highlight></codeline>
<codeline lineno="1401"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>Exception(</highlight><highlight class="stringliteral">&apos;Cannot<sp/>retrieve<sp/>results<sp/>for<sp/>a<sp/>workflow<sp/>invocation<sp/>that<sp/>has<sp/>not<sp/>yet<sp/>completed.&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="1402"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1403"><highlight class="normal"></highlight></codeline>
<codeline lineno="1404"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Connect<sp/>to<sp/>the<sp/>Galaxy<sp/>server<sp/>and<sp/>get<sp/>the<sp/>history.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1405"><highlight class="normal"><sp/><sp/>$galaxy_id<sp/>=<sp/>$submission-&gt;workflow-&gt;galaxy_id;</highlight></codeline>
<codeline lineno="1406"><highlight class="normal"><sp/><sp/>$galaxy<sp/>=<sp/><ref refid="de/db0/group__tripal__galaxy__api_1ga7ecc0a27c271f35edb4aa49d799eb9c9" kindref="member">tripal_galaxy_get_connection</ref>($galaxy_id);</highlight></codeline>
<codeline lineno="1407"><highlight class="normal"></highlight></codeline>
<codeline lineno="1408"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Get<sp/>the<sp/>record<sp/>for<sp/>the<sp/>dataset.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1409"><highlight class="normal"><sp/><sp/>$gdataset<sp/>=<sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>GalaxyDatasets($galaxy);</highlight></codeline>
<codeline lineno="1410"><highlight class="normal"><sp/><sp/>$dataset<sp/>=<sp/>$gdataset-&gt;show([</highlight><highlight class="stringliteral">&apos;dataset_id&apos;</highlight><highlight class="normal"><sp/>=&gt;<sp/>$dataset_id]);</highlight></codeline>
<codeline lineno="1411"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$dataset)<sp/>{</highlight></codeline>
<codeline lineno="1412"><highlight class="normal"><sp/><sp/><sp/><sp/>$error<sp/>=<sp/>$galaxy-&gt;getError();</highlight></codeline>
<codeline lineno="1413"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>Exception(</highlight><highlight class="stringliteral">&quot;Cannot<sp/>find<sp/>the<sp/>dataset<sp/>with<sp/>ID<sp/>&apos;$dataset_id&apos;<sp/>:&quot;</highlight><highlight class="normal"><sp/>.<sp/>$error[</highlight><highlight class="stringliteral">&apos;message&apos;</highlight><highlight class="normal">]);</highlight></codeline>
<codeline lineno="1414"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1415"><highlight class="normal"></highlight></codeline>
<codeline lineno="1416"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>$dataset;</highlight></codeline>
<codeline lineno="1417"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1418"><highlight class="normal"></highlight></codeline>
<codeline lineno="1419"><highlight class="normal"></highlight></codeline>
<codeline lineno="1443" refid="de/db0/group__tripal__galaxy__api_1gaa0e6b46831bf8ec128042d5a585c59e8" refkind="member"><highlight class="keyword">function</highlight><highlight class="normal"><sp/><ref refid="de/db0/group__tripal__galaxy__api_1gaa0e6b46831bf8ec128042d5a585c59e8" kindref="member">tripal_galaxy_download_file</ref>(stdClass<sp/>$submission,<sp/>array<sp/>$dataset,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>$uid)<sp/>{</highlight></codeline>
<codeline lineno="1444"><highlight class="normal"></highlight></codeline>
<codeline lineno="1445"><highlight class="normal"><sp/><sp/>$user<sp/>=<sp/>user_load($uid);</highlight></codeline>
<codeline lineno="1446"><highlight class="normal"></highlight></codeline>
<codeline lineno="1447"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Connect<sp/>to<sp/>the<sp/>remote<sp/>Galaxy<sp/>server.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1448"><highlight class="normal"><sp/><sp/>$galaxy_id<sp/>=<sp/>$submission-&gt;workflow-&gt;galaxy_id;</highlight></codeline>
<codeline lineno="1449"><highlight class="normal"><sp/><sp/>$galaxy<sp/>=<sp/><ref refid="de/db0/group__tripal__galaxy__api_1ga7ecc0a27c271f35edb4aa49d799eb9c9" kindref="member">tripal_galaxy_get_connection</ref>($galaxy_id);</highlight></codeline>
<codeline lineno="1450"><highlight class="normal"></highlight></codeline>
<codeline lineno="1451"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Generate<sp/>the<sp/>file_name<sp/>and<sp/>URL<sp/>for<sp/>downloading.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1452"><highlight class="normal"><sp/><sp/>$file_name<sp/>=<sp/>preg_replace(</highlight><highlight class="stringliteral">&apos;/[^\w]/&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="charliteral">&apos;_&apos;</highlight><highlight class="normal">,<sp/>$dataset[</highlight><highlight class="stringliteral">&apos;name&apos;</highlight><highlight class="normal">])<sp/>.<sp/></highlight><highlight class="charliteral">&apos;.&apos;</highlight><highlight class="normal"><sp/>.<sp/>$dataset[</highlight><highlight class="stringliteral">&apos;file_ext&apos;</highlight><highlight class="normal">];</highlight></codeline>
<codeline lineno="1453"><highlight class="normal"><sp/><sp/>$url<sp/>=<sp/>$galaxy-&gt;getURL()<sp/>.<sp/>$dataset[</highlight><highlight class="stringliteral">&apos;download_url&apos;</highlight><highlight class="normal">];</highlight></codeline>
<codeline lineno="1454"><highlight class="normal"></highlight></codeline>
<codeline lineno="1455"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Now<sp/>save<sp/>the<sp/>file</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1456"><highlight class="normal"><sp/><sp/>$history_name<sp/>=<sp/>$submission-&gt;errors[</highlight><highlight class="stringliteral">&apos;history&apos;</highlight><highlight class="normal">][</highlight><highlight class="stringliteral">&apos;name&apos;</highlight><highlight class="normal">];</highlight></codeline>
<codeline lineno="1457"><highlight class="normal"><sp/><sp/>$destination<sp/>=<sp/>tripal_get_user_files_dir($user)<sp/>.<sp/></highlight><highlight class="stringliteral">&apos;/analyses/&apos;</highlight><highlight class="normal"><sp/>.<sp/>$history_name;</highlight></codeline>
<codeline lineno="1458"><highlight class="normal"><sp/><sp/>file_prepare_directory($destination,<sp/>FILE_CREATE_DIRECTORY);</highlight></codeline>
<codeline lineno="1459"><highlight class="normal"><sp/><sp/>$file_uri<sp/>=<sp/>$destination<sp/>.<sp/></highlight><highlight class="charliteral">&apos;/&apos;</highlight><highlight class="normal"><sp/>.<sp/>$file_name;</highlight></codeline>
<codeline lineno="1460"><highlight class="normal"><sp/><sp/>$url_fh<sp/>=<sp/>fopen($url,<sp/></highlight><highlight class="stringliteral">&quot;r&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="1461"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$url_fh)<sp/>{</highlight></codeline>
<codeline lineno="1462"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>Exception(</highlight><highlight class="stringliteral">&quot;Unable<sp/>to<sp/>download<sp/>the<sp/>file<sp/>at<sp/>$url.&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="1463"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1464"><highlight class="normal"><sp/><sp/>$fh<sp/>=<sp/>fopen($file_uri,<sp/></highlight><highlight class="stringliteral">&quot;w&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="1465"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$url_fh)<sp/>{</highlight></codeline>
<codeline lineno="1466"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>Exception(</highlight><highlight class="stringliteral">&quot;Unable<sp/>to<sp/>save<sp/>file<sp/>$file_name.&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="1467"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1468"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>(!feof($url_fh))<sp/>{</highlight></codeline>
<codeline lineno="1469"><highlight class="normal"><sp/><sp/><sp/><sp/>fwrite($fh,<sp/>fread($url_fh,<sp/>255),<sp/>255);</highlight></codeline>
<codeline lineno="1470"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1471"><highlight class="normal"><sp/><sp/>fclose($url_fh);</highlight></codeline>
<codeline lineno="1472"><highlight class="normal"><sp/><sp/>fclose($fh);</highlight></codeline>
<codeline lineno="1473"><highlight class="normal"></highlight></codeline>
<codeline lineno="1474"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>See<sp/>if<sp/>this<sp/>file<sp/>is<sp/>already<sp/>managed<sp/>if<sp/>so,<sp/>then<sp/>it<sp/>has<sp/>been<sp/>uploaded</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1475"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>before<sp/>and<sp/>we<sp/>don&apos;t<sp/>need<sp/>to<sp/>add<sp/>a<sp/>managed<sp/>item<sp/>again.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1476"><highlight class="normal"><sp/><sp/>$fid<sp/>=<sp/>db_select(</highlight><highlight class="stringliteral">&apos;file_managed&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;fm&apos;</highlight><highlight class="normal">)</highlight></codeline>
<codeline lineno="1477"><highlight class="normal"><sp/><sp/><sp/><sp/>-&gt;fields(</highlight><highlight class="stringliteral">&apos;fm&apos;</highlight><highlight class="normal">,<sp/>[</highlight><highlight class="stringliteral">&apos;fid&apos;</highlight><highlight class="normal">])</highlight></codeline>
<codeline lineno="1478"><highlight class="normal"><sp/><sp/><sp/><sp/>-&gt;condition(</highlight><highlight class="stringliteral">&apos;uri&apos;</highlight><highlight class="normal">,<sp/>$file_uri)</highlight></codeline>
<codeline lineno="1479"><highlight class="normal"><sp/><sp/><sp/><sp/>-&gt;execute()</highlight></codeline>
<codeline lineno="1480"><highlight class="normal"><sp/><sp/><sp/><sp/>-&gt;fetchField();</highlight></codeline>
<codeline lineno="1481"><highlight class="normal"></highlight></codeline>
<codeline lineno="1482"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Now<sp/>register<sp/>the<sp/>file<sp/>with<sp/>Drupal</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1483"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!$fid)<sp/>{</highlight></codeline>
<codeline lineno="1484"><highlight class="normal"><sp/><sp/><sp/><sp/>$file<sp/>=<sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>stdClass();</highlight></codeline>
<codeline lineno="1485"><highlight class="normal"><sp/><sp/><sp/><sp/>$file-&gt;uri<sp/>=<sp/>$file_uri;</highlight></codeline>
<codeline lineno="1486"><highlight class="normal"><sp/><sp/><sp/><sp/>$file-&gt;filename<sp/>=<sp/>$file_name;</highlight></codeline>
<codeline lineno="1487"><highlight class="normal"><sp/><sp/><sp/><sp/>$file-&gt;filemime<sp/>=<sp/>file_get_mimetype($file_uri);</highlight></codeline>
<codeline lineno="1488"><highlight class="normal"><sp/><sp/><sp/><sp/>$file-&gt;uid<sp/>=<sp/>$user-&gt;uid;</highlight></codeline>
<codeline lineno="1489"><highlight class="normal"><sp/><sp/><sp/><sp/>$file-&gt;status<sp/>=<sp/>FILE_STATUS_PERMANENT;</highlight></codeline>
<codeline lineno="1490"><highlight class="normal"><sp/><sp/><sp/><sp/>$file<sp/>=<sp/>file_save($file);</highlight></codeline>
<codeline lineno="1491"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1492"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="1493"><highlight class="normal"><sp/><sp/><sp/><sp/>$file<sp/>=<sp/>file_load($fid);</highlight></codeline>
<codeline lineno="1494"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1495"><highlight class="normal"></highlight></codeline>
<codeline lineno="1496"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Set<sp/>the<sp/>file<sp/>as<sp/>being<sp/>managed<sp/>by<sp/>Tripal<sp/>and<sp/>Tripal<sp/>Galaxy</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1497"><highlight class="normal"><sp/><sp/>file_usage_add($file,<sp/></highlight><highlight class="stringliteral">&apos;tripal&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;galaxy_dataset&apos;</highlight><highlight class="normal">,<sp/>0);</highlight></codeline>
<codeline lineno="1498"><highlight class="normal"><sp/><sp/>file_usage_add($file,<sp/></highlight><highlight class="stringliteral">&apos;tripal_galaxy&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;galaxy_dataset&apos;</highlight><highlight class="normal">,<sp/>0);</highlight></codeline>
<codeline lineno="1499"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>$file;</highlight></codeline>
<codeline lineno="1500"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1501"><highlight class="normal"></highlight></codeline>
    </programlisting>
    <location file="/local/Projects/tripal_galaxy/api/tripal_galaxy.api.inc"/>
  </compounddef>
</doxygen>