Tracer is integrated in several places in Katello. There are at least two UI pages. The tracer “helpers” (restart commands) are saved in the Katello database. There are job templates to run tracer commands. It seems like all of the above would need rearchitecting; is this what you are proposing? Also katello-host-tools-tracer is packaged. I think this would also need some inputs from @packaging folks.
The target of this PR is, that everything stays the same but uses a different technology - “dnf needs-restarting”.
“dnf needs-restarting” should not have the issue mentioned in tracer wants me to unnecessarily restart services · Issue #126 · FrostyX/tracer · GitHub
(tracer expects a service should be restarted, even it was restarted during rpm post install routine from dnf - dnf needs-restarting does not print that the service needs to be restarted).
Of course, packaging needs to be done afterwards and hopefully, we can skip the python3-tracer delivery if we only need >= el8
The idea of dropping a dependency would be great, but we’ll need to keep it around a bit longer anyway for EL7. Plus it seems like we’re losing support for “session” restart types where the user just needs to log out and log back in.
Has fixing the tracer bug directly been investigated?
Otherwise we’ll likely need to pull more code from tracer into katello-host-tools for the session type determination.
I will try to add the session type but I’m still unsure for which use cases they are used.
I had a look at the tracer issue. Unfortunately, this issue exists for a long time. Additionally, why should it use another library like the tracer package if ‘dnf’ is able to provide the same information.
Dropping a dependency can be very useful, even if we only do so on EL8+ and keep it for EL7 (and older). Tracer has some non-trivial amount of dependencies. Allowing to drop them will be good for users. For example, we can stop packaging python-psutil on EL8+ in the client repo if we go this route.
We should also note that today we’ve packaged tracer 0.7.8 while 1.1 is already out. Clearly we’re not keeping up.
So as long as there’s no regression in functionality, there are real benefits even if we keep it for EL7.