diff --git a/app/models/miq_server/worker_management/process.rb b/app/models/miq_server/worker_management/process.rb index e83c4c9d486..e1288a6018b 100644 --- a/app/models/miq_server/worker_management/process.rb +++ b/app/models/miq_server/worker_management/process.rb @@ -7,22 +7,18 @@ def sync_from_system def sync_starting_workers sync_from_system - starting = MiqWorker.find_all_starting - starting.where(:pid => miq_processes_by_pid.keys) - .reject(&:rails_worker?) - .each { |w| w.update!(:status => MiqWorker::STATUS_STARTED) } + sync_starting_rails_workers + sync_starting_non_rails_workers - starting.reload + MiqWorker.find_all_starting.to_a end def sync_stopping_workers sync_from_system - stopping = MiqWorker.find_all_stopping - stopping.where(:pid => miq_processes_by_pid.keys) - .reject(&:rails_worker?) - .each { |w| w.update!(:status => MiqWorker::STATUS_STOPPED) } + sync_stopping_rails_workers + sync_stopping_non_rails_workers - stopping.reload + MiqWorker.find_all_stopping.to_a end def monitor_workers @@ -88,4 +84,24 @@ def validate_worker(worker) private attr_accessor :miq_processes, :miq_processes_by_pid + + def sync_starting_non_rails_workers + starting = MiqWorker.find_all_starting + starting.where(:pid => miq_processes_by_pid.keys) + .reject(&:rails_worker?) + .each { |w| w.update!(:status => MiqWorker::STATUS_STARTED) } + end + + def sync_starting_rails_workers + end + + def sync_stopping_non_rails_workers + stopping = MiqWorker.find_all_stopping + stopping.where(:pid => miq_processes_by_pid.keys) + .reject(&:rails_worker?) + .each { |w| w.update!(:status => MiqWorker::STATUS_STOPPED) } + end + + def sync_stopping_rails_workers + end end