Details
-
Improvement
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
2.3
-
None
Description
There are currently 3 different xCAT*.pm modules:
xCAT.pm - Supposed to be the base module, supports xCAT 1.3
xCAT2.pm - Contains latest xCAT 2.x code. Supports some xCAT 2.x versions.
xCAT21.pm - Older xCAT 2.x module.
There are several duplicated subroutines in each module. It appears as if subroutines were copied directly from xCAT.pm when the xCAT2*.pm modules were initially created. This shouldn't have been done. They inherit from xCAT.pm and should use the same subroutines if the subs are the same.
I'd like to end support for xCAT 1.x. Anyone still running it should upgrade. If support is ended it will be much easier to clean up all of the xCAT code into a single modue. I propose the following:
-Remove all code from xCAT.pm which is 1.x specific. There are some subroutines which attempt to call utilities which haven't existed in xCAT for some time.
-Move the duplicated subroutines from xCAT2.pm back into xCAT.pm, overwriting them.
Perform a major cleanup of the existing code. Update it to use newer functions such as $self>mn_os->execute. There are many places in the existing code where commands are run on the management node using <COMMAND>, the output may be null, but is checked anywhere generating an error.
For the version the changes are released in, the database files will need to be updated so that the xCAT2* provisioning modules call xCAT.pm.