glideinWMS ini file validations
Description
The parser used to read and validate the glideinWMS ini file is based on the Python 2.4.+ ConfigParser module. The ConfigParser module performs some elementary validations, there are some additional validations that are required in order to reduce user error and insure data integrity for the installation process. These validations are performed by
GLIDEIN_SRC/install/services/Configuration.py module (class).
The Configuration.py can be executed from the command line and has several options available:
Usage: ./Configuration.py --compare file1 file2
./Configuration.py --show-options file
./Configuration.py --show-values file
./Configuration.py --validate file
./Configuration.py --help | -h
compare .......... Shows the differences between the
section/objects (not values) of the 2 ini files
returns 0 if identical
returns 1 if any differences
show-options ...... Shows the section/objects for the ini file
show-values ....... Shows the section/objects/values for the ini file
validate .......... Verifies the ini file has no syntax errors
Full path to the files must be specified unless this is executed
in the directory in which they reside.
Important: This module only performs a syntactical check of the ini file.
There are some additional validations performed to minimize user error for the glideinWMS application described in the following sections.
Syntax rules
The following are the rules for a valid ini file:
- Comments
- Any line beginning (no preceding whitespace) with a ';' or '#' is considered a comment line and ignored.
- In-line comments using ';' or "#' must be preceded by whitespace or they will be considered part of the option's value.
- Sections and option lines must start in the 1st position on the line (no preceding whitespace) or they will be considered part of the previous option.
Some of these validations are handle by the
ConfigParser? module and some additional validations are performed to minimize user error for the glideinWMS application. These are described in the sections that follow.
Duplicate section validations
If multiple sections are defined with the same name, the python ConfigParser will use the last one it finds sequentially in the file.
[WMSCollector]
option_a = xxxxx
[WMSCollector]
option_b = yyyyy
The parser will only show:
[WMSCollector]
option_b = yyyyy
The Configuration.py module will perform an additional validation and error on this condition indicating the duplicate sections.
In addition, it will treat the following variations as duplicates where the python ConfigParser would treat them as independent sections.
[ WMSCollector ]
[WMSCollector ]
[ WMSCollector]
Invalid preceding whitespace
As mention in the syntax rules, a line should not start with whitespace. The
ConfigParser? does not validate this. This additional validation is performed by the installer.
--
JohnWeigand - 2010/11/30