As part of the move to EL7 we are trying to use systemd where possible to manage daemons rather than doing so through LCFG components. One service we want to move over to this model is openafs. Sadly the existing openafs component wasn’t really playing along and the changes necessary where likely to be extensive and incompatible with what was required to manage the daemon via upstart on SL6.
We’ve had a longstanding desire to make the management of openafs much simpler by splitting the client and server parts of this component into two separate components. With this in mind I have split out the client functionality into a new openafs_client component. As it shares some templates it’s still part of the lcfg-openafs source package but the files are in a separate sub-package so that we do not need to install it on servers which are not clients.
This new component does not make any attempt to start or stop the daemon when the component is started or stopped. That is now left to the init-system. It will still restart the daemon when appropriate to apply changes.
At the same time I took the chance to make the configuration changes more dynamic by using more of the functions provided by the
AFS::Command::FS Perl module. This module helpfully provides a much more complete set of functions compared to the old
AFS module. There should now be much less need to reboot to apply changes to a running openafs client configuration.
The new component also tries very hard not to Fail if problems occur. It will now log errors and may not complete the configuration but the component will still be in a started state and ready to recieve and apply further changes which will rectify the sitation. This is a problem we see with many components, we are slowly working through them and restructuring the code to ensure they start at boot time whenever possible.