@@ -368,15 +368,18 @@ def _get_earlier_daemons(dtypes: List[str], candidates: List[DaemonDescription])
368368 return [d for d in candidates if d .daemon_type in earlier_types ]
369369
370370 if self .upgrade_state :
371- raise OrchestratorError ('Cannot set values for --daemon-types, --services or --hosts when upgrade already in progress.' )
371+ raise OrchestratorError (
372+ 'Cannot set values for --daemon-types, --services or --hosts when upgrade already in progress.' )
372373 try :
373- target_id , target_version , target_digests = self .mgr .wait_async (CephadmServe (self .mgr )._get_container_image_info (target_name ))
374+ target_id , target_version , target_digests = self .mgr .wait_async (
375+ CephadmServe (self .mgr )._get_container_image_info (target_name ))
374376 except OrchestratorError as e :
375377 raise OrchestratorError (f'Failed to pull { target_name } : { str (e )} ' )
376378 # what we need to do here is build a list of daemons that must already be upgraded
377379 # in order for the user's selection of daemons to upgrade to be valid. for example,
378380 # if they say --daemon-types 'osd,mds' but mons have not been upgraded, we block.
379- daemons = [d for d in self .mgr .cache .get_daemons () if d .daemon_type not in MONITORING_STACK_TYPES ]
381+ daemons = [d for d in self .mgr .cache .get_daemons (
382+ ) if d .daemon_type not in MONITORING_STACK_TYPES ]
380383 err_msg_base = 'Cannot start upgrade. '
381384 # "dtypes" will later be filled in with the types of daemons that will be upgraded with the given parameters
382385 dtypes = []
@@ -394,7 +397,8 @@ def _get_earlier_daemons(dtypes: List[str], candidates: List[DaemonDescription])
394397 # for our purposes here we can effectively convert our list of services into the
395398 # set of daemon types the services contain. This works because we don't allow --services
396399 # and --daemon-types at the same time and we only allow services of the same type
397- sspecs = [self .mgr .spec_store [s ].spec for s in services if self .mgr .spec_store [s ].spec is not None ]
400+ sspecs = [
401+ self .mgr .spec_store [s ].spec for s in services if self .mgr .spec_store [s ].spec is not None ]
398402 stypes = list (set ([s .service_type for s in sspecs ]))
399403 if len (stypes ) != 1 :
400404 raise OrchestratorError ('Doing upgrade by service only support services of one type at '
@@ -414,15 +418,18 @@ def _get_earlier_daemons(dtypes: List[str], candidates: List[DaemonDescription])
414418 # that reside on hosts in the list of hosts we will upgrade. Then take the type from
415419 # that list that is latest in the upgrade order and check if any daemons on hosts not in the
416420 # provided list of hosts have a daemon with a type earlier in the upgrade order that is not upgraded.
417- dtypes = list (set ([d .daemon_type for d in daemons if d .daemon_type is not None and d .hostname in hosts ]))
418- other_hosts_daemons = [d for d in daemons if d .hostname is not None and d .hostname not in hosts ]
421+ dtypes = list (
422+ set ([d .daemon_type for d in daemons if d .daemon_type is not None and d .hostname in hosts ]))
423+ other_hosts_daemons = [
424+ d for d in daemons if d .hostname is not None and d .hostname not in hosts ]
419425 daemons = _get_earlier_daemons ([_latest_type (dtypes )], other_hosts_daemons )
420426 err_msg_base += 'Daemons with types earlier in upgrade order than daemons on given host need upgrading.\n '
421427 need_upgrade_self , n1 , n2 , _ = self ._detect_need_upgrade (daemons , target_digests )
422428 if need_upgrade_self and ('mgr' not in dtypes or (daemon_types is None and services is None )):
423429 # also report active mgr as needing to be upgraded. It is not included in the resulting list
424430 # by default as it is treated special and handled via the need_upgrade_self bool
425- n1 .insert (0 , (self .mgr .mgr_service .get_active_daemon (self .mgr .cache .get_daemons_by_type ('mgr' )), True ))
431+ n1 .insert (0 , (self .mgr .mgr_service .get_active_daemon (
432+ self .mgr .cache .get_daemons_by_type ('mgr' )), True ))
426433 if n1 or n2 :
427434 raise OrchestratorError (f'{ err_msg_base } Please first upgrade '
428435 f'{ ", " .join (list (set ([d [0 ].name () for d in n1 ] + [d [0 ].name () for d in n2 ])))} \n '
@@ -780,7 +787,8 @@ def _upgrade_daemons(self, to_upgrade: List[Tuple[DaemonDescription, bool]], tar
780787 target_digests = []
781788 for d_entry in to_upgrade :
782789 if self .upgrade_state .remaining_count is not None and self .upgrade_state .remaining_count <= 0 and not d_entry [1 ]:
783- self .mgr .log .info (f'Hit upgrade limit of { self .upgrade_state .total_count } . Stopping upgrade' )
790+ self .mgr .log .info (
791+ f'Hit upgrade limit of { self .upgrade_state .total_count } . Stopping upgrade' )
784792 return
785793 d = d_entry [0 ]
786794 assert d .daemon_type is not None
@@ -822,7 +830,8 @@ def _upgrade_daemons(self, to_upgrade: List[Tuple[DaemonDescription, bool]], tar
822830 self .upgrade_info_str = 'Currently upgrading %s daemons' % (d .daemon_type )
823831
824832 if len (to_upgrade ) > 1 :
825- logger .info ('Upgrade: Updating %s.%s (%d/%d)' % (d .daemon_type , d .daemon_id , num , min (len (to_upgrade ), self .upgrade_state .remaining_count if self .upgrade_state .remaining_count is not None else 9999999 )))
833+ logger .info ('Upgrade: Updating %s.%s (%d/%d)' % (d .daemon_type , d .daemon_id , num , min (len (to_upgrade ),
834+ self .upgrade_state .remaining_count if self .upgrade_state .remaining_count is not None else 9999999 )))
826835 else :
827836 logger .info ('Upgrade: Updating %s.%s' %
828837 (d .daemon_type , d .daemon_id ))
@@ -1038,15 +1047,19 @@ def _do_upgrade(self):
10381047 })
10391048
10401049 if self .upgrade_state .daemon_types is not None :
1041- logger .debug (f'Filtering daemons to upgrade by daemon types: { self .upgrade_state .daemon_types } ' )
1042- daemons = [d for d in self .mgr .cache .get_daemons () if d .daemon_type in self .upgrade_state .daemon_types ]
1050+ logger .debug (
1051+ f'Filtering daemons to upgrade by daemon types: { self .upgrade_state .daemon_types } ' )
1052+ daemons = [d for d in self .mgr .cache .get_daemons (
1053+ ) if d .daemon_type in self .upgrade_state .daemon_types ]
10431054 elif self .upgrade_state .services is not None :
1044- logger .debug (f'Filtering daemons to upgrade by services: { self .upgrade_state .daemon_types } ' )
1055+ logger .debug (
1056+ f'Filtering daemons to upgrade by services: { self .upgrade_state .daemon_types } ' )
10451057 daemons = []
10461058 for service in self .upgrade_state .services :
10471059 daemons += self .mgr .cache .get_daemons_by_service (service )
10481060 else :
1049- daemons = [d for d in self .mgr .cache .get_daemons () if d .daemon_type in CEPH_UPGRADE_ORDER ]
1061+ daemons = [d for d in self .mgr .cache .get_daemons (
1062+ ) if d .daemon_type in CEPH_UPGRADE_ORDER ]
10501063 if self .upgrade_state .hosts is not None :
10511064 logger .debug (f'Filtering daemons to upgrade by hosts: { self .upgrade_state .hosts } ' )
10521065 daemons = [d for d in daemons if d .hostname in self .upgrade_state .hosts ]
@@ -1067,15 +1080,18 @@ def _do_upgrade(self):
10671080 logger .debug ('Upgrade: Checking %s daemons' % daemon_type )
10681081 daemons_of_type = [d for d in daemons if d .daemon_type == daemon_type ]
10691082
1070- need_upgrade_self , need_upgrade , need_upgrade_deployer , done = self ._detect_need_upgrade (daemons_of_type , target_digests )
1083+ need_upgrade_self , need_upgrade , need_upgrade_deployer , done = self ._detect_need_upgrade (
1084+ daemons_of_type , target_digests )
10711085 upgraded_daemon_count += done
10721086 self ._update_upgrade_progress (upgraded_daemon_count / len (daemons ))
10731087
10741088 # make sure mgr and monitoring stack daemons are properly redeployed in staggered upgrade scenarios
10751089 if daemon_type == 'mgr' or daemon_type in MONITORING_STACK_TYPES :
10761090 if any (d in target_digests for d in self .mgr .get_active_mgr_digests ()):
1077- need_upgrade_names = [d [0 ].name () for d in need_upgrade ] + [d [0 ].name () for d in need_upgrade_deployer ]
1078- dds = [d for d in self .mgr .cache .get_daemons_by_type (daemon_type ) if d .name () not in need_upgrade_names ]
1091+ need_upgrade_names = [d [0 ].name () for d in need_upgrade ] + \
1092+ [d [0 ].name () for d in need_upgrade_deployer ]
1093+ dds = [d for d in self .mgr .cache .get_daemons_by_type (
1094+ daemon_type ) if d .name () not in need_upgrade_names ]
10791095 need_upgrade_active , n1 , n2 , __ = self ._detect_need_upgrade (dds , target_digests )
10801096 if not n1 :
10811097 if not need_upgrade_self and need_upgrade_active :
@@ -1113,7 +1129,8 @@ def _do_upgrade(self):
11131129 # following bits of _do_upgrade are for completing upgrade for given
11141130 # types. If we haven't actually finished upgrading all the daemons
11151131 # of this type, we should exit the loop here
1116- _ , n1 , n2 , _ = self ._detect_need_upgrade (self .mgr .cache .get_daemons_by_type (daemon_type ), target_digests )
1132+ _ , n1 , n2 , _ = self ._detect_need_upgrade (
1133+ self .mgr .cache .get_daemons_by_type (daemon_type ), target_digests )
11171134 if n1 or n2 :
11181135 continue
11191136
0 commit comments