121def loadConfigurableDb():
122 """Helper function to load all ConfigurableDb files (modules) holding
123 informations about Configurables
124 """
125 import os
126 from os.path import join as path_join
127
128 from GaudiPluginService.cpluginsvc import GAUDI_DEFAULT_PLUGIN_PATH
129
130 log.debug("loading confDb files...")
131 nFiles = 0
132 ignored_files = set(os.environ.get("CONFIGURABLE_DB_IGNORE", "").split(","))
133 for path in GAUDI_DEFAULT_PLUGIN_PATH:
134 if not path or not os.path.isdir(path):
135 continue
136 log.debug("walking in [%s]...", path)
137 confDbFiles = [
138 f
139 for f in [
140 path_join(path, f) for f in os.listdir(path) if f.endswith(".confdb")
141 ]
142 if os.path.isfile(f) and f not in ignored_files
143 ]
144
145 mergedConfDbFiles = [f for f in confDbFiles if f.endswith("_merged.confdb")]
146 if mergedConfDbFiles:
147
148 confDbFiles = mergedConfDbFiles
149
150 for confDb in confDbFiles:
151 log.debug("\t-loading [%s]...", confDb)
152 try:
153 cfgDb._loadModule(confDb)
154 except Exception as err:
155 log.warning("Could not load file [%s] !", confDb)
156 log.warning("Reason: %s", err)
157 nFiles += 1
158 log.debug("loading confDb files... [DONE]")
159 nPkgs = len(set([k["package"] for k in cfgDb.values()]))
160 log.debug("loaded %i confDb packages", nPkgs)
161 return nFiles
162
163