What is this component?
Target audience
Set up
Behind the curtains
Single Job Wizard simplifies workflow creation and execution in the most simple case, if the workflow contains one job only. What looks a huge disadvantage in aspect of the possibilities of workflow development, provides more advantages to create and execute these kind of workflows: no Workflow Editor required, several creation and configuration interfaces are not needed in this case any more. The job will be executed on those resource what is prepared by the portal administrator, so if mechanism of the Robot Certificates are utilized, then the users do not have to take care about authentication neither.
We were focusing in simplicity, therefore the users are able to drop their applications, and the inputs required then specify the names of the output files going to be generated by the application. And that's all, folks, the job is going to be submitted to the resource.
This interface is created for beginner users, who do not want to deal with complexity of graph creation and workflow configuration, they would like to just execute an application remotely.
For a successfull setup and configuration you must follow the next steps:
Deploy the web application (singlejobwizard.war) through Liferay by clicking to Go to -> Control Panel -> “Plugins Installation” in the “Server” group in menu on the left-hand side. Then click to Install more Portlets button and the to “Upload File”. After picking singlejobwizard.war to be uploaded you should see the following screen:

Navigate to Internal Services interface in Settings menu, and add a new component with the following properties:
In the same interface, go to “Copy Component properties” panel and copy the properties of the wspgrade component to singlejobwizard component.(see the next figure)

get the process ID of java by executing the following command:
JAVAPID=`ps aux | grep java`
then kill the process
kill -9 $JAVAPID
Finally start the portal by executing startup.sh located in tomcat's bin folder:
./startup.sh
Navigate to PORTAL_URL:8080/information/init page and initialize the portal by following the instructions.
Once the portal has been started successfully, add new page (Optional) by clicking “Add” button on the top menu and clicking to “Page” button (see next figure) and then by typing its name. The settings can be finalized by clicking the green tick.

Associate the portlet to the page by clicking to “Add” button on the top menu and then selecting option “More”. Then, after the categories of portlets appear, open SZTAKI.wspgrade category and click "add" button in the row of Single-Job Wizard.
Please note that until no exported workflow is being associated to the portlet, the following message will appear each time when the users click on the portlet's page: "Base Workflow has not been set, hence you cannot use the Wizard! Please contact your administrator immediately!".

You can download the skeleton workflow from here.
Go to upload portlet and upload the prepared workflow to the portal server(as it is shown in the next figure).

Then reconfigure its resource adjusted (by default is local submitter, for production purposes CloudBroker + Robot Certificate is suggested)
Finally export the reconfigured workflow as application into the Local Repository by clicking Export button.
Open the portlet’s configuration panel by clicking to the wrench of the top right corner of the portlet(see next figure).

Then select the workflow that you have exported as a base workflow for Single Job Wizard.

And select what kind of resources may be used by the Wizard (Federated Cloud or Direct Clouds).
Note: the possible resources will be filtered in the Wizard interface automatically according to this selection.
Finally, set permissions in “Permissions” panel to hide the wrench from the users avoiding reconfiguration and to allow View option for them.

In technical terms Single Job Wizard is based on ASM API provided by WS-PGRADE/gUSE system. In its heart a prepared one-job workflow is staying containing 4 inputs(the application, inputs compressed, command line arguments, output names descriptor file) and 1 output(all the required outputs compressed). It executes a simple script that is responsible for the decompression of the inputs and executes the application. Once the application is finished successfully, it gets the certain output files specified by the user, and compress them and it ends. If the application fails the wrapper script inherits in exit code and returns. Once the core system realizes that the wrapper is finished, it downloads the output (the compressed file) and set the proper status for the application.