Dashboard Application Tiles

One problem we’ve run into as we deploy OOD on different systems is that the application tiles on the dashboard don’t always show up. Specifically, those that launch jobs on the cluster nodes vs. local tasks. What I need to understand is how the dashboard determines whether the cluster is available so that the cluster application tiles are included.

An issue that has plagued us across different systems (managed by different vendors and organizations) is that the initialization for the bash shell (and other shells) is done VERY differently. The initialization for the most part assumes that the shell is used only as a user login shell – and some of the basic config is not done where it is needed for a simple SSH to run a command. I’ve located a couple places where I can adjust the SSH command generation to adapt to different systems, but it seems that there is one more place: in the dashboard logic where the cluster availability is determined so that the appropriate tiles are displayed. Where is this check accomplished?

The logic is located here.

Though the hidden bit is the only direct configuration. allow? is computed based on ACLs (if they’re defined) and login_allow? is computed by whether there is a login section at all.

Hmmm … interesting. It’s not the shell app that I’m having issues with, but batch_connect apps that launch through a cluster job. I think the section just below what you showed is what I want – and it depends on the ‘&:valid?’ construct that I’m not familiar with …

elsif role == "batch_connect"
  sub_app_list.select(&:valid?).map(&:link)

Where is that computed?

Here: ondemand/apps/dashboard/app/models/batch_connect/app.rb at cb46da0d30db047ca9f9341d3fb0e8a2173ced2f · OSC/ondemand · GitHub