====== Taverna server (version 2.5.4 - secured) ====== * grant permission to the Tomcat server to run code as other users visudo #taverna Defaults:tomcat7 !lecture, timestamp_timeout=0, passwd_tries=1 nano -w /etc/sudoers.d/taverna Runas_Alias TAV = %tomcat7 tomcat7 ALL=(TAV) NOPASSWD: ALL chmod 440 /etc/sudoers.d/taverna * install server wget https://launchpad.net/taverna-server/2.5.x/2.5.4/+download/TavernaServer-2.5.4.war service tomcat7 stop mv TavernaServer-2.5.4.war /var/lib/tomcat7/webapps/tavernaserver.war service tomcat7 start nano -w /var/lib/tomcat7/webapps/tavernaserver/WEB-INF/classes/log4j.properties #log4j.appender.R.File=${catalina.home}/logs/tavserv.out log4j.appender.R.File=/var/log/tomcat7/tavserv.out service tomcat7 restart * modify admin web page to allow empty workflow list nano -w /var/lib/tomcat7/webapps/tavernaserver/WEB-INF/classes/admin.html - + nano -w /var/lib/tomcat7/webapps/tavernaserver/WEB-INF/classes/static/admin.js ... /** How to get the list of permitted workflows; called on demand */ function refreshWorkflows() { - var wftable = $("#workflows"), wfbut = $("#saveWorkflows"), wfref = $("#refreshWorkflows"); + var wftable = $("#workflows"), wfbut = $("#saveWorkflows"), wfbut1 = $("#emptyWorkflows"), wfref = $("#refreshWorkflows"); wfbut.button("disable"); + wfbut1.button("disable"); wfref.button("disable"); getJSON(where("permittedWorkflowURIs"), function(data) { var s = ""; $.each(data.stringList.string || [], function(idx, str) { s += $.trim(str) + "\n"; }); wftable.val($.trim(s)); wfbut.button("enable"); + wfbut1.button("enable"); wfref.button("enable"); }); } /** How to set the list of permitted workflows; called when the user clicks */ function saveWorkflows() { - var wftable = $("#workflows"), wfbut = $("#saveWorkflows"); + var wftable = $("#workflows"), wfbut = $("#saveWorkflows"), wfbut1 = $("#emptyWorkflows"); var xml = NodeAll("stringList", "string", wftable.val().split("\n")); wfbut.button("disable"); + wfbut1.button("disable"); putXML(where("permittedWorkflowURIs"), xml, function() { refreshWorkflows(); }); } +/** How to empty the list of permitted workflows; called when the user clicks */ +function emptyWorkflows() { + var wftable = $("#workflows"), wfbut = $("#saveWorkflows"), wfbut1 = $("#emptyWorkflows"); + var xml = NodeAll("stringList", "string", ""); + wfbut.button("disable"); + wfbut1.button("disable"); + putXML(where("permittedWorkflowURIs"), xml, function() { + refreshWorkflows(); + }); +} ... /** Start everything going on page load */ $(function() { // Must be done in this order because the accordion is inside a tab $("#a-worker").accordion({ collapsible : true, fillSpace : true, autoHeight : false }); $("#body").tabs({ selected : 0 }); $("#saveWorkflows").button({ disabled : true }).click(function(event) { saveWorkflows(); event.preventDefault(); }); $("#refreshWorkflows").button({ disabled : true }).click(function(event) { refreshWorkflows(); event.preventDefault(); }); + $("#emptyWorkflows").button({ + disabled : true + }).click(function(event) { + emptyWorkflows(); + event.preventDefault(); + }); ... * Configure server by Administration Interface * Create a new USER (i.e. tavAdmin) and set System Username = tomcat7 * Empty Workflow URIs list: click on "Empty WF list"