On 1/19/21 10:29 PM, Bessghaier, Narjes wrote:
Dear OpenStack team,
I’m a Ph.D. student in software engineering at the ETS Montreal, University of Quebec working on the quality and configuration of web-based software systems. I’m particularly interested in analyzing configuration files from different OpenStack files. One of the main challenges I am currently facing is the proper identification of configuration files. I’m mostly confused between the python files used for production and the python files used for configuration. I am kindly requesting your precious help with the following questions:
1- How to distinguish between python files used for configuration and python files used for production? It will be very helpful if there are some configuration-based patterns (eg, textual patterns or expressions) that we can find in python files to help us distinguish between source code and configuration files?
Hi! Appart from Horizon (that reads a "local_settings.py" as configuration file), all projects are using the .ini file format for configuration, and read them using the oslo.config library. So there's no such thing as "python files used for configuration". Also, from a downstream distribution, it's very easy how to identify configuration files: they are all stored in /etc. If not, then this is a bug which you may file against the package: https://www.debian.org/Bugs/Reporting
2- Certain python files use the oslo_config to access and define configuration options. Could "all" these python files be considered as configuration files?
None of them are.
For example, the following python file of the keystone project: keystone/keystone/conf/auth.py, is it considered a source code or configuration file?
Definitively source code.
3- Why are there different source code and configuration repositories for OpenStack projects (eg, nova and puppet-nova)?
These are 2 different project. "nova" is the upstream code for the nova service, and "puppet-nova" is a repository for the puppet configuration management module for Nova.
For instance, does the OpenStack-nova service have some configuration files in its repository
The nova repository doesn't contain any configuration file by itself, these are generated by oslo-config-generator using the code of Nova.
and have the puppet-nova as a separate configuration repository as well?
puppet-nova isn't holding any configuration for Nova. It is a module for puppet that will configure (ie: tweak the configuration of) Nova. You probably should read about what puppet is and what it does. I hope this helps, Cheers, Thomas Goirand (zigo)