} if (array_key_exists('port', $_GET)) { $port = $_GET['port']; } if (array_key_exists('vt', $_GET)) { $vtid = $_GET['vt']; } if (array_key_exists('version', $_GET)) { $version = $_GET['version']; } if (array_key_exists('tag', $_GET)) { $version_tag = $_GET['tag']; if ($version_tag != '') { $request = xmlrpc_encode_request('get_tag_version', array($host, $port, $dbname, $vtid, $version_tag)); $response = do_call($VT_HOST, $VT_PORT, $request); $version = get_version_from_response($response); } } if (array_key_exists('buildalways', $_GET)) { $force_build = (bool) $_GET['buildalways']; } //echo $force_build; //Check if vtid and version were provided //echo $vtid . $version; if ($vtid != '' and $version != '') { //echo $host . $port . $dbname . $vtid . $version; $request = xmlrpc_encode_request('get_wf_xml', array($host, $port, $dbname, $vtid, $version)); //echo $request; $response = do_call($VT_HOST, $VT_PORT, $request); $response = html_entity_decode($response); header("Content-Type: text/xml");
function printVistrailTag($input, $params) { global $PATH_TO_IMAGES, $WEB_PATH_TO_IMAGES, $URL_TO_GRAPHS, $PATH_TO_GRAPHS, $VT_HOST, $VT_PORT, $USE_LOCAL_VISTRAILS_SERVER, $USE_VISTRAILS_XML_RPC_SERVER, $PATH_TO_VISTRAILS, $URL_TO_DOWNLOAD, $DB_HOST, $DB_NAME, $DB_PORT; $host = $DB_HOST; $dbname = $DB_NAME; $username = "******"; $vtid = ""; $version = ""; $port = $DB_PORT; $version_tag = ""; $execute = "False"; $showspreadsheetonly = "False"; $force_build = 'False'; $embedWorkflow = 'False'; $includeFullTree = 'False'; $forceDB = 'False'; $showTree = 'False'; $showWorkflow = 'False'; foreach ($params as $key => $value) { if ($key == "vtid") { $vtid = $value; } if ($key == "version") { $version = $value; } if ($key == "host") { $host = $value; } if ($key == "db") { $dbname = $value; } if ($key == "port") { $port = $value; } if ($key == "tag") { $version_tag = $value; if ($version_tag != '') { $request = xmlrpc_encode_request('get_tag_version', array($host, $port, $dbname, $vtid, $version_tag)); $response = do_call($VT_HOST, $VT_PORT, $request); $version = get_version_from_response($response); //echo $version; } } if ($key == "execute") { $execute = $value; } if ($key == "showspreadsheetonly") { $showspreadsheetonly = $value; } if ($key == "buildalways") { $force_build = $value; } if ($key == 'embedworkflow') { $embedWorkflow = $value; } if ($key == 'includefulltree') { $includeFullTree = $value; } if ($key == 'forcedb') { $forceDB = $value; } if ($key == 'showworkflow') { $showWorkflow = $value; } if ($key == 'showtree') { $showTree = $value; } } $linkParams = "getvt=" . $vtid . "&version=" . $version . "&db=" . $dbname . "&host=" . $host . "&port=" . $port . "&tag=" . $version_tag . "&execute=" . $execute . "&showspreadsheetonly=" . $showspreadsheetonly . "&embedWorkflow=" . $embedWorkflow . "&includeFullTree=" . $includeFullTree . "&forceDB=" . $forceDB; if (strcasecmp($showTree, 'True') == 0) { $filename = md5($host . '_' . $dbname . '_' . $port . '_' . $vtid); $filename = 'vistrails/' . $filename . ".png"; //this request is cached only on the server side $request = xmlrpc_encode_request("get_vt_graph_png", array($host, $port, $dbname, $vtid, $USE_LOCAL_VISTRAILS_SERVER)); $response = do_call($VT_HOST, $VT_PORT, $request); $result = clean_up($response, $filename); list($width, $height, $type, $attr) = getimagesize($PATH_TO_GRAPHS . $result); if ($width > 400) { $width = 400; } $res = '<a href="' . $URL_TO_DOWNLOAD . '?' . $linkParams . '">'; $res = $res . '<img src="' . $URL_TO_GRAPHS . $result . "\" alt=\"vt_id:{$vtid}\" width=\"{$width}\"/>"; $res = $res . '</a>'; return $res; } elseif (strcasecmp($showWorkflow, 'True') == 0) { $filename = md5($host . '_' . $dbname . '_' . $port . '_' . $vtid . '_' . $version); $filename = 'workflows/' . $filename . ".png"; $fullpath = $PATH_TO_GRAPHS . $filename; $cached = file_exists($fullpath); if ($USE_LOCAL_VISTRAILS_SERVER or (!$cached or strcasecmp($force_build, 'True') == 0)) { $request = xmlrpc_encode_request("get_wf_graph_png", array($host, $port, $dbname, $vtid, $version, $USE_LOCAL_VISTRAILS_SERVER)); $response = do_call($VT_HOST, $VT_PORT, $request); $result = clean_up($response, $filename); } else { $result = $filename; } list($width, $height, $type, $attr) = getimagesize($PATH_TO_GRAPHS . $result); if ($width > 400) { $width = 400; } $res = '<a href="' . $URL_TO_DOWNLOAD . '?' . $linkParams . '">'; $res = $res . '<img src="' . $URL_TO_GRAPHS . $result . "\" alt=\"vt_id:{$vtid} version:{$version}\" width=\"{$width}\"/>"; $res = $res . '</a>'; return $res; } else { $result = ''; $destdir = $PATH_TO_IMAGES; $destversion = $host . '_' . $dbname . '_' . $port . '_' . $vtid . '_' . $version; $destversion = md5($destversion); $destdir = $destdir . $destversion; $build_always_bool = False; if (strcasecmp($force_build, 'True') == 0) { $build_always_bool = True; } if (!path_exists_and_not_empty($destdir) or strcasecmp($force_build, 'True') == 0) { if (!file_exists($destdir)) { mkdir($destdir, 0770); chmod($destdir, 0770); } if (!$USE_VISTRAILS_XML_RPC_SERVER) { chdir($PATH_TO_VISTRAILS); $setVariables = 'export PATH=$PATH:/usr/bin/X11;export HOME=/var/lib/wwwrun; export TEMP=/tmp; export DISPLAY=localhost:1.0; export LD_LIBRARY_PATH=/usr/local/lib;'; $mainCommand = 'python vistrails/run.py -b -e ' . $destdir . ' -t ' . host . ' -r ' . $port . ' -f ' . $dbname . ' -u ' . username . ' "' . $vtid . ':' . $version . '"'; $result = exec($setVariables . $mainCommand . ' 2>&1', $output, $result); } else { $request = xmlrpc_encode_request('run_from_db', array($host, $port, $dbname, $vtid, $destdir, $version, False, '', $build_always_bool, '', $USE_LOCAL_VISTRAILS_SERVER)); $response = do_call($VT_HOST, $VT_PORT, $request); $result = multiple_clean_up($response, $destdir); } } } $files = scandir($destdir); $n = sizeof($files); if ($n > 2) { $res = '<a href="' . $URL_TO_DOWNLOAD . '?' . $linkParams . '">'; foreach ($files as $filename) { if ($filename != '.' and $filename != '..') { list($width, $height, $type, $attr) = getimagesize($destdir . '/' . $filename); if ($width > 350) { $width = 350; } $res = $res . '<img src="' . $WEB_PATH_TO_IMAGES . $destversion . '/' . $filename . "\" alt=\"vt_id:{$vtid} version:{$version}\" width=\"{$width}\"/>"; } } $res = $res . '</a>'; } else { $res = "ERROR: Vistrails didn't produce any image.\n" . "This is the output: \n" . $result; } return $res; }