File tree Expand file tree Collapse file tree 5 files changed +11
-16
lines changed
spec/models/miq_server/worker_management Expand file tree Collapse file tree 5 files changed +11
-16
lines changed Original file line number Diff line number Diff line change @@ -5,7 +5,7 @@ class MiqServer::WorkerManagement
5
5
include Heartbeat
6
6
include Monitor
7
7
8
- attr_reader :my_server
8
+ attr_reader :my_server , :workers
9
9
10
10
def self . build ( my_server )
11
11
klass = if podified?
Original file line number Diff line number Diff line change @@ -21,19 +21,15 @@ def sync_from_system
21
21
end
22
22
23
23
def sync_starting_workers
24
- starting = MiqWorker . find_all_starting . to_a
25
- starting . each do |worker |
24
+ MiqWorker . find_all_starting . each do |worker |
26
25
next if worker . class . rails_worker?
27
26
28
27
worker_pod = get_pod ( worker [ :system_uid ] )
29
28
container_status = worker_pod . status . containerStatuses . find { |container | container . name == worker . worker_deployment_name }
30
29
if worker_pod . status . phase == "Running" && container_status . ready && container_status . started
31
30
worker . update! ( :status => "started" )
32
- starting . delete ( worker )
33
31
end
34
32
end
35
-
36
- starting
37
33
end
38
34
39
35
def enough_resource_to_start_worker? ( _worker_class )
Original file line number Diff line number Diff line change @@ -38,9 +38,9 @@ def worker_not_responding(w)
38
38
end
39
39
40
40
def sync_workers
41
- MiqWorkerType . worker_classes . each_with_object ( { } ) do |klass , result |
42
- result [ klass . name ] = klass . sync_workers
43
- result [ klass . name ] [ :adds ] . each { |pid | worker_add ( pid ) unless pid . nil? }
41
+ MiqWorkerType . worker_classes . each do |klass |
42
+ result = klass . sync_workers
43
+ result [ :adds ] . each { |pid | worker_add ( pid ) unless pid . nil? }
44
44
rescue => error
45
45
_log . error ( "Failed to sync_workers for class: #{ klass . name } : #{ error } " )
46
46
_log . log_backtrace ( error )
Original file line number Diff line number Diff line change @@ -5,21 +5,17 @@ def sync_from_system
5
5
end
6
6
7
7
def sync_starting_workers
8
- starting = MiqWorker . find_all_starting . to_a
9
8
sync_from_system
10
- starting . each do |worker |
9
+ MiqWorker . find_all_starting . each do |worker |
11
10
next if worker . class . rails_worker?
12
11
13
12
systemd_worker = miq_services_by_unit [ worker [ :system_uid ] ]
14
13
next if systemd_worker . nil?
15
14
16
15
if systemd_worker [ :load_state ] == "loaded" && systemd_worker [ :active_state ] == "active" && systemd_worker [ :sub_state ] == "running"
17
- worker . update! ( :status => "started" )
18
- starting . delete ( worker )
16
+ worker . update! ( :status => MiqWorker ::STATUS_STARTED )
19
17
end
20
18
end
21
-
22
- starting
23
19
end
24
20
25
21
def cleanup_failed_workers
Original file line number Diff line number Diff line change 40
40
allow ( MiqWorkerType ) . to receive ( :worker_class_names ) . and_return ( %w[ MiqGenericWorker MiqPriorityWorker ] )
41
41
allow ( MiqGenericWorker ) . to receive ( :sync_workers ) . and_raise
42
42
expect ( MiqPriorityWorker ) . to receive ( :sync_workers ) . and_return ( :adds => [ 123 ] )
43
- expect ( server . worker_manager . sync_workers ) . to eq ( "MiqPriorityWorker" => { :adds => [ 123 ] } )
43
+
44
+ server . worker_manager . sync_workers
45
+
46
+ expect ( server . worker_manager . workers . keys ) . to include ( 12345 , 123 )
44
47
end
45
48
end
46
49
end
You can’t perform that action at this time.
0 commit comments