v1.6 Release Notes

Highlights in 1.6:

Upgrading from v1.5


As always please update the development or test instances of OnDemand installed at your center first before you modify the production instance.

  1. Update OnDemand release RPM

    sudo yum install -y https://yum.osc.edu/ondemand/1.6/ondemand-release-web-1.6-4.noarch.rpm
  2. Update OnDemand

    sudo yum clean all
    sudo yum update ondemand

Application Version Changes

Table 12 Application Versions



Dashboard App

1.31.0 → 1.35.0 (diff)

Shell App

1.4.2 → 1.4.6 (diff)

Files App

1.5.1 → 1.5.3 (diff)

File Editor App

1.4.1 → 1.4.3 (diff)

Active Jobs App

1.7.0 → 1.9.2 (diff)

Job Composer App

2.11.0 → 2.15.0 (diff)

Desktops App

0.2.0 → 0.2.1 (diff)

Table 12 lists the app version changes between OnDemand v1.5.3 and OnDemand 1.6.7


OnDemand passed a security audit

At the end of 2018 TrustedCI completed a security audit of OnDemand and quoting the major findings of the audit: “No major issues were found in a comprehensive evaluation of the architecture and critical resources in Open OnDemand, and analysis of potential code weaknesses in critical components.”

Thanks to Elisa Heymann, Joel Atkins and Barton P. Miller for performing the audit! The full report is available as a PDF at openondemand.org.

Added job array support for LSF and PBSPro adapters

Job Composer and Active Jobs now support job arrays for all adapters that OnDemand supports including LSF and PBSPro.

Improved Slurm and Grid Engine adapters

To improve the reliability of parsing squeue output the record delimiter has been changed from newline to the ASCII/Unicode record separator.

To match the behavior of the other adapters the Grid Engine adapter will now attempt to detect whether the user has set the working directory of a job. If the user has not passed the -wd or -cwd flags in the first 1024 characters of their job script then the adapter will append -cwd to the arguments passed to qsub. Fixed error where the Grid Engine adapter would throw an error when getting information on a job that had exited the queue.

Added localization options to the Dashboard and Job Composer

Many more strings have been internationalized in the Dashboard and the Job Composer. This work does not cover all the strings in the app, but enables localization of the most important ones.

See Customize Text in OnDemand for details.

Added rendering of HTML or Markdown in Job Composer template manifests

If the environment variable RENDER_TEMPLATE_NOTES_AS_MARKDOWN is set to a truthy value then job template manifests displayed in the Job Composer that are written in Markdown will be run through the RedCarpet renderer. HTML values will always be rendered as HTML. This will allow sites to embed images or links to documentation in their templates. (ood-mjobs#291)

Added support for fetching quota from a URL

File usage quota warnings displayed on the Dashboard may now use a URL as their data source. Thanks to Dan Dietz at Purdue for the initial work on this feature.

Added VNC quality and compression controls

Controls to change the VNC compression and quality have been added to interactive session card:


This can help with users who want to sacrifice quality for a better connection speed and others who have great connection speed and want to maximize the quality.

Open Shell to compute node that a VNC job is running on

For running interactive sessions, the host name becomes a clickable link to open in the shell app:


Changed ‘Open in Terminal’ button to offer multiple options when OOD_SSH_HOSTS is set

In the Files app, if the environment variable OOD_SSH_HOSTS is set to a comma delimited value of host:title, then the Open in Terminal button will display a dropdown of hosts to ssh to, instead of ssh-ing to the default host. For example, in the image below I set OOD_SSH_HOSTS="owens.osc.edu:Owens,pitzer.osc.edu:Pitzer,ruby.osc.edu:Ruby":



In a future version of OnDemand we will change this app to load the hosts from the cluster configs.

Enable BatchConnect applications to raise errors after form submission

In the submit.yml.erb of an interactive app, if you raise an exception, the submission process will be aborted and the user will be shown the error. This enables interactive apps to support basic form submission validation.

Added version strings to Dashboard

The Dashboard will now display the version of OnDemand and the Dashboard in the footer. Interactive applications will display their versions next to their title on their launch page.

Changed ngnix_stage to always remove stale PID files

nginx_stage clean will now remove PID and socket files for processes that are not longer running. Whenever a stale PID files is deleted its removal is reported on stderr. (ondemand#11)

Add ability to disable RewriteEngine in Apache config

You can now omit enabling the RewriteEngine by adding use_rewrites: false to the /etc/ood/config/ood_portal.yml config file and re-running the sudo /opt/ood/ood-portal-generator/sbin/update_ood_portal to update the ood-portal.conf Apache config.

Many bug fixes

  • Setting the environmental variable OOD_SHELL to an empty string will now hide the Open in Terminal button as documented. (ood-fileexplorer#191)

  • Job Composer logs will no longer contain complaints about gems not being eager loaded. (ood-myjobs#285)

  • nginx_stage will no longer crash when one of the pun_custom_env values in /etc/ood/config/nginx_stage.yml is a number and not a string. (ondemand#26)

  • In Active Jobs, display nothing in “Account” column if no account set for the job, instead of displaying (null).

  • Fixed Time Used format for Active Jobs: In 1.5 the Time Used field in Active Jobs was the number of seconds elapsed as an integer. In 1.6 this has been changed back to HH:MM:SS.

  • Fixed Job Composer layout when job name is long: Job names that were exceptionally long and did not contain ‘break-able’ punctuation could break the layout of the Job Composer’s data table. The table has been updated so that job names wrap and will break mid-word if necessary.

  • Fixed Shell App paste issues in MS Edge and Firefox (#62, #59, and #64)