Class: OodCore::Job::Adapters::Helper Private

Inherits:
Object
  • Object
show all
Defined in:
lib/ood_core/job/adapters/helper.rb

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Class Method Summary collapse

Class Method Details

.bin_path(cmd, bin_default, bin_overrides) ⇒ String

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Get the configured path to a command allowing overrides from bin_overrides

Parameters:

  • cmd (String)

    the desired command

  • bin_default (String)

    the default place to find cmd on the file system

  • bin_overrides (Hash<String, String>)

    commands associated with the full path to their replacement e.g. => '/usr/local/slurm/bin/squeue'

Returns:

  • (String)

    path to the configured command



12
13
14
# File 'lib/ood_core/job/adapters/helper.rb', line 12

def self.bin_path(cmd, bin_default, bin_overrides)
  bin_overrides.fetch(cmd.to_s) { Pathname.new(bin_default.to_s).join(cmd.to_s).to_s }
end

.ssh_portObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Allows for Non-Standard Port usage in ssh commands To set ENV, add assignment in /etc/ood/config/nginx_stage.yml



39
40
41
# File 'lib/ood_core/job/adapters/helper.rb', line 39

def self.ssh_port
  return ENV["OOD_SSH_PORT"].nil? ? "22" : "#{ENV['OOD_SSH_PORT'].to_i.to_s}"
end

.ssh_wrap(submit_host, cmd, cmd_args, strict_host_checking = true, env = {}) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Gets a command that submits command on another host via ssh

Parameters:

  • submit_host (String)

    where to submit the command

  • cmd (String)

    the desired command to execute on another host

  • cmd_args (Array)

    arguments to the command specified above

  • strict_host_checking (Bool) (defaults to: true)

    whether to use strict_host_checking

  • env (Hash) (defaults to: {})

    env variables to be set w/ssh



25
26
27
28
29
30
31
32
33
34
35
# File 'lib/ood_core/job/adapters/helper.rb', line 25

def self.ssh_wrap(submit_host, cmd, cmd_args, strict_host_checking = true, env = {})
  return cmd, cmd_args if submit_host.to_s.empty?

  check_host = strict_host_checking ? "yes" : "no"
  
  # Have to OodCore::Job::Adapters::Helper.ssh_port instead of self.ssh_port due to test failure
  args = ['-p', OodCore::Job::Adapters::Helper.ssh_port, '-o', 'BatchMode=yes', '-o', 'UserKnownHostsFile=/dev/null', '-o', "StrictHostKeyChecking=#{check_host}", "#{submit_host}"]
  env.each{|key, value| args.push("export #{key}=#{value};")}

  return 'ssh', args + [cmd] + cmd_args
end