Over the course of the spring semester of 2019, I did research on OpenOnDemand and found an way to extend the platform without having to be constrained to their Interactive Apps. By digging into the OpenOnDemand GitHub, I learned of a RESTful API the was buried in the Ruby code of the webserver. There are endpoints for both the Active Jobs and the Job Composer modules of the OpenOnDemand Platform. Alongside the OpenOnDemand API, I also investigated the possibility of using the HPCC as a git server and allow running jobs from the a git repository on the HPCC.
In this repository, you will find documentation for all the found OpenOnDemand RESTful API endpoints, a partial implementation of these endpoints, and a tutorial on using Git with the HPCC.
In the example implementation, the functional javascript is located in "HPCC Dashboard/js/demo/dashboard.js". The javascript preforms a call to /js/data.json which is a json file containing the response of a call made to the GET Jobs endpoint previously. The reasoning for this is that, at the time of this writing, I am still awaiting permission to use proxy login with Case's CAS Single Sign In platform. See the Next Steps section to see how to integrate the real API call into the HPCC Dashboard.
Before you proceeded to replicate the dashboard, note that the general dashboard was created using an admin theme provided located here.
- If git is not installed on your system, install from here. You only need the command line installation for our purposes.
- Install Node.js, if not already installed, from here.
- Clone this repository to a known folder on you machine. To do this, navigate to the desired folder on your machine in a terminal and run the following command:
git clone https://github.com/AustinMathuw/EECS291.git
-
Open the project in a code editor of your choice (VS Code, Notepad++, etc.).
-
Open a terminal to the local repository change directory to HPCC Dashboard.
cd "HPCC Dashboard"
-
In the terminal, run
npm installto install all of the NodeJS dependencies for the project. -
Next, run the following command to enable browser-sync and allow live viewing of changes made to the project:
gulp watch
Gulp documentation specific to this project can be found here.
That's it! Feel free to extend the project to your specific purposes using the resources found in the References section! If you encountered any issues, the theme's GitHub may have the solution.
A critical next step for this project is hooking up the Dashboard to the OpenOnDemand API via proxy login with Case's CAS Single Sign In platform.
Some other next steps include adding the job composer functionalities or some analytics for the running jobs.
-
- Search "json" in repository to find relevant files.
-
- Used as a template for the Dashboard.
-
- Case's SSO platform that will be used for proxy authentication.
