Hello,
I started working on removing hard coded file/folder locations to make Uyuni less OS dependent.
In the end, thic COULD boil down to these used folders (ignoring folders defined in test cases and giving them a tag for discussion):
/srv/www/htdocs (WEBROOT)
/srv/www/os-images (OSIMAGES)
/srv/susemanager (SUSEMANAGER_DIR)
code/src/com/suse/manager/webui/services/SaltConstants.java
Where would be the best place to parameterise them?
- rhn.conf
WEBROOT is already in there. I would think that this would be the best place to put ALL folder locations in there to keep it central.
This would need a migration script for existing systems to add the folders.
- spec file
Doesn't sound like the best idea.
- build.xml
Not sure how to detect the right OS. So maybe a flag can be passed on to use SUSE or RHEL file structure. Then we copy the relevant config file to the build folder.
- java class
This would be double maintenance and just increasing the amount of hard coding.
I would see two approaches:
1. Add all folders (starting with the ones above as common denominator) into rhn.conf. Put an update logic into the SPEC file for existing systems. Adapt the existing Java classes and constant files (i.e. SaltConstants.java) to read the value from rhn.conf.
2. Adapt Java classes to use a central OS dependent constant file (like SaltConstants.java). Get build.xml to use the right one during build. Control the ant build via the spec file (as I am not sure we can detect the OS reliably/easily with ant).
Would be great to hear your thoughs.
Best wishes,
Stefan