Session Actions


  • Connect — requests connection information from the running session. This information is used to connect
  • Disconnect — disconnects all users from the session.
  • Share — sets up sharing information for the users.
  • Exec — executes a command on the session.
  • Params — gets/sets custom parameters
  • Logs — view the session logs
  • Purge — checks if session is accessible and purges the session from the database if it is not
  • Terminate — terminates the session

Purge vs Terminate Actions

The purge and terminate actions both attempt to remove the session from the cluster. However their user cases are different. In most cases, terminate is the preferred option as it is a destructive operation. A session can be purged but reappear at a later time.

Terminate

Sending a terminate call to a running session tells the session to shut down and end the session. The session monitor will attempt to shut down the session cleanly, and if all attempts fail (not typical), it will do a hard kill on the session. The session will then disconnect from the launcher and be removed from the datastore.

Sending a terminate to a pending session will call a special custom script that will attempt to stop the job scheduler from completing. Since the job scheduler is custom, there is no guarantee the terminate script will succeed, and success is user defined. For example, if the job scheduler script is set to a the supported docker template, the terminate command will run docker delete <session_id> where <session_id> is the id sent to the terminate call

Purge

Sending a purge call to a session will first attempt to see if the session is connected and running. If the session is running and connected, the purge will fail and the session will update the datastore with its information. If the session is not running (or is not connecting), the purge call will remove the session from the datastore deleting the session information.

Sending a purge to a pending session will delete the pending session from the datastore without testing for connectivity (since by definition it cannot be connected).