Tasks
Write a software application, service, daemon or web application which will accept requests from remote users in order to trigger the execution of shell scripts which have been already deployed in the machine and the module is aware of their location and also naming.
The scripts should accept parameters which are passed by the module. We recommend to model this behavior with a shell script which will accept strings as arguments and write them in a text file.
The remote user can transfer files to a local directory and pickup result files if any. No SSH shell access should be invoked in the process. It can be considered that the module is operating in a highly trusted environment so no authentication is required in the context of the exercise.
Any file output of the shell script's execution should be stored retrieved from the query and stored in a directory defined by you. You can assume that there is full transparency in the location of the script's output, you can make it the easiest way possible for you.
Any output in the standard output should be stored in a separate file, in order to identify later any possible error in the script's execution.
The bonus part of task will be to add the collection of KPIs and visualize them with any tool of your choice. The KPIs we recommend you to collect are the following:
• Timestamp or date time of the execution for every task submitted.
• Number of tasks submitted and executed within the day.
• Free disk space after the execution of every submitted task (remember that in production this module is handling files with 100s of Gigabytes of size so this metric is crucial).
Visualizing the KPIs with any tool of your choice will be the icing on the cake. :-)
Conditions
• You can use any language and framework you wish and host you wish.
• You should not publish your solution online or by any other means without Ooredoo's consent.
• Style and sane principles will be appreciated.
• Submitting your solution after the deadline will render it invalid.