Skip to content

Commit d33aeb0

Browse files
committed
Set system_uid in miq_server
1 parent ccfb65d commit d33aeb0

File tree

3 files changed

+15
-11
lines changed

3 files changed

+15
-11
lines changed

app/models/miq_worker.rb

+4-8
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ class MiqWorker < ApplicationRecord
55
include SystemdCommon
66
include UuidMixin
77

8-
after_initialize :set_system_uid
98
before_destroy :error_out_tasks_with_active_queue_message, :log_destroy_of_worker_messages
109

1110
belongs_to :miq_server
@@ -338,7 +337,7 @@ def systemd_worker?
338337
self.class.systemd_worker?
339338
end
340339

341-
def start_runner
340+
def start_runner!
342341
if systemd_worker?
343342
start_systemd_worker
344343
elsif containerized_worker?
@@ -383,12 +382,13 @@ def start_runner_via_spawn
383382
[:out, :err] => [Rails.root.join("log/evm.log"), "a"]
384383
)
385384
Process.detach(pid)
385+
self.system_uid = self.pid = pid
386386
pid
387387
end
388388

389389
def start
390-
self.pid = start_runner
391-
save if !containerized_worker? && !systemd_worker?
390+
start_runner!
391+
save!
392392

393393
msg = "Worker started: ID [#{id}], PID [#{pid}], GUID [#{guid}]"
394394
MiqEvent.raise_evm_event_queue(miq_server || MiqServer.my_server, "evm_worker_start", :event_details => msg, :type => self.class.name)
@@ -494,10 +494,6 @@ def clean_active_messages
494494
end
495495
end
496496

497-
private def set_system_uid
498-
self.system_uid = unit_name if systemd_worker?
499-
end
500-
501497
private def error_out_tasks_with_active_queue_message
502498
message = "Task Handler: [#{friendly_name}] ID [#{id}] has been deleted!"
503499
processed_messages.includes(:miq_task).where.not(:miq_task_id => nil).each do |m|

app/models/miq_worker/runner.rb

+10-3
Original file line numberDiff line numberDiff line change
@@ -158,9 +158,16 @@ def log_prefix
158158
#
159159

160160
def find_worker_record
161-
@worker = self.class.corresponding_model.find_by(:guid => @cfg[:guid])
162-
do_exit("Unable to find instance for worker GUID [#{@cfg[:guid]}].", 1) if @worker.nil?
163-
MiqWorker.my_guid = @cfg[:guid]
161+
worker_find_opts = {}
162+
if @cfg[:system_uid]
163+
worker_find_opts[:system_uid] = @cfg[:system_uid]
164+
else
165+
worker_find_opts[:guid] = @cfg[:guid]
166+
end
167+
168+
@worker = self.class.corresponding_model.find_by(worker_find_opts)
169+
do_exit("Unable to find instance for worker [#{worker_find_opts.values.first}].", 1) if @worker.nil?
170+
MiqWorker.my_guid = @worker.guid
164171
end
165172

166173
def starting_worker_record

app/models/miq_worker/systemd_common.rb

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ def unit_name
2525
end
2626

2727
def start_systemd_worker
28+
self.system_uid = unit_name
2829
enable_systemd_unit
2930
write_unit_settings_file
3031
start_systemd_unit

0 commit comments

Comments
 (0)