Class: Process::Naf::Application
- Inherits:
-
Af::Application
- Object
- Af::Application
- Process::Naf::Application
show all
- Defined in:
- app/models/process/naf/application.rb
Defined Under Namespace
Modules: Component
Classes: TerminationRequest
Instance Method Summary
collapse
Constructor Details
Returns a new instance of Application.
25
26
27
28
29
30
31
32
33
34
35
|
# File 'app/models/process/naf/application.rb', line 25
def initialize
super
opt :log_configuration_files, default: ["af.yml",
"af-#{Rails.env}.yml",
"naf.yml",
"naf-#{Rails.env}.yml",
"nafjob.yml",
"nafjob-#{Rails.env}.yml",
"#{af_name}.yml",
"#{af_name}-#{Rails.env}.yml"]
end
|
Instance Method Details
117
118
119
|
# File 'app/models/process/naf/application.rb', line 117
def add_job_tags(*new_tags)
update_job_tags([], new_tags)
end
|
#database_application_name ⇒ Object
37
38
39
|
# File 'app/models/process/naf/application.rb', line 37
def database_application_name
return "//pid=#{Process.pid}/jid=#{@naf_job_id}/#{af_name}"
end
|
#fetch_naf_job ⇒ Object
41
42
43
44
45
46
|
# File 'app/models/process/naf/application.rb', line 41
def fetch_naf_job
if @naf_job_id.is_a?(Integer) && @naf_job_id > 0
return ::Naf::HistoricalJob.from_partition(@naf_job_id).find(@naf_job_id)
end
return nil
end
|
#job_tag_block(*tags, &block) ⇒ Object
95
96
97
98
99
100
101
102
103
104
105
106
107
|
# File 'app/models/process/naf/application.rb', line 95
def job_tag_block(*tags, &block)
job = fetch_naf_job.try(:running_job)
begin
if job
add_job_tags(*tags)
end
yield if block.present?
ensure
if job
remove_job_tags(*tags)
end
end
end
|
#post_command_line_parsing ⇒ Object
48
49
50
51
|
# File 'app/models/process/naf/application.rb', line 48
def post_command_line_parsing
super
Af::Logging::Configurator.log_ignore_configuration = (naf_job_id.blank? && Af::Logging::Configurator.log_console != false)
end
|
#pre_work ⇒ Object
53
54
55
56
57
58
59
60
61
|
# File 'app/models/process/naf/application.rb', line 53
def pre_work
set_connection_application_name(database_application_name)
Log4r::GDC.set(naf_job_id.to_s)
super
update_job_status
end
|
121
122
123
|
# File 'app/models/process/naf/application.rb', line 121
def remove_job_tags(*old_tags)
update_job_tags(old_tags, [])
end
|
#update_job_status ⇒ Object
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
# File 'app/models/process/naf/application.rb', line 63
def update_job_status
periodic_application_checkpoint
job = fetch_naf_job
if job
unless @do_not_terminate
if job.request_to_terminate
logger.warn "terminating by request"
raise TerminationRequest.new(job, "job requested to terminate")
end
unless job.started_on_machine
logger.alarm "terminating: #{job.started_on_machine} is misconfigured"
raise TerminationRequest.new(job, "machine not configured correctly")
end
unless job.started_on_machine.enabled
logger.alarm "terminating: #{job.started_on_machine} is disabled"
raise TerminationRequest.new(job, "machine disabled")
end
if job.started_on_machine.marked_down
logger.alarm "terminating: #{job.started_on_machine} is marked down"
raise TerminationRequest.new(job, "machine marked down")
end
end
if job.log_level != @last_log_level
@last_log_level = job.log_level
unless @last_log_level.blank?
logging_configurator.parse_and_set_logger_levels(@last_log_level)
end
end
end
end
|
109
110
111
112
113
114
115
|
# File 'app/models/process/naf/application.rb', line 109
def update_job_tags(old_tags, new_tags)
job = fetch_naf_job.try(:running_job)
if job
job.remove_tags(old_tags.map(&:to_s))
job.add_tags(new_tags.map(&:to_s))
end
end
|
#work ⇒ Object
125
126
|
# File 'app/models/process/naf/application.rb', line 125
def work
end
|