Module: SqlCmd::Agent::Job

Defined in:
lib/sql_cmd/agent.rb

Class Method Summary collapse

Class Method Details

.exists?(connection_string, job_name) ⇒ Boolean

Returns:

  • (Boolean)


6
7
8
# File 'lib/sql_cmd/agent.rb', line 6

def exists?(connection_string, job_name)
  status(connection_string, job_name)['LastRunStatus'] != 'NoJob'
end

.run_status(connection_string, job_name) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/sql_cmd/agent.rb', line 23

def run_status(connection_string, job_name)
  raise 'Failed to get job status! The connection_string argument must be specified.' if connection_string.nil? || connection_string.empty?
  raise 'Failed to get job status! The job_name argument must be specified.' if job_name.nil? || job_name.empty?
  sql_script = ::File.read("#{SqlCmd.sql_script_dir}/Agent/JobRunStatus.sql")
  server_connection_string = SqlCmd.remove_connection_string_part(connection_string, :database)
  SqlCmd.execute_query(server_connection_string, sql_script, return_type: :first_row, values: { 'jobname' => job_name }, readonly: true, retries: 3) || {}
end

.running?(connection_string, job_name) ⇒ Boolean

Returns:

  • (Boolean)


10
11
12
# File 'lib/sql_cmd/agent.rb', line 10

def running?(connection_string, job_name)
  !run_status(connection_string, job_name).empty?
end

.status(connection_string, job_name) ⇒ Object



14
15
16
17
18
19
20
21
# File 'lib/sql_cmd/agent.rb', line 14

def status(connection_string, job_name)
  raise 'Failed to get job status! The connection_string argument must be specified.' if connection_string.nil? || connection_string.empty?
  raise 'Failed to get job status! The job_name argument must be specified.' if job_name.nil? || job_name.empty?
  return { 'LastRunStatus' => 'Running' } if running?(connection_string, job_name)
  sql_script = ::File.read("#{SqlCmd.sql_script_dir}/Agent/JobLastRunInfo.sql")
  server_connection_string = SqlCmd.remove_connection_string_part(connection_string, :database)
  SqlCmd.execute_query(server_connection_string, sql_script, return_type: :first_row, values: { 'jobname' => job_name }, readonly: true, retries: 3) || { 'LastRunStatus' => 'NoJob' }
end