f'{dd.name()} daemon entrypoint args {dd.extra_entrypoint_args} -> {spec.extra_entrypoint_args}')
dd.extra_entrypoint_args = spec.extra_entrypoint_args
action = 'redeploy'
+ elif svc_obj.manages_own_next_action:
+ # method uses new action enum type
+ _scheduled_action = utils.Action.create(scheduled_action)
+ _action = svc_obj.choose_next_action(
+ _scheduled_action,
+ dd.daemon_type,
+ spec,
+ curr_deps=deps,
+ last_deps=last_deps,
+ )
+ if _action is not _scheduled_action:
+ self.log.info(
+ (
+ 'Daemon %s chose new action %s (was %s)'
+ ' (deps: %r, last_deps: %r)'
+ ),
+ dd.name(),
+ _action,
+ _scheduled_action,
+ deps,
+ last_deps,
+ )
+ # convert back to legacy str type
+ action = str(_action)
elif last_deps != deps:
sym_diff = set(deps).symmetric_difference(last_deps)
self.log.info(f'Reconfiguring {dd.name()} deps {last_deps} -> {deps} (diff {sym_diff})')